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>