スキームを使用して、教会の数字をかなり簡単に定義できます。
> (define f (lambda (x) x))
> (f f) ;0
#<procedure:f>
> (f (f f)) ;1
#<procedure:f>
ただし、これでは、 が 0 で (f (ff)) が 1 であることを簡単に認識できません(f f)
。これらの数字を読みやすくする方法はありますか? 理想的なのは次のとおりです。
> (f f)
0
> (f (f f))
1
例はスキームにありますが、私は任意のリスプで答えます。