Mapping 使用mapc的现实例子是什么?
我刚才在考虑Mapping 使用mapc的现实例子是什么?,mapping,common-lisp,Mapping,Common Lisp,我刚才在考虑common lisp中的不同映射函数,如中所述。我非常习惯于mapcar,认为它是最容易理解的。但是使用mapc的真实例子是什么呢?就我所知,hyperspec中的示例使用它来产生副作用。但是为什么它返回list参数呢 当这种映射比使用循环等的迭代更有利时,是否有一般规则?使用mapc的真实示例是什么? (mapc#'打印我的列表)比(dolist(x我的列表)(打印x))更清晰。 为什么它返回list参数? 功能遗产强加了这样一种思想:每个功能都应该返回有用的东西;因为它是原始列
common lisp
中的不同映射函数,如中所述。我非常习惯于mapcar
,认为它是最容易理解的。但是使用mapc
的真实例子是什么呢?就我所知,hyperspec
中的示例使用它来产生副作用。但是为什么它返回list参数呢
当这种映射比使用循环
等的迭代更有利时,是否有一般规则?使用mapc
的真实示例是什么?
(mapc#'打印我的列表)
比(dolist(x我的列表)(打印x))更清晰。
为什么它返回list参数?
功能遗产强加了这样一种思想:每个功能都应该返回有用的东西;因为它是原始列表
我认为返回它的list参数的原因与此相同——通过向代码中添加输出来简化调试。例如,假设你做了如下的事情
(mapcar #'important-processing
list-with-weird-elements)
您希望在保留逻辑的同时查看列表中的内容:
(mapcar #'important-processing
(mapc #'show-weird-object list-with-weird-elements))
而且,CL中的很多东西都是为你准备的
当这种映射比使用循环
等的迭代更有利时,是否有一般规则。?
只有当你已经有了一个能满足你需要的功能时,就像上面所说的。我真的很喜欢“歇斯底里的理由”@MartinBuchmann也被称为“歇斯底里的葡萄干”,如果你觉得果味浓郁。