(defn rever [a]
(defn item[l r]
(if (= nil (first l)) r
(item (rest l) (cons (first l) r))
)
)
(item a nil)
)
这段代码非常有助于理解什么是深度优先,什么是广度优先。
很久没有写习题的代码了,倒不是懒得做习题了,是私事多,状态差,做了很多题,也不想发出来
今天回复的还好,发一个。
(⊙o⊙)… 发完才发现已经发过了,把2.21也加进来吧 标题改成2.21,2.19和2.20没有存稿,我状态恢复一下再折腾。
(defn square [x](* x x))
; map 版
(defn square-list [item] (map square item))
;非map版
(defn square-list [item]
(if (empty? item)
nil
(cons
(square (first item))
(square-list (rest item))
)
)
)
这里容易出错的地方之一是,输出的内容是反序的。需要注意如何cons进序列对。