Aller au contenu

[OCaml] Péripéties d'un débutant


Suty

Messages recommandés

Bonsoir,

Je suis débutant en développement et j'ai choisi pour premier langage OCaml.

J'apprends grâce à un livre et j'en suis au chapitre des fonctions. J'ai tout compris pour le moment au chapitre sauf cet exemple:

# let plus2 = 
  let local x = x + 1 
  in function y -> local(local(y));;

Pourriez vous m'aider? Lorsque je saisie 1 il m'affiche 3. Mais j'ai du mal à comprendre à partir de: function y.

Merci d'avance et bonne soirée :chinois:

Lien vers le commentaire
Partager sur d’autres sites

Salut !

Je n'ai jamais pratiqué ce langage mais j'ai fait du Caml dans des temps anciens (pas le choix, c'était à la fac :transpi:).

De ce que je comprends, on définit une fonction qui s'appelle "local", qui renvoie le paramètre + 1.

Cette fonction est (probablement) une sous fonction qui n'est connue dans la fonction "y" (c'est ce que je déduis du mot clé "in" et du fait qu'elle s'appelle "local").

Ensuite le corps de la fonction "y" est d'appeler la sous fonction "local" sur le résultat d'un premier appel à la sous fonction "local".

Vu que "local" fait x+1, "y" fait (x+ 1) +1

Donc +2.

Je me gourre peut être quelque part, mais je vois ça comme ça.

Maintenant c'est clair que ça n'a pas l'air d'un langage où la syntaxe est facile à comprendre ...

Lien vers le commentaire
Partager sur d’autres sites

Caml, le cauchemar de pas mal d’étudiant en informatique en France ^^

Après, concernant l’utilisation des langages fonctionnel ou des langages basés sur le lambda calcul, vu la complexité de développement et l’augmentation de la charge lié au développement, si l’atout majeur de ces langages, i.e. la sureté de fonctionnement, ne fait pas parti des critères principaux d’un projet, pour des questions de coûts c’est généralement un autre langage qui est choisi.

Du coup en dehors des systèmes embarqués où la tolérance aux pannes est extrêmement faible (comme dans l’industrie aéronautique par exemple), rare sont les besoins d’un tel langage.

J’ai tout de même vu quelques applications « grand public » utilisant (O)Caml : MLDonkey pour le plus connu je pense, MediaWiki qui utilise un analyseur syntaxique en OCaml combiné avec LaTeX pour la gestion des formules, j’ai vu quelques appli avec KDE écrites en Caml..

Et puis faut avouer, qu’un langage développé par un labo français n’a pas du tout la même publicité ou la même force de distribution qu’un langage développé par des éditeurs comme Sun, SCO ou IBM ^^

Par contre, comme c’est un langage fonctionnel, basé sur le lambda calcul, la syntaxe et la logique d’écriture sont assez spéciales. Je ne suis pas convaincu que ce soit le meilleur choix pour un premier langage, à moins d’être sur de l’utiliser plus tard :)

Lien vers le commentaire
Partager sur d’autres sites

Je suis tout à fais conscient de ce que vous dites mais ce qui m'intéresse aussi c'est de faire du fonctionnel sachant que je fais déjà de l'impératif en cours.

Pensez vous vraiment que ça ne sert à rien que je regarde plus en profondeur ce langage?

Ce qui m'intéresse le plus est la biologie, j'ai vu qu'en python il y avait aussi pas mal de chose sur le sujet. Pensez vous que je dois plus allé sur le python (module biopython) ou l'ocaml pourra t'il m'être tout de même utile?

Quel langage serait le mieux pour la bio informatique?

Merci d'avance ;)

Lien vers le commentaire
Partager sur d’autres sites

J'ai étudié le C, le PHP, le JavaScript, le C#(en cours) il y a quelques temps et désormais je fais du Java en cours.

Pardonne moi de ma bêtise (surtout pour quelqu'un qui a fait du C# en cours) mais malgré toutes mes recherches depuis déjà pas mal de temps (dont wikipedia même si pas mal de gens crachent dessus) je ne comprend toujours pas ce que c'est un framework (comme Microsoft .NET). Connaissez vous les langages couramment utilisé? J'ai trouvé ce sujet sur le forum de PC inpact qui m'aide pas mal: http://www.pcinpact.com/forum/index.php?showtopic=138713 mais si vous avez d'autres avis et/ou confirmation cela m'intéresse fortement.

Vous pensez que le fonctionnel (j'entend par là aussi OCaml) est inutile dans les sciences? (ce n'est pas non plus ce que j'avais lu dans wikipedia).

Merci pour vos réactions :craint:

Lien vers le commentaire
Partager sur d’autres sites

Bah Wikipedia va te donner une vue de ce qui existe.

Maintenant c'est pas pour autant que c'est répandu.

Moi j'ai fait du caml en études d'informatique. Je n'ai jamais eu l'utilité de ce que j'y ai appris.

Mis à part faire de l'impératif et du récursif (que tu peux très bien faire dans n'importe quel langage), rien ne te servira.

La syntaxe, la façon de coder, de penser ton programme...

Ca n'est qu'un langage fait par quelques personnes, utilisé par quelques personnes.

Si tu as déjà vu tous ces langages, inutile d'en voir un de plus.

Je comprends cette peur de ne pas avoir sur son CV le langage que tu feras + tard. Mais faut pas réfléchir comme ça.

Si tu fais de la bioinfo, on ne va pas te demander de connaître tous les langages du monde en sortant de l'école.

Moi je bosse dans le Java et malgré le fait que je l'ai étudié à la fac, 90% de ce qui fait ma valeur ajoutée dans ce domaine, je l'ai appris en travaillant.

Donc même si tu as vu le langage dans lequel tu travailleras, il te restera encore beaucoup à apprendre pour le maîtriser au niveau professionnel.

Il vaut mieux se concentrer sur les concepts (itératif, récursif, objet, prédicatif ...) et les designs patterns.

Les frameworks sont des bibliothèques qui te permettent d'éviter de faire du code que tout le monde fait. (hibernate, spring, struts pour des exemples célèbres)

Mais il vaut mieux comprendre d'abord comment ça marche avant de les utiliser :byebye:

Lien vers le commentaire
Partager sur d’autres sites

Merci fabien29200, tu as mis des mots sur ce que je ressent.

J'ai peur d'arriver le jour J devant l'employeur et qu'il me dise: 'Ah non désolé, nous on développe en [langage] et à ce que je vois sur votre CV vous n'en avez jamais fait'.

J'ai peur de m'en mordre les doigts.

Merci pour ta réponse je continue les recherches sur framework. :cdmalades:

Lien vers le commentaire
Partager sur d’autres sites

Oui mais si un employeur te convoque en entretien c'est qu'il a lu ton CV.

Donc il aura bien vu que tu ne connais pas son langage.

Il attend de toi que tu montres que tu sais à peu près ce qu'il retourne de ce langage (pas la syntaxe, mais l'esprit). A toi de dire que tu as appris tel autre langage qui lui ressemble et que tu t'adapteras au leur.

Lien vers le commentaire
Partager sur d’autres sites

Ok, par rapport à ton premier post je pensais que c’était vraiment ton premier langage, et que tu n’avais pas eu l’occasion de voir des langages comme Java/C/C++/Perl…

A partir du moment où t’as déjà l’occasion de voir les langages « classiques » en cours, rien ne t’empêche d’aller explorer d’autre nature de langage.

Mais personnellement, comme Fabien, j’ai eu l’occasion de toucher à du caml, mais jamais eu l’occasion par la suite mettre en pratique ce que j’avais appris (que ce soit le langage en lui-même, ou les principes de programmation liés).

Bref, cela aura l’avantage de dire sur ton CV que tu sais faire autre chose que les classiques Java/C/…, mais avec un grand risque que la personne qui lira ton CV n’en a rien à faire ^^

Et cela aura l’inconvénient de t’avoir bouffé pas mal de temps pour pas grand-chose.

La connaissance ou la maitrise d’un langage précis est rarement un critère d’embauche.

Quand un RH ou un opérationnel reçoit ton CV, il regarde ton nombre d’année d’études, tes diplômes, tes expériences et le nombre d’années, et tout ce qui n'est pas vraiment technique. Enfin si le profil général de ton CV correspond à un profil recherché, même s’il ne colle pas à 100% (c’est rarement le cas d’ailleurs).

Et en discutant un peu avec certaines personnes de la DRH dans ma boite, ils se basent plus sur les lettres de motivations (puis sur les entretiens) que sur le CV. Ils n’ont pas toujours les connaissances nécessaires pour pouvoir juger d’un CV, et c’est généralement un opérationnel qui s’en charge.

Enfin, les quelques fois où mon RH m’a transmis un CV pour donner mon avis, pour ma part je regarde plutôt les méthodologies et le « pannel » de langages qu’ils à déjà eu l’occasion de rencontrer (s’il a déjà vu du procédural, déclaratif, fonctionnel, d’objet, etc.)

En gros, je cherche quelqu’un pour du dev Java, si on me présente un CV d’une personne qui connait le C++ (ou du C, ou du Perl, ou du …), ca m’ira, tant qu’à coté il répond à mes exigences (i.e. connaitre des design patterns, où du moins savoir que ca existe, connaitre uml ou merise, etc…).

Enfin après ca dépend de plein de choses, ca dépend du poste surtout et si on cherche un débutant ou un expérimenté etc.

A part pour quelques postes bien précis où la connaissance d’un outil ou d’un langage particulier est vraiment nécessaire (histoire de ne pas avoir à passer 6 mois de formation), genre du développement de très bas niveau, sans connaissance en asm ca risque d’être mal parti ^^

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...