Lean do記法 説明 1

少しずつ説明。


  1. 構文範疇に、式と文〈ステートメント〉がある。
  2. 文には式文(式はそのまま文)と副作用let文がある。
  3. do構文は式(do式)、純let式も式
  4. let文といったときは副作用let文で、let式は純let式。

翻訳:

  1. do式の翻訳は、そのボディブロックを翻訳して結果とする。doキーワード自体は単なる開始マーカー。
  2. 翻訳結果は、クライスリ射になる。
  3. 式文は、何もしないでそのまま結果とする。
  4. 式文の翻訳は何もしないので、式文はもともとクライスリ射でなくてはならない。
  5. let文は、代入右辺文を翻訳して、本体の翻訳にクライスリ適用(>>=)する。

省略記法:

  1. 純let式と副作用let文の中間に、代入右辺式が純なlet文がある。割り当て記号に := を使ってdo文脈内でletを使うと、代入右辺式がpureで修飾されてから代入が実行される。それ以外は何もしない。
  2. シーケンサー制御構造のコロンまたは改行は、先行する式が、後続する式内に登場する変数を副作用let束縛して実行するlet文に翻訳される。

注意事項:

  1. letが、(1)純let式(doブロックの外)、(2)副作用let文(左矢印)、(3)代入が純な(副作用がない)let文(:=)の三種類がある。
  2. letの意味が、doブロックの外と中では変更されている。
  3. doブロックは、全体として1つのクライスリ射になる。
  4. セミコロンまたは改行は、クライスリ射のクライスリ結合を意味する。