我需要对列表中的最后一个元素以外的所有元素应用一个函数。基本上我正在编写一种玩具编译器,所以给出这样的算术术语:
(+ 1 10)
我想得到类似的东西
Plus(1, 10)
我设法得到以下内容:
Plus(1, 10 ,)
通过使用地图功能:
(string-append "Plus ("
(fold-right string-append ""
(map (lambda (x) (string-append x ",")) (map compile-term (cdr t)))))
其中 compile-term 是我正在编写的函数,而 t 是我编译的术语。
所以我的问题如下,是否有一种干净的方法可以将函数应用于所有元素,但使用 Guile Scheme 的列表的最后一个元素除外?或者唯一的解决方案是使用此处所示的循环。
提前非常感谢。