Am Sa., 6. Apr. 2019 um 16:11 Uhr schrieb Gianmaria Lari
<gianmarial...@gmail.com>:
>
> I wrote this function
>
> #(define (resetList l) (set! l '()))
>
>
> that I would like to set a list to an empty list. This is an example of use:
>
> \version "2.21.0"
> #(define mylist '(1 2 3))
> \markup #(object->string mylist) %this prints (1 2 3)
>
> #(define (resetList l) (set! l '()))
> #(resetList mylist)
> \markup #(object->string mylist) % this I would like it prints () but it 
> prints (1 2 3)
>
> I think the problem is related to the fact resetList changes mylist locally 
> (sort of) but I have no idea how I can fix it. Any help?
>
> Thank you, g.

One possibility is to use a macro:

#(define-macro (reset-list l) `(set! ,l '()))

Cheers,
  Harm

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

Reply via email to