代码改变世界

《how to design programs》9.3处理任意长度的表

2013-11-11 10:28  youxin  阅读(228)  评论(0编辑  收藏  举报

假定一个玩具商店要把货物库存清单存放在计算机之中,这样,店里的员工就可以快速判断商店里是
否还有某种玩具存货。简言之,商店需要一个能够检查库存是否含有玩具'doll 的函数contains-doll?,翻译
成Scheme 的术语就是,判断符号表中是否存在值为'doll 的元素。
有了函数 contains-doll?输入数据的定义,接着就要给出函数合约、头部和用途说明:
;; contains-doll? : list-of-symbols -> boolean
;; 判断符号'doll 是否存在于a-list-of-symbols 之中
(define (contains-doll? a-list-of-symbols) ...)

(define (contains-doll? a-list-of-symbols)
(cond
[(empty? a-list-of-symbols) false]
[else (cond
[(symbol=? (car a-list-of-symbols) 'doll) true]
[else (contains-doll? (cdr a-list-of-symbols))])]))

http://www.htdp.org/2003-09-26/Book/curriculum-Z-H-13.html#node_chap_9