• YANQ - When to map, when to iterate, when to recurse?

    From Robert L.@21:1/5 to All on Fri Feb 11 08:47:13 2022
    (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 seq test)
    (filter-map
    (lambda (element index) (and (test element) index))
    seq
    (lrange 0)))

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From B. Pym@21:1/5 to All on Tue Jun 17 15:17:48 2025
    (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 xs test)
    (filter-map
    (lambda (x i) (and (test x) i))
    xs
    (lrange 1)))

    (find-indices '(3 4 6 7) odd?)
    ===>
    (1 4)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)