Dr. Scheme

Hey,

Vraagje; kan er hier iemand Dr Scheme ?
Ik moet namenlijk een opdracht voor school maken, maar ik geraak er maar niet uit.
Help zou handig zijn.

Opgave

[quote:eb8ce1cac4]
Maak een programma dat iedere keer de volgende kaart weergeeft en op het einde opnieuw begint
[/quote:eb8ce1cac4]

Dit heb ik al:

[code:1:eb8ce1cac4]
;Lijst van kaarten
(define kaarten-lijst (cons 'aas (cons 2 (cons 3 (cons 4 (cons 5 (cons 6 (cons 7 (cons 8 (cons 9 (cons 10 (cons 'boer (cons 'dame (cons 'heer empty))))))))))))))

;Programma
(define (volgende-kaart kaarten-lijst)
(set! kaarten-lijst (rest kaarten-lijst + 1))
(cond
[(empty? kaarten-lijst) "Einde" ]
[else
(first kaarten-lijst )]))
[/code:1:eb8ce1cac4]

Waarschijnlijk een beetje laat maar goed: [code:1:666ae0a4dd](define (make-kaart-prog) (let ((kaarten-lijst (list 'aas 2 3 4 5 6 7 8 9 10 'boer 'dame 'heer)) (counter 0)) (define (volgende-kaart) (display (list-ref kaarten-lijst (modulo counter (length kaarten-lijst)))) (newline) (set! counter (+ counter 1))) (define (dispatch m) (cond ((eq? m 'volgende-kaart) (volgende-kaart)))) dispatch))

(define kaart-prog (make-kaart-prog))[/code:1:666ae0a4dd]
Een kaart afdrukken doe je dan met:

[code:1:666ae0a4dd](kaart-prog 'volgende-kaart)[/code:1:666ae0a4dd]
Zoiets wat je bedoelde?

Pib