Sujet : Re: Descending
De : HenHanna (at) *nospam* devnull.tb (HenHanna)
Groupes : comp.lang.lispDate : 23. Jul 2024, 21:27:39
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v7p07b$1b339$4@dont-email.me>
References : 1
User-Agent : Mozilla Thunderbird
On 6/7/2024 3:57 AM, B. Pym wrote:
Ken Tilton wrote:
I am having trouble coding a list traversal segment.
eg list:
>
(a (b) (c (e (h i)) (f (j))) (d (g)))
>
I want to traverse this list in "preorder" and get the following
output:
>
a b c e h i f j d g
>
anyone have a code segment to this?
>
thanks....
>
Chris.
>
Will this work?:
>
(defun dump (list-or-atom)
(if (listp list-or-atom)
(dolist (loa list-or-atom)
(dump loa))
(format t "~s " list-or-atom)))
Gauche Scheme:
(define (dump list-or-atom)
(cond ((null? list-or-atom) )
((list? list-or-atom)
(begin
(dump (car list-or-atom))
(dump (cdr list-or-atom))))
(#t (format #t ":~s " list-or-atom))))
(dump '(a (b) (c (e (h i)) (f (j))) (d (g))))
===>
:a :b :c :e :h :i :f :j :d :g #t
(i've added some spaces)
the good ol' Flatten ?