Так что мне нужна помощь в реализации программы Make-memory с использованием Scheme. Мне нужно два сообщения «написать и прочитать». Таким образом, это было бы как (mymem 'написать 34 -116) и (mymem' read 99) правильно? и (определите mymem (make-memory 100)) ..... Как бы это реализовать в схеме? используя Alist ??? Мне нужна помощь в кодировании. У меня есть этот код, который делает make-memory процедурой, и когда вы запускаете mymem, вы получаете ((99.0)), и что мне нужно сделать, это повторить это, так что я получаю список с пунктирными парами в ((0.0)). Таким образом, какие-либо предложения о том, как закодировать это? Кто-нибудь есть какие-либо идеи, что я мог бы сделать, чтобы повторить и сделать сообщения Написать и прочитать ??
(define make-memory
(lambda (n)
(letrec ((mem '())
(dump (display mem)))
(lambda ()
(if (= n 0)
(cons (cons n 0) mem) mem)
(cons (cons (- n 1) 0) mem))
(lambda (msg loc val)
(cond
((equal? msg 'read) (display
(cons n val))(set! n (- n 1)))
((equal? msg 'write) (set! mem
(cons val loc)) (set! n (- n 1)) (display mem)))))))
(define mymem (make-memory 100))
Да, это задание, но я написал этот код. Мне просто нужна помощь или направление. И да, я знаю о списках аргументов переменной длины.