EoPL reading (103) 2.3 Representation Strategies for Data Types
Exercise 2.14
書き方が難しい。ってかそれ以前の問題もあったりなんかします。
ざっくりな理解として
- empty-stack 手続きは constructor
- push 手続きは constructor
- pop 手続きは constructor
- top 手続きは observers
- empty-stack? 手続きは observers
かなぁ。仕様を書くのはここでは違う意味で手間なので実装を以下に。
# 試験してません
(define empty-stack '()) (define push (lambda (s env) (cons s env))) (define pop (lambda (env) (cdr env))) (define top (lambda (env) (car env))) (define empty-stack? (lambda (env) (null? env)))
あ、top 手続きは empty-stack? なチェックが必要だな。
# pop もか
む
なんか違うな。2.3 はきちっと読まんとダメそげ。