- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只是在考虑 common-lisp
中的不同映射函数,如 hyperspec 中所述。 。我已经非常习惯 mapcar
并且认为它是最容易理解的。但是使用 mapc
的真实示例是什么?据我所知,hyperspec
中的示例使用它来产生副作用。但为什么它返回列表参数呢?
当这种映射优于使用循环
等的迭代时,是否存在一般规则?
最佳答案
mapc
的真实示例是什么?(mapc#'print my-list)
比 (dolist (x my-list) (print x)) 更清晰
函数继承强加了这样的想法:每个函数都应该返回有用的东西;对于 mapc
这是原始列表。
我认为mapc
出于同样的原因返回其列表参数 print
确实 - 通过在代码中添加输出来简化调试。例如,假设你做了类似的事情
(mapcar #'important-processing
list-with-weird-elements)
您希望在保留逻辑的同时查看列表中的内容:
(mapcar #'important-processing
(mapc #'show-weird-object list-with-weird-elements))
另外,CL中的很多东西都是针对"hysterical reasons"的.
循环
等的迭代时,是否存在一般规则?仅当您已经有一个可以满足您需要的函数时,例如 print
如上所述。
关于mapping - 使用mapc 的实际例子是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52556571/
我正在尝试附加到列表,该元素是一个字符串,我想将其替换为另一个字符串,但这是我收到的错误 AttributeError: 'str' object has no attribute 'append'
到目前为止,我一直在使用 mapcar 将函数应用于列表的所有元素,例如: (mapcar (lambda (x) (* x x)) '(1 2 3 4 5)) ;; => '(1 4
第一个问题:假设 Common Lisp 的现代编译器通常会将 (mapcar #'fn ...) 和 (map 'list #'fn ...) 编译成与 (mapc #'fn ...) 相同的代码是
我是一名优秀的程序员,十分优秀!