Я пытаюсь создать систему памяти, в которую вы вводите что-то в ячейку памяти.Итак, я делаю Alist, а машина пар - это ячейка памяти, а cdr - это val.Мне нужна программа, чтобы понять два сообщения: чтение и запись.Чтение просто отображает выбранную ячейку памяти и значение val, назначенное этому расположению, и запись изменяет значение val местоположения или адресаКак мне сделать свой код таким образом, чтобы он читал место, куда вы хотите, и записываете в то место, куда вы хотите?Не стесняйтесь проверить это самостоятельно.Любая помощь приветствуется.Вот что у меня есть:
(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))