Re: [LA-discussions] coder en scheme |
[ Thread Index |
Date Index
| More linuxarverne.org/discussions Archives
]
Salut,
J'ai fini par y arriver, après bien des errements...
ma liste :
(define cte
'(
( (4 0 0) . (5 1 2) )
( (6 0 0) . (6 1 2) )
( (0 1 0) . (5 1 3) )
( (1 1 0) . (6 1 3) )
( (2 1 0) . (5 1 4) )
( (3 1 0) . (6 1 4) )
( (4 1 0) . (5 1 5) )
( (5 1 0) . (6 1 5) )
( (0 2 0) . (5 1 6) )
( (6 1 0) . (6 1 6) )
( (2 2 0) . (5 1 7) )
( (1 2 0) . (6 1 7) )
( (4 2 0) . (5 1 8) )
( (3 2 0) . (6 1 8) )
( (0 3 0) . (5 1 9) )
( (5 2 0) . (6 1 9) )
( (2 3 0) . (5 1 10) )
( (6 2 0) . (6 1 10) )
( (0 0 0) . (5 2 3) )
( (2 0 0) . (6 2 3) )
( (3 0 0) . (5 2 4) )
( (4 0 0) . (6 2 4) )
( (5 0 0) . (5 2 5) )
( (6 0 -1/2) . (6 2 5) )
( (0 1 0) . (5 2 6) )
( (1 1 0) . (6 2 6) )
( (3 1 0) . (5 2 7) )
( (2 1 0) . (6 2 7) )
( (5 1 0) . (5 2 8) )
( (4 1 0) . (6 2 8) )
( (0 1 0) . (5 2 9) )
( (6 2 -1/2) . (6 2 9) )
( (3 2 0) . (5 2 10) )
( (1 2 0) . (6 2 10) )
( (5 2 0) . (5 2 11) )
( (2 2 0) . (6 2 11) )
)
)
avec les significations suivantes:
( ( note-name note-oct note-alt) . ( btn-dir btn-row btn-num ) )
je connais :
(define kbd cte) ; cette valeur peut changer, j'ai une 12aine de dicos
différents
(define note-name 6)
(define note-oct 2)
(define note-alt 0)
je commence par filtrer sur ( note-name note-oct note-alt)
(define av-btn (filter (lambda (ref)
(and
(equal? (caar ref) note-name)
(equal? (cadr (car ref)) note-oct)
(equal? (caddr (car ref)) note-alt)
)) kbd ))
ensuite j'ai deux cas de figure, je connais note-dir ou note-row et je veux
btn-dir btn-row btn-num (sauf celui que je connais bien entendu)
1er cas :
(define note-dir 6)
(define btn-row (caddar (filter (lambda (inf) (= (cadr inf) note-dir)) av-
btn )))
(define btn-num (car (cdddar (filter (lambda (inf) (= (cadr inf) note-dir))
av-btn))))
btn-row
btn-num
2e cas :
(define note-row 1)
(define btn-dir (cadar (filter (lambda (inf) (= (caddr inf) note-row)) av-
btn)))
(define btn-num (car (cdddar (filter (lambda (inf) (= (caddr inf) note-row))
av-btn))))
btn-dir
btn-num
testé dans le bac à sable de lilypond (guile) et tout fonctionne.
par contre je te dis pas comment j'en ai chié pour découvrir les syntaxes,
les docs sont vraiment sommaires...
--
Cordialement, Daniel Cartron
« S'il n'y a que la vérité qui blesse, à quoi sert le mensonge ?. »
Robert Sabatier - Le livre de la déraison souriante
--
Liste de discussions de LinuxArverne
http://wiki.linuxarverne.org/listes_de_diffusion