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>
Zufallsgenerator: Die folgenden Funktionen gehören nicht zum Scheme Standard. Die Variable "RandomSeed" wird für die Erzeugung von Zufallszahlen verwendet. Diese wird automatisch mit einer zufälligen Zahl vordefiniert. Sie können diese aber umdefinieren, wenn sie immer die gleiche Folge von Zufallszahlen erzeugen wollen.
<run id="4d4daed503e9f">
(random) ;liefert eine Gleitkommazahl zwischen 0 und 1
</run>
<run id="4d4daed503f3e">
(randomInt 100) ;liefert eine Ganzzahl zwischen 0 und 99
</run>
<run id="4d4daed503fd4">
(define RandomSeed 123456789)
(randomInt 6)
</run>