Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

CamL ? mais quel est ce langage ...


Messages recommandés

Posté(e)

Bonsoir,

 

Je tente d'apprendre à programmer avec CamL Light (et non Ocaml) , cependant je ne comprend pas tout.

J'ai en effet une experience surtout en Pascal, à la limite C++, mais j'ai la nette impression que c'est totalement différent de Caml.

 

Les choses les plus simples, je n'arrive meme pas à les programmer.

Par exemple : utilisation d'une boucle for pour écrire 3 fois la meme chose

 

for k = 1 to 3 do
  begin
	 print_string " Hello world";
	 print_newline();
  end
done;

 

ne fonctionne pas, pour une raison que j'ignore.

 

Bref je n'ai jamais vu ça, je trouve ce langage tres bizzare...

D'autant qu'un de mes cours dit qu'on ne dit pas à CamL comment faire, mais ce qu'il faut faire, et qu'ensuite le compilateur se charge d'implanter les fonctions comme il le souhaite : je ne comprend pas du tout (si CamL fait tout pour nous, ou est l'interet ?)

 

 

Bref si vous pouviez m'éclairer à ce sujet, je vous en remercie.

Posté(e)

Salut,

 

Eh ce serait pas plutot:

 

begin
 for k = 1 to 3 do
		   print_string " Hello world";
		   print_newline();

  done
end

 

Enfin je ne connais pas ce language, mais ca me parait louche de mettre en Begin End dans une boucle...

 

++

  • 1 mois après...
Posté(e)

Perso je débute tout juste en caml (tant et si bien que je ne sais toujours pas comment compiler en caml) mais sache que même si ce langage est bizarre, dis-toi bien qu'il a réussi à détecter une centaine d'erreur dans le programmes de lancement de la dernière navette spatiale ayant explosé, alors que le langage d'origine n'avait rien vu :P .

Enfin essaies toujours ça (si ça marche mais que tu sais pas vraiment pourquoi demande-moi) :

 

let rec affich=function x ->
if x=1 then "Hello World"
else "Hello World " ^ affich(x-1)

affich(3)

 

Avec peut-être 2 points virgules ( ;; ) à mettre après la 3° ligne, ou la denière, ou les deux.

Tout ce que je sai, c'est que j'ai fait évaluer ces expressions par Caml Light, et ça ne pose pas de problèmes.

Posté(e)
il a réussi à détecter une centaine d'erreur dans le programmes de lancement de la dernière navette spatiale ayant explosé, alors que le langage d'origine n'avait rien vu
Je ne suis pas certain de bien comprendre ce que tu essaies de dire... Forcément, si le "langage d'origine" est du C ou de l'assembleur, tu vas avoir des erreurs si tu essaies de le passer au compilateur Caml... :-P

 

Au fait, n'y a-t-il pas d'autre moyen (non récursif, je veux dire) pour faire afficher trois fois de suite le message ? Parce que si c'est la seule façon de procéder en Caml, autant retourner faire du LISP tout de suite ! :-D

Posté(e)

Franchement je sais pas, pour le moment je découvre seulement, et je ne saurais pas le faire sans récursivité, mais ça en veut pas dire que c'est pas possible

Posté(e)

Hahaha alors je suis votre homme ! j'ai passé mon premier semestre de programmation sur CAML.

 

Caml et turbo pascal ou C sont tres différent : normal caml est un langage fonctionnel alors que les 2 autres sont des langages impératifs.

 

en caml il n'y a que des fonctions, qui doivent toujours renvoyés quelque chose (sauf quand tu fait du graphiques mais à partir de ce moment là tu triches en fait).

 

pour ton exemple :

let rec affich = function x ->
if x=1 then "Hello World"
else "Hello World " ^ affich(x-1);;

affich(3);;

 

si vous voulez un exmemple : j'ai fait un mastermind en Caml je peut vous l'envoyer en mp

Posté(e) (modifié)

je ne connais pas LISP mais tu peut par exemple faire

 let affiche = function _ ->
"coucou";;

affiche ();;

 

autrement dit une suite d'instruction est possible (à condition que la fonction soit bien typé)

Modifié par maxr397

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...