-1
(define length1
 (lambda (lat)
  (cond 
   ((null? lat) 0)
   (else (+ 1 (length1 (cdr lat)))))))

例如:在调用 length1 时显示数字(或其他任何内容)cond

4

1 回答 1

1

对于 common lisp,您可以使用(progn (...) (...) ...)将多个表达式组合为一个。

方案中的等价物是(begin (...) (...) ...)

所以:

(define length1
 (lambda (lat)
  (cond 
   ((null? lat) 0)
   (else (begin (display "hello world") (+ 1 (length1 (cdr lat))))))))

或者你可能想要:

(define length1
 (lambda (lat)
  (cond 
   ((null? lat) 0)
   (else (let ((or-anything-else (+ 1 (length1 (cdr lat)))))
            (display or-anything-else)
            or-anything-else)))

这几乎耗尽了我的耐心。

于 2012-07-24T01:24:25.593 回答