gpt4 book ai didi

lisp - 将 sqrt 函数应用于 lisp 中的多个列表

转载 作者:太空宇宙 更新时间:2023-11-03 18:53:48 25 4
gpt4 key购买 nike

尝试学习 Lisp 的新手。我想将 sqrt(或任何函数)应用于 Clisp 中的多个列表。例如。使用 mapcar 我们可以应用于一个列表,例如 ( map 车#'sqrt(10 20 30))。

但是列表是 ((10 20) (30 40) (50)) 的情况呢?预先感谢您的帮助。

最佳答案

尝试

? (mapcar (lambda (e) (mapcar #'sqrt e)) '((10 20) (30 40) (50)))
((3.1622777 4.472136) (5.477226 6.3245554) (7.071068))

对于任意深度,您可以使用递归函数:

(defun rmap (fun lst)
(mapcar
(lambda (x)
(if (listp x)
(rmap fun x)
(funcall fun x)))
lst))

关于lisp - 将 sqrt 函数应用于 lisp 中的多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20020152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com