Erreur CaML débutant.

Erreur CaML débutant. - Divers - Programmation

Marsh Posté le 11-02-2005 à 13:42:09    

J'ai défini la fonction suivante :
 
let fct x =
let v = ref h(x.(0)) in
for i=1 to (vect_length x)-1
do v:=concat_vect (!v) h(x.(i))  
done  
!v ;;
 
mais j'obtiens l'erreur :
 
Toplevel input:
>!v ;;
>^
Syntax error.
 
Je ne parviens toujours pas à corriger cette erreur, que je ne comprends d'ailleurs pas.  
En espérant que quelqu'un puisse m'aider ..


---------------
Vassia Pupkin
Reply

Marsh Posté le 11-02-2005 à 13:42:09   

Reply

Marsh Posté le 11-02-2005 à 18:33:35    

Pourquoi définis-tu ta fonction fct comme ça, alors que map h x fait la même chose bien mieux ?
 
Sinon, vérifie que v est bien un vecteur et non un scalaire, d'après ta définition v = h(x.(0))


Message édité par el muchacho le 11-02-2005 à 18:37:14
Reply

Marsh Posté le 12-02-2005 à 11:40:39    

en rajoutant un ';' apres le done ça va mieux mais ta variable h n'est pas définie

Reply

Marsh Posté le 12-02-2005 à 14:11:27    

Essaye:

Code :
  1. let fct x =
  2.     let v = ref h(x.(0)) in
  3.     begin
  4.       for i=1 to (vect_length x)-1
  5.         do v:=concat_vect (!v) h(x.(i)) 
  6.         done 
  7.         !v
  8.     end
  9.    ;;


Reply

Marsh Posté le 12-02-2005 à 18:18:48    

J'ai essayé avec ça
 
let v = ref (h(x.(0))) in
  for i=1 to (vect_length x)-1
  do v:=concat_vect (!v) (h(x.(i)))
  done;
  !v ;;
 
et ça marche
 
Merci à vous tous.
 
Au fait, connaissez-vous un forum francophone dédié à CaML où aux langages fonctionnels ?
 
 
 
Au fait


---------------
Vassia Pupkin
Reply

Marsh Posté le 13-02-2005 à 12:20:07    

Je ne vois pas la différence avec ta précédente version, mais c'est pas grâve.
Il y a un newsgroup (qq chose comme fr.lang.caml) peu actif, sinon essentiellement la Caml List et caml_beginners (en anglais). Pour les langages fonctionnels en général, c'est aussi dans les newsgroups.

Reply

Marsh Posté le 13-02-2005 à 14:22:16    

Merci el muchacho.
@+


---------------
Vassia Pupkin
Reply

Sujets relatifs:

Leave a Replay

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