map函数 lisp
时间: 2023-07-30 07:05:47 浏览: 161
在 Lisp 中,map 函数是一种高阶函数,它可以将一个函数应用于列表中的每个元素,并返回一个新的列表,其中包含应用函数后的结果。map 函数的定义如下:
```lisp
(defun map (function list)
(if (null list)
nil
(cons (funcall function (car list))
(map function (cdr list)))))
```
其中,function 是要应用于列表中每个元素的函数,list 是要处理的列表。这个函数首先检查列表是否为空,如果为空就返回空列表。否则,它将 function 应用于列表的第一个元素(使用 funcall 函数),并将结果作为新列表的第一个元素,然后递归地将 function 应用于列表的其余部分,直到列表为空为止。
例如,我们可以使用 map 函数来将列表中的每个元素加倍:
```lisp
(map (lambda (x) (* x 2)) '(1 2 3 4 5)) ; returns (2 4 6 8 10)
```
阅读全文