Hi all,

what's the best (less expensive) method to insert elements only at the
head of a list and between first and second element of said list.
But don't insert an element at list-end if the list is of length 1.

I do have:

(define (list-insert-first-and-third lst arg1 arg2)
  (if (pair? lst)
      (append
        (list arg1)
        (list (car lst))
        (if (pair? (cdr lst))
            (list arg2)
            '())
        (cdr lst))
      lst))

(display (list-insert-first-and-third '(1 2 3 4 5) "a" "b"))

--> (a 1 b 2 3 4 5)

This looks clumsy, though.

Any hint for a better code?


Thanks,
  Harm

_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to