BuK/IIm18/Studenten/s3romuel
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Scheme</language>
== Playground s3romuel ==
Hashtable-Test
<code id="5cc5cc392ba40">(define real (make-hashtable))
(define f-mem
(lambda (n)
(if (= n 1)
1
(if (= (modulo n 2) 0)
(+ 1 (hash-ref! real(/ n 2) (lambda () (f-mem (/ n 2)))))
(/ 1 (hash-ref! real(- n 1) (lambda () (f-mem (- n 1)))))))))</code>
<run id="5cc5cc392baab">
(f-mem 5)
</run>
<check>
(and (= (f-mem 1) 1) (= (f-mem 2) 2) (= (f-mem 4) 3))
</check>
<code id="5cc5cf718f468" >(define real (make-hashtable))
(import hashtable)
(define table (make-hashtable))
(define false (lambda () #f))
(define f-mem
(lambda (n)
(let ([resultat (hashtable/get table n false)])
(cond
[(= n 1) 1]
[(number? resultat) resultat]
[else
(let([res-berechnet
(if (= (modulo n 2) 0)
(+ 1 (f-mem (/ n 2)))
(/ 1 (f-mem (- n 1)))
)])
(hashtable/put! table n res-berechnet)
res-berechnet
)
]
)
)
)
)
</code>
<run id="5cc5cf718f53d" >
(f-mem 5)
</run>