Поэтому мне нужна помощь в реализации программы 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))
Да, это задание, но я написал этот код. Мне просто нужна помощь или направление. И да, я знаю о списках аргументов переменной длины.