Sujet : Re: YANQ - When to map, when to iterate, when to recurse? And why CLOS?
De : No_spamming (at) *nospam* noWhere_7073.org (B. Pym)
Groupes : comp.lang.lispDate : 06. Jul 2024, 00:36:05
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v69sgh$3ffop$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))
Gauche Scheme
(define (find-indices lst test)
(filter-map
(lambda (e i) (and (test e) i))
lst
(lrange 1)))
(find-indices '(0 88 409 66 77) odd?)
===>
(3 5)