λ
嘿伙计们,我试图理解lambda函数,我需要你的帮助才能正确理解
示例:我创建了一个列表(List(0 0)(1 1)(2 2 2))
我试着把0.5的值加到列表中坐标点的x和y值上
告诉我如何使用lambda函数添加这些值
Mylist公司
(setq mylist (list '(0 0 0) '(1 1 1) '(2 2 2) '(3 3 3))) (mapcar '(lambda ( x ) (mapcar '+ x '(0.5 0.5 0))) mylist)或
我的Mapcar和Lambda教程可能会帮助您掌握这个概念。 李,太棒了。非常感谢
我还有一个关于相同lambda函数的问题
如何对列表中的最低坐标点进行排序
最低X、Y或Z坐标? 李,
我想找到矩形的最低点
示例代码:
(setq corner_Points (list '(10.0 10.0 0.0) '(20.0 10.0 0.0) '(20.0 20.0 0.0) '(10.0 20.0 0.0)))
(setq x (mapcar 'car corner_points))
(setq y (mapcar 'cadr corner_points))
(setq lower (list (apply 'min x) (apply 'min y)))
(setq upper (list (apply 'max x) (apply 'max y)))
为此,我必须创建这么多变量 Lambda,除点[角点]外没有变量
((lambda (x y z)
(list (list (y (car x)) (y (cadr x)))
(list (z (car x)) (z (cadr x)))
)
)
(list (mapcar 'car corner_points)
(mapcar 'cadr corner_points)
)
(lambda (i) (apply 'min i))
(lambda (i) (apply 'max i))
) Pbe非常感谢您的澄清
但也需要一些时间来理解 我个人并不反对创建变量,您的代码可以这样编写:
(defun _HiLow (pts)
(list (list (apply 'min (setq x (mapcar 'car pts)))
(apply 'min (setq y (mapcar 'cadr pts)))
)
(list (apply 'max x) (apply 'max y))
)
)
(\u HiLow corner\u Points)将在用作辅助程序例程时提供相同的结果。[即,如果您需要一次提取两个或多个点列表的低点和高点]
HTH公司
6 @Pbe,再次感谢你
子函数是我认为更好的方法
页:
[1]
2