Übung 01: Task 5

qveXx
Mausschubser
Mausschubser
Beiträge: 64
Registriert: 2. Dez 2005 19:02

Übung 01: Task 5

Beitrag von qveXx »

Wollte mal fragen, ob ich entweder etwas falsch mache, oder ob die parse-WAE Methode fehlerhaft ist.
Im Task 5 waren bei dieser Methode keine (error 'unimplemented) Stellen.

Diese Methode wird u.A. bei den Testcases aufgerufen, bevor die Übergabe an die wae-to-waedb-Methode stattfindet.
Das Problem:
(parse-WAE '{+ 3 4}) wird erfolgreich ausgewertet zu (add (num 3) (num 4))

Wenn ich jetzt aber
(parse-WAE '{with {x {+ 5 5}} {+ x x}}) aufrufe, gibt es ein #void bzw gar nichts.

Jetzt habe ich mir mal die parse-WAE Funktion genauer angesehen und den Teil
(define (parse-WAE sexp)
(cond
[(number? sexp) (num sexp)]
[(symbol? sexp) (id sexp)]
[(list? sexp)
(case (first sexp)
[(+) (add (parse-WAE (second sexp))
(parse-WAE (third sexp)))]
[(-) (sub (parse-WAE (second sexp))
(parse-WAE (third sexp)))]
)]
)
)
würde ich so interpretieren, dass wenn ein 'with kommt, dies immer Teil einer Liste ist, also list? exp -> true, aber mit keinem Case übereinstimmt.
Fehlen hier also noch die (with) und (id) Fälle?

Andreas T.
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 192
Registriert: 18. Okt 2006 00:18
Wohnort: Darmstadt

Re: Übung 01: Task 5

Beitrag von Andreas T. »

Fehlen hier also noch die (with) und (id) Fälle?
Davon gehe ich aus. Hat mich auch einige Nerven gekostet, weil ich den Fehler in der anderen Funktion gesucht hatte. Es wäre schön, wenn künftig alle Stellen, an denen etwas fehlt, kenntlich gemacht würden.

qveXx
Mausschubser
Mausschubser
Beiträge: 64
Registriert: 2. Dez 2005 19:02

Re: Übung 01: Task 5

Beitrag von qveXx »

Jetzt läufts bei mir auch. Musste in der parse-WAE Methode einen Case hinzufügen. Welcher das ist, überlasse ich als Knobelaufgabe :)

Benutzeravatar
sewe
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 295
Registriert: 16. Jan 2009 14:53
Kontaktdaten:

Re: Übung 01: Task 5

Beitrag von sewe »

Andreas T. hat geschrieben:Es wäre schön, wenn künftig alle Stellen, an denen etwas fehlt, kenntlich gemacht würden.
Danke für die Anregung. Wir versuchen, dass in Zukunft umzusetzen. (Die aktuelle Hausübung ist schon diesbezüglich aktualisiert.)

Antworten

Zurück zu „Archiv“