Renamed files: constanten→constants, adt-positie→adt-position, adt-doolhof→adt-maze, adt-sleutel→adt-key, adt-tijdslimiet→adt-timer, adt-teken→adt-draw, adt-spel→adt-game. All message names, variables, comments, and tests converted to English. Also fixed counter location bug (time-label x/y were swapped). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
41 lines
1.3 KiB
Racket
41 lines
1.3 KiB
Racket
#lang r7rs
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Appel ADT ;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
|
|
(define-library ()
|
|
(import (scheme base))
|
|
(export maak-appel)
|
|
|
|
(begin
|
|
|
|
|
|
|
|
;; ADT Appel
|
|
;; maak-appel :: positie -> appel
|
|
;; positie :: appel -> positie
|
|
;; positie! :: appel, positie -> /
|
|
|
|
;; maak-appel :: positie -> appel
|
|
(define (maak-appel positie)
|
|
;; positie! :: positie -> /
|
|
(define (positie! nieuwe-positie)
|
|
(set! positie nieuwe-positie))
|
|
|
|
(define (dispatch-appel msg)
|
|
(cond ((eq? msg 'positie) positie)
|
|
((eq? msg 'positie!) positie!)
|
|
(else (error "Appel ADT -- Onbekend bericht:" msg))))
|
|
dispatch-appel)
|
|
|
|
;; Merk op dat de `dispatch-appel` procedure niet in de beschrijving van het ADT
|
|
;; staat! Deze procedure wordt gebruikt om het ADT in een object-gebaseerde
|
|
;; stijl te implementeren. De beschrijving van het ADT bevat alleen de operaties
|
|
;; die beschikbaar zijn in de dispatch-procedure. Dat betekent dat een procedure
|
|
;; die niet beschikbaar gesteld wordt in de dispatch-procedure, geen deel
|
|
;; uitmaakt van de beschrijving van het ADT.
|
|
|
|
))
|