Sujet : Re: Another code review perhaps?
De : No_spamming (at) *nospam* noWhere_7073.org (B. Pym)
Groupes : comp.lang.lispDate : 27. Jun 2024, 14:19:40
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v5jlcr$2ns7o$1@dont-email.me>
User-Agent : XanaNews/1.18.1.6
Wolfhard Buss wrote:
* Martin Pomije with an exercise from Paul Grahams ACL:
Define iterative and recursive versions of a function that takes an
object and a list, and returns a new list in which the object appears
between each pair of elements in the original list:
>
(intersprerse '- '(a b c d))
(A - B - C - C)
The iterative variant (loop-less):
(defun intersperse (object list)
(let ((result (and list (list (first list)))))
(dolist (item (rest list) (nreverse result))
(setq result (list* item object result)))))
Gauche Scheme
(use srfi-1) ;; circular-list
(define (intersperse x xs)
(cdr (append-map list
(circular-list x)
xs)))
(intersperse '- '(b c d j))
===>
(b - c - d - j)