2016-06-21 8 views
2

Es ist mir nicht klar, warum dieser cond gibt falsche Art, Fehler anzuwenden.Guile scheme cond FEHLER: Falscher Typ zum Anwenden

Schema @ (guile-Benutzer) [12]> (cond ((gleich "i" "i") => (Anzeige "yay"))?)

yay

ERROR: In Verfahren #:

ERROR: Wrong Typ gelten: #

Schema @ (guile-Benutzer) [12]> (cond ((string = "i" "i") => (Anzeige "yay")))

yay

ERROR: Im Verfahren #:

ERROR: Wrong Typ gelten: #

Antwort

0

Die übliche Syntax für cond ist wie folgt:

(cond ((equal? "i" "i") 
     (display "yay"))) 
; prints yay 

Wir => verwenden, wenn wir das Ergebnis übergeben wollen der Bedingung als Parameter für eine Funktion, die ausgeführt wird, zum Beispiel:

(cond ((equal? "i" "i") 
     => display)) 
; prints #t 

Im obigen Code wird die Bedingung #t ausgewertet und #t wird als Parameter an display übergeben, die es druckt.