Fre*_*Foo 12
有几种方法可以声明变量; 最干净的是let:
(let ((x some-expr))
; code block that uses x
Run Code Online (Sandbox Code Playgroud)
但是你不需要这个来获取列表的最后一个元素.只需使用递归:
(define (last xs)
(if (null? (cdr xs))
(car xs)
(last (cdr xs))))
Run Code Online (Sandbox Code Playgroud)
注意:如果需要,可以使用变量来缓存cdr结果:
(define (last xs)
(let ((tail (cdr xs)))
(if (null? tail)
(car xs)
(last tail))))
Run Code Online (Sandbox Code Playgroud)