A voir également:
- Petite récursion problematique en scheme
- Petite amie virtuelle en français - Accueil - Intelligence artificielle
- Petite cle en haut a droite samsung - Forum Samsung
- La fenetre actuelle est trop petite pour afficher correctement cette feuille - Forum Google Docs
- Petite majuscule word ✓ - Forum Word
- Mettre en petites majuscules - Forum Bureautique
3 réponses
Bonjour,
Voici l'algo:
(fonction derniers Liste N)
Si (N < 0) retourner ()
Sinon Si (Longueur L) <= N retourner L
Sinon appeler (derniers (cdr L) N)
et voici le scheme
(define (derniers L n)
(if (< n 0) ()
(if (<= (length l) n) L
(derniers (cdr L) n))))
; test
(define L '( 4 5 6 8))
(derniers L 2) ; => (6 8)
Salut.
Voici l'algo:
(fonction derniers Liste N)
Si (N < 0) retourner ()
Sinon Si (Longueur L) <= N retourner L
Sinon appeler (derniers (cdr L) N)
et voici le scheme
(define (derniers L n)
(if (< n 0) ()
(if (<= (length l) n) L
(derniers (cdr L) n))))
; test
(define L '( 4 5 6 8))
(derniers L 2) ; => (6 8)
Salut.
Effectivement c'est pas joli, sur mon interpreteur Scheme ça fonctionne, je ne sais pas si c'est vraiment correct
En fait je cherche à écrire : si longueur L <= n alors L=L
En lisp 'airais mis : (if (<= (length L) n) (setq L L) ; (setq L L) retourne L, mais ça n'existe pas en scheme.
Si tu sais comment le dire en scheme , ecrit le et dit moi aussi comment on fait, ma doc est en englais et je n'ai pas trouvé. Sinon j'ai essayé une autre syntaxe qui marche : la voici
Peux tu dire comment on fait une assignation du genre A=B ? Ce sera utile pour les prochains exos.
En fait je cherche à écrire : si longueur L <= n alors L=L
En lisp 'airais mis : (if (<= (length L) n) (setq L L) ; (setq L L) retourne L, mais ça n'existe pas en scheme.
Si tu sais comment le dire en scheme , ecrit le et dit moi aussi comment on fait, ma doc est en englais et je n'ai pas trouvé. Sinon j'ai essayé une autre syntaxe qui marche : la voici
(define (derniers L n) (if (< n 0) (list () ) (if (<= (length l) n) (car(list L)) (derniers (cdr L) n)))) (define L '( 4 5 6 8)) (derniers L 2)
Peux tu dire comment on fait une assignation du genre A=B ? Ce sera utile pour les prochains exos.
Bon ce n'est pas grave, je chercherai.
La première syntaxe que tu ne trouve pas jolie est correcte , il y a des exemples dans ma doc qui sont écrits comme ça.
Tu as un interpréteur scheme pour travailler? Est ce tu peux tester les exos? C'est pour vérifier si le tien réagit pareil que le mien.
La première syntaxe que tu ne trouve pas jolie est correcte , il y a des exemples dans ma doc qui sont écrits comme ça.
Tu as un interpréteur scheme pour travailler? Est ce tu peux tester les exos? C'est pour vérifier si le tien réagit pareil que le mien.
je me suis renseigné sur ton probleme amigo et.....
apparament y a pas d'autre solution que celle que ta écrit (C-A-D avec la fonction lenght)
C'est l'avis des expert auquel j'ai demandé.
En fait pourrait y avoir une autre solution mais j'suis pas sure à 100% et c'est pas recommandé (j'sais pas pourquoi
dailleurs mais je vais me renseigné et je te mets au courant)
apparament y a pas d'autre solution que celle que ta écrit (C-A-D avec la fonction lenght)
C'est l'avis des expert auquel j'ai demandé.
En fait pourrait y avoir une autre solution mais j'suis pas sure à 100% et c'est pas recommandé (j'sais pas pourquoi
dailleurs mais je vais me renseigné et je te mets au courant)
2 mars 2008 à 22:09
(if (<= (length L) n)
L
je trouve pas ça joli ( mais je me trompe peut etre ) , d'écrire seulement L , ya pas moyen d'écrire autrement qu'on renvoit la liste considérée ?
merci