Scheme
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Scheme</language>
=== Scheme ===
Sagen Sie die jeweilige Antwort des Interpreters vorher. Vergleichen Sie anschließend die Antworten des Scheme-Systems mit Ihren Vorhersagen.
Hinweis: die Zahlen (number) werden nicht nur "nachgeplappert".
{| cellspacing=10 cellpadding=3
|-
| <run id="4bc32172e23a3">4</run> || <run id="4bc32172e2b77">12345</run> || <run id="4bc32172e3347">0.8439</run>
|-
| <run id="4bc32172e3b1a">-.590</run> || <run id="4bc32172e42eb">-0</run> || <run id="4bc32172e4ac0">7/3</run>
|-
| <run id="4bc32172e528f">24/3</run> || <run id="4bc32172e5a80">9e-8</run> || <run id="4bc32172e6253">#b1101</run>
|}
===Fibonacci-Berechnung 1===
<code id="4bc32172e141a">(define fib
(lambda (n)
(if (< n 2)
1
(+ (fib (- n 1)) (fib (- n 2))))))</code>
<run id="4bc32172e6a23">
(fib 5)
</run>
<check>
(and (= (fib 0) 1) (= (fib 11) 144) (= (fib 12) 233))
</check>
===Fibonacci-Berechnung 2===
<code id="4bc32172e1bd3">
(define fib-memo
(let ((fib-memoliste '()))
(lambda (n)
(let ((rek-aufrufe 0))
(letrec
((fib-memo-hilf
(lambda (n)
(let ((memowert (assoc (list n) fib-memoliste)))
(if memowert
(cdr memowert)
(let ((resultat (fib-hilf n)))
(set! fib-memoliste (cons (cons (list n) resultat) fib-memoliste)) resultat)))))
(fib-hilf
(lambda (n)
(set! rek-aufrufe (+ rek-aufrufe 1))
(if (< n 2)
1
(+ (fib-memo-hilf (- n 1))(fib-memo-hilf (- n 2)))))))
(list n (fib-hilf n) rek-aufrufe))))))
</code>
<run id="4bc32172e71fb" cols="90">(fib-memo 100)</run>
Dialog Ein-/Ausgabe mit Scheme:
<run id="4d4905aadfbc9">
(define name (inputDialog "Gib deinen Namen ein:"))
(showMessage (string-append "Hallo " name))
</run>