私はラムダ計算を理解しようとしています。しかし、私はちょっとこの表現についています:TRUEとTRUE。私はあなたがラムダ計算でTRUEとTRUEを正しく引く方法は?
(\F T F -> T)
に
((\T F -> T) (\T F -> T))
から得ることができる方法を見つけ出す、ない
(\F -> (\T F -> T))
\
私はラムダ計算を理解しようとしています。しかし、私はちょっとこの表現についています:TRUEとTRUE。私はあなたがラムダ計算でTRUEとTRUEを正しく引く方法は?
(\F T F -> T)
に
((\T F -> T) (\T F -> T))
から得ることができる方法を見つけ出す、ない
(\F -> (\T F -> T))
\
(\F T F -> T)
ラムダ署名であることはできません
と
(\F -> (\T F -> T))
は同じものです。
https://en.wikipedia.org/wiki/Lambda_calculus_definition#Notation:
- 最も外側の括弧はドロップされ:
M N
代わりに(M N)
- を[...]
- 抽象体は限り右できるだけ延び:
λx. M N
はλx. (M N)
手段といいえ(λx. M) N
- 抽象シーケンスが収縮します。
λx. λy. λz. N
はabbです。我々は、冗長括弧を削除することができ、外側のラムダの本体は可能な限り右に延びているため(\F -> (\T F -> T))
が
を書き込むことができ、(\F -> \T F -> T)
λxyz. N
特に
としてreviatedこれを書き込むことができる。
(\F -> \T -> \F -> T)
最後のルール(収縮)によって
または
(\F T F -> T)
。
Thnxしか見ることができません - 本当に助けになります!私はあなたが言うことを得ると思う。だから、私はこれをまっすぐにしましょう、余分な角かっこを取り除く理由は、関数本体に渡すことができる引数がないからです。 –
なぜ 'F#'タグが追加されたのですか?私はそのタグでいくつかのF#コードを見たいと思いますか?私はあなたの答えに「ラムダ計算」 –