#:g1: pfcでL-99 (P02 最後2つの要素)

Posted 2008-04-13 10:43:00 GMT

-(http://www.ic.unicamp.br/~meidanis/courses/mc336/2006s2/funcional/L-99_Ninety-Nine_Lisp_Problems.html)
自分は毎回混乱しているのですが、2番目の問題は、最後2つの要素を取り出す問題です。
標準でdropがあるので、それを使ってみました。
dropはSRFI-1由来だと思いますが、CLだと、LASTがdropの代わりに使えます。
(last '(1 2 3 4) 2) => (3 4)

(last2 [1 2 3 4])
;=> [3 4]

(def (last2 lst) (drop (- (length lst) 2) lst))

(def (last2 lst) (if (>= 2 (length lst)) lst (last2 (cdr lst))))


comments powered by Disqus