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'只接受兩個參數;我更新了我的答案。 –