Antecedentes
Visualización de términos de cálculo λ
El famoso malabarista lambda (y golfista de códigos ) John Tromp ideó una visualización interesante de términos en el cálculo λ. En sus palabras:
las abstracciones (lambdas) están representadas por líneas horizontales, las variables por líneas verticales que emanan de su lambda de enlace y las aplicaciones por enlaces horizontales que conectan las variables más a la izquierda.
Por ejemplo, el término lambda λf.λx.f (f (f (fx))) corresponde a la visualización:
-------------------
| | | |
-------------------
| | | | |
| | | |----
| | |----
| |----
|----
|
Léalo de arriba a abajo:
- La primera línea horizontal representa la primera λ.
- Las cuatro líneas que descienden representan las f s en el cuerpo.
- Del mismo modo, la segunda línea horizontal representa la segunda λ, y la nueva línea que desciende representa la x en el cuerpo.
- La línea f más a la derecha y la línea x están conectadas por una línea horizontal que representa una aplicación (f x) .
- La siguiente aplicación es (f (f x)) , etc.
Números de la iglesia
Los números de la Iglesia son una secuencia específica de términos en el cálculo λ, tomando el siguiente patrón:
0 = λf. λx. x
1 = λf. λx. f x
2 = λf. λx. f (f x)
3 = λf. λx. f (f (f x))
...
Tarea
Dado un número de entrada n , imprima un poco de arte ASCII que visualice el número de la enésima Iglesia. Por ejemplo, el ejemplo anterior es su salida objetivo cuando se le da n = 4 . Para n = 0 , imprima:
---
---
|
|
Casos de prueba
Su respuesta debe mostrar exactamente el mismo texto (módulo de líneas nuevas finales) que este fragmento de pila para todas las entradas enteras n ≥ 0 :
Este es el código de golf , por lo que gana el código más corto en bytes.
.repeat
.