在先前的结果上应用程序

时间:2017-05-09 23:34:36

标签: scheme

给定一个列表列表作为输入,我想执行一个程序,使最终结果为:

(define (thing . lists) ; list of lists (l1 l2 ... lN)
  ;returns ...f(f(f(l1 l2) l3) lN)...
)

例如:

(thing '(a b) '(c d) '(e f))

...会产生f(f((a b) (c d)) (e f))

我正在与折叠,lambda,应用和地图作斗争,但我无法找到正确的方法。

1 个答案:

答案 0 :(得分:1)

假设输入至少两个列表并且之前已定义<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="Section1" class="divFiles"> <input type="text" name="file" value="a"> <input type="text" name="file" value="b"> <input type="text" name="file" value="c"> <input type="text" name="file" value="d"> </div> <div id="Section2" class="divFiles"> <input type="text" name="file" value="e"> <input type="text" name="file" value="f"> <input type="text" name="file" value="g"> <input type="text" name="file" value="h"> </div>

f

例如:

(define (thing . lists)
  (foldr (lambda (lst acc)
           (f acc lst))
         (f (car lists) (cadr lists))
         (cddr lists)))