Sujet : Re: [Newbie] passing keyword argument
De : 643-408-1753 (at) *nospam* kylheku.com (Kaz Kylheku)
Groupes : comp.lang.lispDate : 19. Jul 2024, 19:25:45
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <20240719102409.76@kylheku.com>
References : 1
User-Agent : slrn/pre1.0.4-9 (Linux)
On 2024-07-18, B. Pym <
Nobody447095@here-nor-there.org> wrote:
Carl Taylor wrote:
>
Here's a LOOP version of an index constructor.
(defun make-index-list (obj seq &key (test #'eql))
(loop for p = (position obj seq :test test :start (if p (1+ p) 0))
while p
collect p))
(compile *)
CL-USER 18 >
(make-index-list
'(0 1)
'(a (6 2 z) (0 1) (1 2 3 4) (q w e r t y) (0 1) (foo) bar)
:test #'equal)
(2 5)
>
Gauche Scheme
>
(define (make-index-list obj seq :optional (test equal?))
(filter-map
(lambda(x i) (and (test obj x) i))
seq
(lrange 0)))
>
(make-index-list
'(0 1)
'(a (6 2 z) (0 1) (1 2 3 4) (q w e r t y) (0 1) (foo) bar))
>
===>
(2 5)
This is the TXR Lisp interactive listener of TXR 295.
Quit with :quit or Ctrl-D on an empty line. Ctrl-X ? for cheatsheet.
TXR's no-spray organic production means every bug is carefully removed by hand.
1> (where (op equal '(0 1)) '(a (6 2 z) (0 1) (1 2 3 4)
(q w e r t y) (0 1) (foo) bar))
(2 5)
-- TXR Programming Language: http://nongnu.org/txrCygnal: Cygwin Native Application Library: http://kylheku.com/cygnalMastodon: @Kazinator@mstdn.ca