BuK/IIm18/Studenten/s3romuel

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SchemeJS</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 >(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 >

(f-mem 5)

</run>