Sujet : Re: YANQ - When to map, when to iterate, when to recurse? And why CLOS?
De : Nobody447095 (at) *nospam* here-nor-there.org (B. Pym)
Groupes : comp.lang.lispDate : 19. Aug 2024, 09:20:00
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v9urmt$2pj9b$1@dont-email.me>
User-Agent : XanaNews/1.18.1.6
Wade Humeniuk wrote:
John Connors wrote:
Yet Another Noob Question.
What are the characteristics of each implementation?
How can I tell which I should be writing in what context...
(defun find-indicies (lst tst)
(let ((li 0))
(labels ((qpred (a)
(incf li)
(if (funcall tst a)
(1- li)
nil)))
(remove nil (mapcar #'qpred lst)))))
(defun find-indices (lst tst)
(loop
for el in lst
counting t into index
if (funcall tst el)
collect index))
You are allergic to loop
(defun find-indices (list test)
(loop for element in list
for index from 1
when (funcall test element) collect index))
newLISP
(define (find-indices lst test)
(index test lst))
(find-indices '(200 209 250 257 260 263) odd?)
===>
(1 3 5)