0
我如何用2個參數(foldl-1 proc xs)寫一個摺疊式左功能?這是行不通的:如何用2個arg創建摺疊?
(define (my-fold-left op xs)
(define (func proc start xs)
(let ((start xs))
(set! start (car xs))
(if (null? xs) start
(func op (op start (car xs)) (cdr xs))))))
不是函數參數的合理初始值可能是列表的第一個元素(如果它不是空列表)。 –
@JoshuaTaylor是的,這似乎是OP想要做的事情:'(set!start(car xs))',但我會讓他做出決定。 –
這是Common Lisp的[reduce](http://www.lispworks.com/documentation/HyperSpec/Body/f_reduce.htm)在沒有提供初始值時的行爲。 –