Lambda the Ultimate Actor (2) メッセージの行き先をreceiverで指定 (define (make-account total) (lambda (msg . args) (case msg ;; (acct 'withdraw amount receiver) ((withdraw) (let ((amount (car args)) (receiver (cadr args))) (dec! total amount) (receiver 'deposit amount))) ;; (acct 'deposit amount) ((deposit) (inc! total (car args)) #f) ;; (acct 'query receiver) ((query) ((car args) total)))))