• Re: When to use apply

    From B. Pym@Nobody447095@here-nor-there.org to comp.lang.lisp on Tue Jun 17 15:25:51 2025
    From Newsgroup: comp.lang.lisp

    Of course, after going through all of that you then see why loop is so
    handy:

    CL-USER> (defun nth-elements (n &rest lists)
    (loop for item in lists collect (nth n item)))

    NTH-ELEMENTS
    CL-USER> (nth-elements 3 '(10 20 hello x world) '(-1 -2 -3 y) '(z0 z1 z2 z))

    (X Y Z)

    (define (nth-elements n . seqs)
    (map (lambda (xs) (list-ref xs n)) seqs))

    (nth-elements 3
    '(10 20 hello x world)
    '(-1 -2 -3 y)
    '(z0 z1 z2 z))

    ===>
    (x y z)
    --- Synchronet 3.21d-Linux NewsLink 1.2
  • From B. Pym@Nobody447095@here-nor-there.org to comp.lang.lisp on Tue Jun 17 15:33:28 2025
    From Newsgroup: comp.lang.lisp

    B. Pym wrote:

    Of course, after going through all of that you then see why loop is so handy:

    CL-USER> (defun nth-elements (n &rest lists)
    (loop for item in lists collect (nth n item)))

    NTH-ELEMENTS
    CL-USER> (nth-elements 3 '(10 20 hello x world) '(-1 -2 -3 y) '(z0 z1 z2 z))

    (X Y Z)

    (define (nth-elements n . seqs)
    (map (lambda (xs) (list-ref xs n)) seqs))

    (nth-elements 3
    '(10 20 hello x world)
    '(-1 -2 -3 y)
    '(z0 z1 z2 z))

    ===>
    (x y z)

    Shorter:

    (define (nth-elements n . seqs)
    (map (cut list-ref <> n) seqs))


    --- Synchronet 3.21d-Linux NewsLink 1.2
  • From Kaz Kylheku@643-408-1753@kylheku.com to comp.lang.lisp on Tue Jun 17 18:30:07 2025
    From Newsgroup: comp.lang.lisp

    On 2025-06-17, B. Pym <Nobody447095@here-nor-there.org> wrote:
    Of course, after going through all of that you then see why loop is so
    handy:

    CL-USER> (defun nth-elements (n &rest lists)
    (loop for item in lists collect (nth n item)))

    NTH-ELEMENTS
    CL-USER> (nth-elements 3 '(10 20 hello x world) '(-1 -2 -3 y) '(z0 z1 z2 z)) >>
    (X Y Z)

    (define (nth-elements n . seqs)
    (map (lambda (xs) (list-ref xs n)) seqs))

    (nth-elements 3
    '(10 20 hello x world)
    '(-1 -2 -3 y)
    '(z0 z1 z2 z))

    (map 3 '((10 20 hello x world) (-1 -2 -3 y) (z0 z1 z2 z)))
    (x y z)
    --
    TXR Programming Language: http://nongnu.org/txr
    Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
    Mastodon: @Kazinator@mstdn.ca
    --- Synchronet 3.21d-Linux NewsLink 1.2