Lambda kalkül - Suche Syntax



  • Ich suche die Syntax für eine Rechnung. Zuerst wird 5 übergeben, dann zuerst mit 2 multipliziert und das Ergebnis wird dann mit 3 addiert.

    Die einzelnen Terme sind einfach.

    λx. x + 3
    λy. y * 2
    λv. 5

    Wie klammere ich diese drei Terme und bastel sie korrekt zu einem Lambda-Kalkül zusammen? 😕

    (λx.(x+3) ???? )5)



  • Du brauchst nicht drei Termne, du hast bloss ein Argument.

    Du hast die Deklaration
    λx.2x+3\lambda x. 2x + 3
    und dann die Anwendung (Application)
    (λx.2x+3)(5)(\lambda x. 2x + 3)(5)

    *Edit
    Wenns denn wirklich mit den drei Termen sein soll, dann könnte man das dann wohl so schreiben:
    (λx.x+3)((λy.y2)((λz.5)()))\Big(\lambda x. x + 3\Big)\Big(\big(\lambda y.y \cdot 2\big)\big((\lambda z.5)()\big)\Big)



  • Hallo icarus2!

    Genau nach dem dritten Kalkül habe ich gesucht.

    Danke! 👍



  • icarus2 schrieb:

    Du brauchst nicht drei Termne, du hast bloss ein Argument.

    Du hast die Deklaration
    λx.2x+3\lambda x. 2x + 3
    und dann die Anwendung (Application)
    (λx.2x+3)(5)(\lambda x. 2x + 3)(5)

    *Edit
    Wenns denn wirklich mit den drei Termen sein soll, dann könnte man das dann wohl so schreiben:
    (λx.x+3)((λy.y2)((λz.5)()))\Big(\lambda x. x + 3\Big)\Big(\big(\lambda y.y \cdot 2\big)\big((\lambda z.5)()\big)\Big)

    Und wenn man die Klammern ei bisschen anders setzt hat man plötzlich Scheme:

    ((lambda (x) (+ x 3)) ((lambda (x) (* x 2)) 5))
    

    🤡


Anmelden zum Antworten