Я думаю, мне нужна какая-то разработка, как функция D работает в unlambda. Прямо сейчас я пытаюсь сделать функцию (факториал) с комбинатором Y, но это всегда приводит к некоторому бесконечному циклу. Или segfault, в зависимости от интерпретатора. Я почти уверен, что D - это то, что я хочу использовать здесь. Я пробовал это:Unlambda d function
``d```sii``sii`.xi
и у него был такой же бесконечный цикл. Кто-нибудь думает, что они могут помочь мне понять D в разблокировке?
...
В unlambda обозначениях, моя функция
```s``s``s`ks``s`kki``s``s`ks`ki`ki``s``s`ks``s`kki``s``s`ks`ki`ki``s`k`s``s``s``s``si`k`ki`k``s``si`k`ki`kk`k`ki`k`s`sk``s`k`s``s`ksk``s``s`ksk`k``s``si`k``s``s``s``si`ki`k`ki`k`ki`s``s`ksk`k`k`kk
Y= ``s``s``s`ks``s`kki``s``s`ks`ki`ki``s``s`ks``s`kki``s``s`ks`ki`ki
Factorial = Y(\xy.0y1(My(x(Sy))))
0 = ``s``s``si`k`ki`k``s``si`k`ki`kk`k`ki (Returns K if it's 0 in church numerals, Returns KI if it's something else.)
M = ``s`ksk (Prefix multiplier of church numerals)
S = ``s``si`k``s``s``s``si`ki`k`ki`k`ki`s``s`ksk`k`k`kk (Decrements a church integer)
Я уверен, что если бы она была оценена, как правило, с левой первых, он будет работать, но я не уверен.
Заранее спасибо.
Это как если бы этот язык был специально разработан для общения с Markdown ... – MPelletier 2010-11-28 03:35:31