[Scheme] 2 tests identiques à la suite : comment faire mieux ?

2 tests identiques à la suite : comment faire mieux ? [Scheme] - Divers - Programmation

Marsh Posté le 11-12-2003 à 08:35:19    

Salut,
voila un petit bout de code scheme que j'aimerais bien rendre plus propre :
 
(define (toto k)
  (let ((a (if (= k 1) < > ))
        (b (if (= k 1) > < )))
...
 
donc en fait je veux selon la valeur de l'argument définir a comme < ou > et b l'inverse ("inverse" ne doit pas être le terme approprié, car > n'est pas l'inverse de < )...
 
j'avais pensé à faire un truc du genre :
 
(let* ((l (if (= k 1) '(< > ) '(> < )))
       (a (car l))
       (b (cdr l)))
 
sachant qu'après je n'utilise jamais la liste l, uniquement pour définir a et b...
 
merci
   ANT

Reply

Marsh Posté le 11-12-2003 à 08:35:19   

Reply

Marsh Posté le 11-12-2003 à 09:08:56    

oups, combien scheme est parti loin dans mes souvenirs (il faut s'en servir pour se rapeller)...
pourquoi pas un truc du genre

Code :
  1. (define (toto k)
  2.   (if (= k 1) (let (a < ) (b > )) (let (a > ) (b < )))
  3. ;; la suite
  4. )


 
EDIT: mettre les bonnes balises aux bons endroits est proche de l'exploit, surtout tous les matins


Message édité par western le 11-12-2003 à 09:10:25
Reply

Marsh Posté le 11-12-2003 à 10:33:42    

ANT > ton code me parait bien comme ça, cherche pas

Reply

Marsh Posté le 11-12-2003 à 15:07:05    

O une perdu comme moi ki fé du Scheme !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed