C'est l'anti-thèse de Ocaml, très beau sur le plan théorique mais en pratique, c'est trop compliqué pour le développeur lambda, pas assez performant, trop peu utilisé etc.
Il n'a jamais fait de phrase à trou dans son enfance en cours de français le développeur lambda ? Parce qu'écrire un programme en OCaml c'est le même principe. Elle est où la difficulté ?
Exemples:
Je mange du pain
Je bois de l'eau
de ces deux phrases, on peut abstraire un motif sous la forme :
Je verbe de qqchose
ce motif, on peut l'appliquer soit au couple manger - pain, soit au couple boire - eau, afin d'obtenir les phrases précédentes.
Après, certes, on peut commencer à construire des phrases plus complexes, en partant par exemple de ce patron :
je regarde qqchose
ce qui peut donner :
je regarde la télé
je regarde le chien du voisin
Dans le deuxième exemple, le complément d'objet est lui-même un composé dont on peut abstraire un motif. Disons, celui-ci :
l'animal de qqu'un
qui peut être instancier sous la forme :
le chien du voisin
le chat de ma tante
le poisson rouge de Nicolas
et ainsi de suite. Ensuite, en composant les patrons de phrases, on construit des phrases de plus en plus complexes (ce qui ne veut pas dire compliquée ;-).
Tu t'y prends autrement pour exprimer ta pensée de manière écrite? Le développeur lamabda, aussi, a une autre façon de procéder? Si c'est le cas, j'aimerais bien savoir laquelle.
En programmation fonctionnelle, abstraire un mot pour former un patron c'est ce qui se nomme la lambda abstraction (le mot clef fun de OCaml), puis appliquer un patron à des cas particuliers cela s'appelle l'application de fonction, et la phase qui remplace le paramètre formelle par le paramètre effectif se nomme la beta reduction (c'est-à-dire l'exécution du code).
(* j'ai les motifs suivants *)1+22+3(* j'abstrais le patrons suivants *)funxy->x+y(* je l'utilise pour retrouver les exemples du dessus *)(funxy->x+y)12(* et là le runtime fait des substitutions successives ou beta reduction *)(* on commence par susbstituer le premier paramètre x *)(funy->1+y)2(*on fait pareil avec y *)1+2(* on calcule *)3
Après le langage va rajouter des catégories grammaticales ou types pour bien vérifier que l'on utilise les patrons avec des mots ou construction conforme au règle de la grammaire, comme tout langage à typage statique. Autrement dit, dans le patron "je verbe de qqchose", il n'est pas correcte de vouloir utiliser le mot "bouchon" à la place du verbe car il n'appartient pas à la bonne catégorie grammaticale.
Qui y a-t-il de compliquer à comprendre dans tout cela ?
Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.
[^] # Re: Pour alimenter la discussion ...
Posté par kantien . En réponse à la dépêche Python dépasse Java en popularité selon l’indice TIOBE de novembre. Évalué à 3.
Il n'a jamais fait de phrase à trou dans son enfance en cours de français le développeur lambda ? Parce qu'écrire un programme en OCaml c'est le même principe. Elle est où la difficulté ?
Exemples:
de ces deux phrases, on peut abstraire un motif sous la forme :
verbedeqqchosece motif, on peut l'appliquer soit au couple manger - pain, soit au couple boire - eau, afin d'obtenir les phrases précédentes.
Après, certes, on peut commencer à construire des phrases plus complexes, en partant par exemple de ce patron :
qqchosece qui peut donner :
Dans le deuxième exemple, le complément d'objet est lui-même un composé dont on peut abstraire un motif. Disons, celui-ci :
animaldeqqu'unqui peut être instancier sous la forme :
et ainsi de suite. Ensuite, en composant les patrons de phrases, on construit des phrases de plus en plus complexes (ce qui ne veut pas dire compliquée ;-).
Tu t'y prends autrement pour exprimer ta pensée de manière écrite? Le développeur lamabda, aussi, a une autre façon de procéder? Si c'est le cas, j'aimerais bien savoir laquelle.
En programmation fonctionnelle, abstraire un mot pour former un patron c'est ce qui se nomme la lambda abstraction (le mot clef
funde OCaml), puis appliquer un patron à des cas particuliers cela s'appelle l'application de fonction, et la phase qui remplace le paramètre formelle par le paramètre effectif se nomme la beta reduction (c'est-à-dire l'exécution du code).Après le langage va rajouter des catégories grammaticales ou types pour bien vérifier que l'on utilise les patrons avec des mots ou construction conforme au règle de la grammaire, comme tout langage à typage statique. Autrement dit, dans le patron "je
verbedeqqchose", il n'est pas correcte de vouloir utiliser le mot "bouchon" à la place du verbe car il n'appartient pas à la bonne catégorie grammaticale.Qui y a-t-il de compliquer à comprendre dans tout cela ?
Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.