BT

FacebookがReason 3でReasonMLの構文を変更

| 作者: Sergio De Simone フォローする 12 人のフォロワー , 翻訳者 h_yoshida フォローする 1 人のフォロワー 投稿日 2017年12月19日. 推定読書時間: 2 分 |

原文(投稿日:2017/11/10)へのリンク

OCamlの安全性と速度をJavaScriptに提供するためのFacebookの試みであるReadonがバージョン3に到達した。新たな構文の導入と、多数の修正が行なわれている。

構文上の最も顕著な変更は、JavaScriptのアプリケーション/アブストラクション構文が、Ocamlのものに代えて採用されていることだ。これによってReason 3では、JavaScriptと同じように、2つのパラメータの前後に括弧を付けて関数を呼び出せるようになる。

myFunction(arg1, arg2) // new, C-like syntax
myFunction arg1 arg2   // old, OCaml-like syntax

その他の注目すべき変更は以下のものだ。

  • {. }を使用してJavaScriptのオブジェクト型を宣言する新たな構文。例:

    type payload = {.  // no need to call Js.t here
      "name": string,
      "age": int
    };
    
  • ラベル付きパラメータを持つ型パンニング(punnung)の拡張サポートと、::に代えてを使用する新しい構文。ラベル付きパラメータを使用した関数宣言は次のように行なう。

    let addCoordinates = (∼x, ∼y) => {
      /* use x and y here */
    };
    ...
    addCoordinates(∼x=5, ∼y=6);
    

    以前の構文と比較してほしい。

    let addCoordinates x::x y::y => {
      /* use x and y here */
    };
    ...
    addCoordinates x::5 y::6;
    

    さらに型バンニング(上の例では∼x as xではなく、単に∼xと記述することができる)と、これまではサポートされていなかった型アノテーションとの併用が可能になった。

    let add = (∼first: int, ∼second: int) : int => first + second;
    
  • ^に代えて、++演算子による文字列の連結が可能になった。

  • 論理否定がnotから!になった。

Reasonコードベースをすでに持っている開発者は、構文の変更範囲を心配する必要はない。変更のほとんどが、JavaScript開発者にとってより“自然”に感じられるようにする、という考えに基づいているからだ。さらにReason 3には、移行を容易にするマイグレーションスクリプトも付属している。

Reasonエコシステムの期待するもうひとつの新機能が、Reasonパーザのrefntにプログラムからアクセスするための公式APIの公開である。Klipsereason-tools、Reason docsサイトなど、多数のツールがすでにサポートしている。

Reasonは、JavaScript環境にOCamlの優れた型システムを導入するという、Facebookの試みである。BuckleScriptをコアに使用して、Ocamlの構文をやや煩雑だと感じているJavaScriptプログラマなどのための構文を提供する。

この記事を評価

採用ステージ
スタイル

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT