Ich denke, ich brauche etwas Ausarbeitung darüber, wie die D-Funktion in unlambda funktioniert. Im Moment versuche ich eine Funktion (faktoriell) mit dem Y-Kombinator zu machen, aber es ergibt sich immer eine Art Endlosschleife. Oder segfault, abhängig vom Interpreter. Ich bin mir ziemlich sicher, D ist, was ich hier benutzen möchte. Ich habe das versucht:Unlambda d Funktion
``d```sii``sii`.xi
und es hatte die gleiche Endlosschleife. Glaubt jemand, sie könnten mir helfen, D in unambda zu verstehen?
...
In unlambda Notation, meine Funktion ist
```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)
Ich bin ziemlich sicher, dass, wenn es normal bewertet wurde, mit dem linken ersten, es würde funktionieren, aber ich bin nicht sicher.
Vielen Dank im Voraus.
Es ist, als ob diese Sprache speziell entworfen wurde, um mit Markdown ... – MPelletier