Bergervei/IO-Test
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Scheme</language>
== Prozedureingabe ==
<code id="4d4f15aab36ce" hidden>
(require-library 'sisc/libs/srfi/srfi-6)
(import srfi-6)
</code>
Mit dem nachfolgenden Beispiel kann das Konzept der ''Prozeduren höherer Ordnung'' durch Interaktion umgesetzt werden:
<run id="4d4f15aab3793">
(define proz (read (open-input-string (inputDialog "Prozedur (Lambda-Term):"))))
((eval proz) 4)
</run>
Soll eine einfache Syntaxkontrolle erfolgen, können mögliche Eingabefehler über eine ''Exception'' erfasst und behandelt werden:
<code id="4d4f15aab372c">
(define termeingabe
(lambda (x)
(let ([proz (read (open-input-string (inputDialog "Prozedur (Lambda-Term):")))])
(with-failure-continuation
(lambda (error-record error-k)
(display "--> Eingabefehler") (newline)
'ok)
(lambda ()
((eval proz) x))))))
</code>
<run id="4d4f15aab37e8">
(termeingabe 2)
</run>