ReasonML facebook製プログラミング言語 JavaScript、バイナリ両方にコンパイル可能 OCamlとJavaScriptのエコシステムが利用できる 強力な型付けとイミュータブルが特徴 2018/02/21 時点で最新バージョンは3.0.4 BuckleScript OCamlのJavaScriptバックエンド Bloomberg社製 ReasonMLはBuckleScriptに乗っかっている 2018/02/21 時点で最新バージョンは2.2.0 アーキテクチャ https://github.com/facebook/reason/tree/master/src より引用 構文 パターンマッチ ファンクター(Module Functions) パイプ演算子 module IntPairs = { type t = (int, int); let compare = ((
概要 ReasonML/OCamlには、Functor(Module Function)と呼ばれる機能があります。 その名の通り、moduleを受け取ってmoduleを返すことができます。 うまく使うと、複数のmoduleの共通機能をまとめることができそうです。 Set.Make Functor 標準ライブラリのSet.Makeが好例なので、こちらを見て雰囲気をつかむと良いと思います。 https://reasonml.github.io/api/Set.html ただし、2018/03/11時点ではOCamlの構文でしたので、Reason3でコンパイルする場合は修正が必要です。 以下は自分の記事ですが、Reason3に修正したソースコードになります。 https://qiita.com/soebosi/items/57f96ff029f2910c57d5#%E6%A7%8B%E6%96%
https://reasonml.github.io/reason-react/ ReasonMLでReactを利用することができるのですが、通常のReactの感覚でFormを扱おうとしたら、いくらかハマったので、それをまとめました。 Formを操作するサンプル 完成形はこちらです。 Beltを使っているので、こちらの記事も参考にしてください。 https://qiita.com/soebosi/items/404e035b74636ee8b406 open Belt; type state = { name: string, nameArray: array(string), }; type action = | AddName(string) | ChangeText(string); let s_ = ReasonReact.stringToElement; let a_ = Rea
BuckleScript は OCaml を JavaScript にトランスパイルする AltJS です。 いわゆる関数型 AltJS の一角で、 Elm や PureScript などに近い存在です。 ReasonML もまた、関数型 AltJS の一種で、 OCaml の型システムと JavaScript に近い文法を持つ独特な AltJS です。 この言語は現在のところ、 JavaScript に直接トランスパイルされるのではなく、一旦 OCaml にトランスパイルされた後、 BuckleScript 経由で JavaScript になります。 つまり、本当は AltJS ではなく AltOCaml なのですね。 そういうわけで、 ReasonML から BuckleScript の機能を使う事もできます。 さて、その ReasonML なのですが、かなり独特な文法をしています。
BuckleScriptに入門しました 最近、フロントエンドを久しぶりに書く必要に駆られたのですが、その際に前から気になっていた BuckleScript を触ってみて入門してみました。 Bucklescriptとは 公式的には A backend for the OCaml compiler which emits JavaScript. とのことです。大元は、Bloomberg社(JaneStreetと同じく?OCamlの大口ユーザー)で作成されていたものだそうです。特徴として 型安全(OCamlだからね!) ハイクォリティなdead code elimination OCamlからの生成時のみならず、bundler(Google closure-compilerとか)でもdead code eliminationがやりやすいようなソースを出すそうです Offline optimiza
過去に遡って、Reason ML Advent Calendar の2日目を書く。 初めのほうなので、参考になる資料をリストアップする。 Awesome ReasonML 各プラットフォームにあるAwesome XXXのReason版。主要なサイトへのリンクやサンプルアプリケーションへのリンクがある。 発表資料へのリンクもあって参考になる。特にDawn of ReasonがReasonのモチベーションが簡潔にまとまっていてよかった。 が初期の資料らしく、紹介されているプロジェクトの一部はすでにdeprecatedになっていたりする。 reasonml-community 各ライブラリのBuckleScriptのバインディングがまとめられている。 axiosやreactといったよく使うライブラリのバンディングが紹介されている。 reasonml-communityという名前なのに、Reaso
関数型 AltJS である BuckleScript と、それを使って SPA を作る方法を簡単にご紹介します。 想定読者 OCaml の基本的な文法を知っている JavaScript か TypeScript で React を使った事がある BuckleScript Facebook 開発の、 OCaml をもとにした AltJS です。 トランスパイラは OCaml のコンパイラを改造して作られているので、ほぼそのまま OCaml が動きます。 基本的な文法 公式サイトにおまかせします。 しかし、見て分かる通り OCaml そのままです。 それもそのはず、 BuckleScript は「 OCaml 風の AltJS 」 ではなく 、「 OCaml コードを JavaScript に変換するトランスパイラ」だからです。 なので、 OCaml をご存知の方には何の追加の説明も要らないで
やりたいこと 最初はどのページもアクセスできないけど、 秘密の順番でパスにアクセスしていくと、使えるようになる! ようなサーバーを作りたいです 一言でいえば、ポートノッキングのHTTP版みたいなものを作りたいです。 ポートノッキングで有名なツイートです。 UDP53番、TCP443番、UDP123番とポートノッキングをするとTCP443番に10秒だけsshdが現れる、という中二病全開の設定をした。皆様にもお勧めしたい。 — hnw (@hnw) 2017年3月26日 ポートノッキングというのは、決められたポートを決められた順番で叩くことでファイアーウォールに穴を空けられるような仕組みのことです。 (引用:ポートノッキングで10秒間だけsshdを公開する設定 - hnwの日記) HTTP上でノッキングしたい理由 ポートノッキングだとHTTPSを使って暗号化していても、ポートの部分は暗号化され
TypeScript で幽霊型(Phantom Type)っぽいものを作る場合に必要なテクニックを紹介する。 TL;DR TypeScript の型検査の仕組み上、普通の方法で幽霊型はできない が、 intersection type などをうまく用いることで、幽霊型と同じような目的を達成することはできる モチベーション たとえば URL のエンコード。次の encode() 関数は、まだエンコードしてない文字列だけを受け取りたいとする。このとき、
あらすじ こんにちは、深澤です。 最近javascriptを多用したのですが、なかなか動作が安定しない(安定させるのに苦労した)という事件がありました。 そんな中、なんとscalaで書いたコードがjsになっちゃうという夢のようなお話を聞きました。 それがscala.jsとの出会いです。 jsの最初の一歩ってなんやろ?って考えたときに、 「とりあえずアラート出したら最小構成っぽいし、第一歩じゃね?」という安直な考えから、scala.jsでアラートを表示する目標に向かって歩き始めました。 目指すは、staticなhtmlファイルでアラートを表示することです。 scala.jsのセットアップ ここはもう完全にチュートリアルを参考にしちゃいました。 Scala.js Tutorial チュートリアルのバージョンは少し古いようなので最新にしてみました(2015年10月11日現在)。 sbt 0.13
はじめに ASP.NET Core で シングルページアプリケーションを開発する方法をググると、既存の ASP.NET Core の SPA プロジェクトテンプレートを使う方法と、 SPA と Web API を別々のドメインで提供して CORS するサンプルは出てきますが、create-react-appで開発したアプリを ASP.NET Core 上で同一ドメインで動かすサンプルが見つからなかったので自分でやってみることにしました。 create-react-app React アプリ開発をビルド環境構築なしに始められる facebook 公式のツールです。 これを使って掲示板の SPA を開発します。 ASP.NET Core クロスプラットフォームに対応した .NET の Web アプリケーションフレームワークです。 create-react-appで開発した掲示板アプリのクライア
0) Siriではなく、Sri。 ...画像キャプチャで、何か嫌な予感を思い起こす人もいるでしょうが、AltJSなscalajsでreact nativeでクロスプラットフォーム開発という取り組み、Sri (Scala React interface)に注目中。 そもそも、直近使うには、自分にはちょっと大きすぎると思っているreact。ただ、ありうる未来な気がする、react nativeでのクロスプラットフォームの展開には興味がある。 そうしたところ、"記事:sri - Scala.jsを使ったReact Native実装"にて、scalajsがreactという取り組みに次いで、react nativeも、という取り組みが進んでいることを知る。 sbtコマンドを叩いて長時間待って試してみても動きはしなかったが、どのみち直近にreact nativeを使うことはないので、Altjs地雷の最
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く