Précédent   Forum du club des développeurs et IT Pro > Autres langages > Langages fonctionnels > Scheme
Scheme Forum d'entraide sur la programmation en langage fonctionnel Scheme
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 04/04/2012, 07h44   #1
stage2009
Candidat au titre de Membre du Club
 
Inscription : août 2009
Messages : 23
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 23
Points : 10
Points : 10
Par défaut Longueur d'une liste

Slt! Je suis debutant en Lisp je tente d'ecrire une fonction qui calcule le nombre d'elements d'une liste mais c'est bizard. voici mon code :
Code :
1
2
3
(define (long L)
  (length '(L)) )
quand j'execute j'ai ça :
(long (list 1 2))
. . length: expects 1 argument, given 2: #<procedure:list> (1 2)
quelqu'un pourait-il m'aider?
stage2009 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2012, 17h00   #2
ceciestunpseudo
Membre du Club
 
Inscription : août 2009
Messages : 38
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 38
Points : 51
Points : 51
Citation:
Envoyé par stage2009 Voir le message
Slt! Je suis debutant en Lisp je tente d'ecrire une fonction qui calcule le nombre d'elements d'une liste mais c'est bizard. voici mon code :
Code :
1
2
3
(define (long L)
  (length '(L)) )
quand j'execute j'ai ça :
(long (list 1 2))
. . length: expects 1 argument, given 2: #<procedure:list> (1 2)
quelqu'un pourait-il m'aider?
Bon alors trois choses... d'abord si c'est une exercice pour un cours, je suppose que ton prof ne veut pas que tu utilises la fonction length qui fait déjà le travail et si ce n'est pas un exercice pour un cours alors... utilise simplement length. Ensuite, tu ne comprends visiblement pas comment s'utilise length, ni ce que représente le quote (l'apostrophe). Pour le quote je laisse tomber, ce n'est pas nécessaire ici pour l'instant. Pour le length, la syntaxe est simplement
Donc tu peux l'appeler avec
Code :
1
2
(length (list 1 2 3 4))
Finalement, avant d'écrire du code, tu dois réfléchir à l'algorithme. C'est bien sûr ici un algorithme récursif qui utilise la structure de la liste... une liste est composée d'un premier élément (accessible avec car), le reste de la liste (accessible avec cdr) si ce n'est pas la liste vide (ce qui se teste avec null?) ... as-tu une proposition d'algorithme à faire avec ces infos ?
ceciestunpseudo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h55.


 
 
 
 
Partenaires

Hébergement Web