Testfälle von Aufgabe 2

Benutzeravatar
Pan
Erstie
Erstie
Beiträge: 20
Registriert: 3. Nov 2008 15:33

Testfälle von Aufgabe 2

Beitrag von Pan »

Hallo,

ich verstehe immer noch nicht, warum folgendes gelten soll:

(interp (parse (preproc '{with {c {fun {} 3}} {c}}))) --> (num 3))

(interp (parse (preproc '{with {c {fun {} 3}} c}))) --> (fun '_ (num 3)))

der einzige Unterschied ist doch, dass beim 1sten Fall das "c" in Klammern ist?!

Benutzeravatar
blackcomb
Mausschubser
Mausschubser
Beiträge: 70
Registriert: 1. Okt 2007 15:48
Wohnort: Darmstadt

Re: Testfälle von Aufgabe 2

Beitrag von blackcomb »

Hallo,

ich denke, die Klammern machen das "c" zu einer parameterlosen Funktionsanwendung, d.h. die Funktion wird an dieser Stelle aufgerufen und soll zu 3 evaluieren. Ohne Klammern ist es nur eine Referenz auf die Funktion c, die aber hier nicht ausgewertet wird.

f_jakob
Mausschubser
Mausschubser
Beiträge: 50
Registriert: 27. Okt 2009 14:05

Re: Testfälle von Aufgabe 2

Beitrag von f_jakob »

Vielleicht macht es ja folgendes äquivalentes Beispiel in Scheme klarer:

Code: Alles auswählen

(define c (lambda () 3))
> (c)
3
> c
#<procedure:c>
>

Antworten

Zurück zu „Archiv“