3
使用方案,如语言额外的括号,我将删除方案
(quote (lambda (a b) (* a b) (+ a b))))
到:
(quote (lambda (a) (lambda (b) (+ a b) (* a b))))
,但我目前的执行情况,我得到一个额外的对括号周围的表达(+ a b)
和(* a b)
:
(lambda (a) (lambda (b) ((+ a b) (* a b))))
我花了很多时间试图解决这个问题,但无法弄清楚。我觉得修复应该是微不足道的。
这是目前我的代码:
(define (conv lyst)
(define (helper args)
(cond
((null? args) (append (cddr lyst) args))
(else (cons (car lyst)
(cons (list (car args))
(list (helper (cdr args))))))))
(cond
((eq? 1 (length (car (cdr lyst)))) lyst)
(else (helper (car (cdr lyst))))))
不错!这简单得多。 '(lambda)之后,唯一需要解决的问题是在第一个解决方案中添加额外的附加内容。 – User9193
呵呵,我不知道在MIT Scheme里'append'只接受两个参数;我更新了我的答案。 –