2016-10-08 1 views
0

Ich beginne gerade mit dem Schema, und ich bin mir nicht sicher, was ich falsch mache.Das Übergeben eines Arguments durch eine if-Anweisung in Scheme führt zu einem Fehler

Dieser Code soll die Anweisung generieren und dann übergeben, um zu drucken, mein Testfall sein Hallo, Welt!

drucken jetzt (es wird später mehr Sachen haben so muss ich eine neue Funktion) ist gerade dies:

(define (print args) 
    (display(args)) 
    (newline) 

Dieser Fehler heraus mit:

Anwendung: kein Verfahren; erwartet ein Verfahren, das auf die Argumente angewendet werden kann gegeben: („Hallo, Welt!“) Argumente ...: [keine] Kontext ...:

Ich glaube, ich auf der Schreibspur bin, denn die Ausgabe, die ich zu bekommen hoffe, ist da im "Gegebenen". Aber ich möchte, dass nur gedruckt wird.

Ich weiß, es gibt ein paar andere Fragen zu SO über diesen Fehler, aber keine ihrer Lösungen hat mir geholfen.

Vielen Dank im Voraus.

+0

Was sind 'dim' und' last-elem'? Es fehlen Prozeduren in der Frage –

+0

dim wird momentan nicht verwendet, last-elem ist das letzte Element in einer Liste. Das übergeordnete Ziel des Programms ist es, ein alberner Grunddolmetscher zu sein, es braucht ein Programm und führt es aus. Das fragliche Programm ist nur "Hallo, Welt!" Deshalb bin ich mir ziemlich sicher, dass alles andere funktioniert, weil ich es dort im gegebenen sehen kann. Ich weiß aber nicht viel über den Ablauf, also laufe ich hier meistens auf Raten. –

+0

Beginnen Sie mit dem Entfernen der unbenutzten Teile, sonst wird der Code nicht einmal kompiliert. Sie können nicht auf eine Variable oder eine Prozedur verweisen, die sich derzeit nicht im Gültigkeitsbereich befindet. –

Antwort

1

Für den Anfang der print Verfahren einen zusätzlichen und falsche Satz Klammern hat, sollte es so aussehen:

(define (print args) 
    (display args) 
    (newline)) 

Wenn Sie das bekommen:; Fehler „Anwendung kein Verfahren ein Verfahren zu erwarten“, es bedeutet, dass Sie Klammern falsch verwenden, in Schema (f) bedeutet, dass Sie versuchen, geltenf als keine Argumente Prozedur, wenn f ist keine Prozedur, dann erhalten Sie den Fehler.

+0

> (display args) Das hat es behoben, was ist der Unterschied? –

+0

Siehe den letzten Absatz –

+0

Ich verstehe, vielen Dank. –

Verwandte Themen