[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: vecteur scheme
From: |
Gilles |
Subject: |
Re: vecteur scheme |
Date: |
Sat, 18 May 2013 00:26:12 +0200 |
User-agent: |
Opera Mail/12.15 (Linux) |
et parmi tous les car, cdr, caar, cadr, cdar, cddr, caaar, caadr, cadar,
caddr, cdaar, cdadr, cddar, cdddr, caaaar, caaadr, caadar, caaddr,
cadaar,
cadadr, caddar, cadddr, cdaaar, cdaadr, cdadar, cdaddr, cddaar, cddadr,
cdddar, cddddr yen a pas un qui pourrait faire l'affaire ?
Tu peux essayer de copier ça dans un fichier test.ly par exemple, puis
compiler
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#(define cte
(list
(list 6 -1 0 2 2 2)
(list 4 -1 0 1 2 2)
(list 0 0 0 1 2 3)
(list 1 0 0 2 2 3)
(list 2 0 0 1 2 4)
(list 3 0 0 2 2 4)
(list 5 0 0 2 2 5)
(list 4 0 0 1 2 5)
(list 6 0 0 2 2 6)
(list 0 1 0 1 2 6)
(list 1 1 0 2 2 7)
(list 2 1 0 1 2 7)
(list 3 1 0 2 2 8)
(list 4 1 0 1 2 8)
(list 5 1 0 2 2 9)
(list 0 2 0 1 2 9)
(list 6 1 0 2 2 10)
(list 2 2 0 1 2 10)
(list 1 0 0 1 1 2)
(list 3 1/2 0 2 1 2)
(list 5 0 0 2 1 3)
(list 4 0 0 1 1 3)
(list 6 0 0 1 1 4)
(list 0 1 0 2 1 4)
(list 1 0 0 1 1 5)
(list 2 1 0 2 1 5)
(list 3 1 1/2 2 1 6)
(list 4 1 0 1 1 6)
(list 5 1 0 2 1 7)
(list 6 1 0 1 1 7)
(list 0 2 0 2 1 8)
(list 1 1 0 1 1 8)
(list 2 2 0 2 1 9)
(list 4 1 0 1 1 9)
(list 6 2 0 1 1 10)
(list 3 2 1/2 2 1 10)
(list 5 3 0 2 1 11)
(list 1 2 0 1 1 11)
(list 0 0 1/2 1 1 1)
(list 1 0 1/2 2 1 1)
(list 6 0 -1/2 1 2 1)
(list 4 0 1/2 2 2 1)
)
)
#(let ((elt (list-ref cte 2))) ; = le 3ème elt de cte
(display (list-ref elt 3))(newline) ; = le 4ème elt du 3ème elt de cte
(display (list-ref elt 4))(newline) ; = le 5ème etc
(display (list-ref elt 5))(newline))
% => affiche 1, puis 2 puis 3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Pour cte, on est obligé de passer par list-ref, à cause du nombre élevé
d'éléments.
Par contre, comme chaque elt de cte est une liste de 6 elts, tu peux
utiliser
first, second, third, fourth, fifth, sixth, comme défini ici :
http://www.gnu.org/software/guile/manual/guile.html#SRFI_002d1-Selectors
[Le module SRFI-1 est déjà chargé par Lilypond, on a rien à faire de
particulier]
Ca clarifie un peu les choses :
#(let ((elt (list-ref cte 2))) ; = le 3ème elt de cte
(display (fourth elt))(newline) ; = le 4ème elt du 3ème elt de cte
(display (fifth elt))(newline) ; = le 5ème etc
(display (sixth elt))(newline))
--
Gilles
- vecteur scheme, Daniel Cartron, 2013/05/17
- Re: vecteur scheme, Daniel Cartron, 2013/05/17
- Re: vecteur scheme, Gilles, 2013/05/17
- Re: vecteur scheme, Daniel Cartron, 2013/05/17
- Re: vecteur scheme, Daniel Cartron, 2013/05/17
- Re: vecteur scheme, Daniel Cartron, 2013/05/17
- Re: vecteur scheme,
Gilles <=
- Re: vecteur scheme, Daniel Cartron, 2013/05/18
- Re: vecteur scheme, Daniel Cartron, 2013/05/18
Re: vecteur scheme, Gilles, 2013/05/17