バックグラウンド
λ計算の用語の視覚化
有名なラムダジャグラー(およびコードゴルファー)ジョントランプは、λ計算の用語の興味深い視覚化を考案しました。彼の言葉では:
抽象化(ラムダ)は水平線で表され、変数はバインディングラムダから下に伸びる垂直線で表され、アプリケーションは左端の変数を接続する水平リンクで表されます。
たとえば、ラムダ項λf.λx.f(f(f(fx)))は視覚化に対応します。
-------------------
| | | |
-------------------
| | | | |
| | | |----
| | |----
| |----
|----
|
上から下に読んでください:
- 最初の水平線は最初のλを表します。
- それから降順の4本の線はfは、体内のます。
- 同様に、2番目の水平線は2番目のλを表し、それから降順の1本の新しい線はボディのxを表します。
- 右端のf線とx線は、アプリケーション(f x)を表す水平線で接続されています。
- 次のアプリケーションは(f(f x))などです。
教会の数字
教会の数字は、次のパターンに取って、λ計算における用語の特定のシーケンスです:
0 = λf. λx. x
1 = λf. λx. f x
2 = λf. λx. f (f x)
3 = λf. λx. f (f (f x))
...
仕事
入力番号nを指定して、n番目の教会の数字を視覚化するASCIIアートを印刷します。たとえば、上記の例は、n = 4を指定した場合のターゲット出力です。以下のため、N = 0、印刷:
---
---
|
|
テストケース
あなたの回答を出力しなければならないまさにこのスタックのすべての整数入力のためのスニペットと同じテキスト(モジュロ末尾の改行)のn≥0 :
これはcode-golfなので、バイト単位の最も短いコードが優先されます。
.repeat
。