Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Kaz Kylheku <643-408-1753@kylheku.com> Newsgroups: comp.lang.lisp Subject: Re: [Newbie] passing keyword argument Date: Fri, 19 Jul 2024 17:25:45 -0000 (UTC) Organization: A noiseless patient Spider Lines: 46 Message-ID: <20240719102409.76@kylheku.com> References: Injection-Date: Fri, 19 Jul 2024 19:25:45 +0200 (CEST) Injection-Info: dont-email.me; posting-host="329fa895c5d6908477a80b789f62a073"; logging-data="3237795"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/mxuqx6FyjA0jpWnfjqvXYFB2nxi6opME=" User-Agent: slrn/pre1.0.4-9 (Linux) Cancel-Lock: sha1:gfBlvT0S+LauKWcER029KxtdCsU= Bytes: 2123 On 2024-07-18, B. Pym 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/txr Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal Mastodon: @Kazinator@mstdn.ca