そのため、Scheme を使用した Make-memory プログラムの実装について助けが必要です。「書き込み」と「読み取り」の 2 つのメッセージが必要です。つまり、(mymem 'write 34 -116) と (mymem 'read 99) のようになりますよね? and (define 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))
はい、これは割り当てですが、このコードを書きました。助けや指示が必要なだけです。はい、可変長引数リストについては知っています。