Skip to content

Instantly share code, notes, and snippets.

@takeshik
Created May 28, 2012 17:43
Show Gist options
  • Save takeshik/2820256 to your computer and use it in GitHub Desktop.
Save takeshik/2820256 to your computer and use it in GitHub Desktop.
Yacq の式ノードとパターンマッチ

Yacq の式ノード

  • Yacq +

    Yacq の式ノード型階層の頂点

    • AmbiguousLambda

      曖昧な (型が推論される) ラムダ

    • AmbiguousParameter

      曖昧なラムダのパラメータ

    • Dispatch

      シンボルテーブル及び CTS 型を参照して、シンボルまたは型メンバを参照する式

    • Identifier

      識別子 (既定ではシンボルテーブルを参照し変数またはメンバ参照として振る舞う)

    • Ignored !

      結果の式の集合から除外される、無視される式

    • Macro !

      マクロ (さらに評価される式を返す式)

    • Number *

      数値

    • Quoted

      クォート又は準クォートされた式 (クォートは (quote expr) と表現されるのでリテラルではない)

    • SymbolTable

      シンボルテーブル参照 (参照するシンボルテーブルをグローバルシンボルテーブル以外に向ける)

    • Text *

      テキスト (文字、文字列、またはコード埋め込み文字列)

    • TypeCandidate !

      型候補 (複数の型から static 呼び出しのための型を選択する)

    • YacqSequence +

      Yacq のシーケンスノード (0 以上の式ノードを内包するコンテナ) の抽象型

      • LambdaList *

        ラムダリスト (曖昧なラムダの簡略記法であるリスト)

      • List *

        リスト (既定ではシンボルテーブルを参照し関数またはメソッド呼び出しとして振る舞う)

    • Vector *

      ベクタ (既定では配列またはディクショナリ生成)
      
  • + は抽象型であることを示す。

  • * はリテラル、即ちコードにおいて直接記述できること、あるいは、リーダが直接ノードを生成することを示す。

  • ! は常に式ノードの変換に失敗することを示す (終端ノード型)。

参照文献

F# のパターンマッチ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment