CEK і нумерали Чорча

Jan 01, 2014 13:38

CEK-машини взагалі уміють рахувати нумерали Чорча?

Прості приклади типу (λx.λy.x) 1 2 обчислюються, але коли я намагаюсь обчислити succ one, де succ = λn.λf.λx.f (n f x), one = λf.λx.f x, і мій доморощенний CEK-інтерпретатор, і я вручну упираємось у стан < clos(λf.λx.f (n f x), E1) | E1 | nil > де E1 = { n -> clos(λf.λx.f x, {}) }, хоча в ідеалі ( Read more... )

програмістське, fp

Leave a comment

Comments 3

beroal February 2 2014, 18:38:20 UTC
Якщо не помиляюся, SECD реалізує call-by-value-редукцію. Call-by-value-редукція не чіпає редекси під абстракцією. Якби ви в λf.λx.f (n f x) замість n підставили λf.λx.f x, то отримали б редекс під абстракцією.

λf.λx.f ((λf.λx.f x) f x)

Reply

dmytrish February 2 2014, 18:52:17 UTC
Да, логічно, дякую. Тобто ключова проблема тут call-by-value.

P.S. Машина тут CEK, але це той самий call-by-value.

Reply

beroal February 2 2014, 19:42:36 UTC
Я підозрюю, що машина Кривіна має ту саму проблему.

Reply


Leave a comment

Up