我發現自己一直在做這種事情。我一直在考慮編寫一個宏/函數來使這種事情變得更容易,但是對我而言,我可能會重新發明輪子。常見的lisp成語 - 有沒有更好的方法?
是否有一個現有的函數可以讓我更簡潔地完成同樣的事情?
(defun remove-low-words (word-list)
"Return a list with words of insufficient score removed."
(let ((result nil))
(dolist (word word-list)
(when (good-enough-score-p word) (push word result)))
result))
謝謝 - 我從來沒有真正想過使用mapcan的理由,但這顯示了我的方式。對於這個特定的例子,remove-if/remove-if-not更好,但仍然非常好。 – khedron 2009-12-08 01:59:12