Précédent   Forum du club des développeurs et IT Pro > Autres langages > Langages fonctionnels
Langages fonctionnels Forum d'entraide sur la programmation en langages fonctionnels : Lisp, Scheme, Caml, Haskell, Erlang, Oz, Anubis, ...
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/2007, 16h48   #61
Jean-Marc.Bourguet
Expert Confirmé Sénior

 
Inscription : novembre 2005
Messages : 4 970
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 4 970
Points : 5 607
Points : 5 607
Citation:
Envoyé par Jiraiya_sama
mais est-ce que ça sert à quelque chose au moins ?


non parce que dans la vraie vie... ils bossent avec des langages pareils ?
Oui. Il y en a qui bossent en C++. Etonnant, non?
__________________
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
Jean-Marc.Bourguet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2007, 09h15   #62
gorgonite
Rédacteur/Modérateur

 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur d'études
Inscription : décembre 2005
Messages : 9 961
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 961
Points : 18 152
Points : 18 152
Citation:
Envoyé par Jean-Marc.Bourguet
Oui. Il y en a qui bossent en C++. Etonnant, non?


euh c++ est un langage fonctionnel ?
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2007, 09h26   #63
Jean-Marc.Bourguet
Expert Confirmé Sénior

 
Inscription : novembre 2005
Messages : 4 970
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 4 970
Points : 5 607
Points : 5 607
Citation:
Envoyé par gorgonite
euh c++ est un langage fonctionnel ?
S'il parlait des langages fonctionnels, se demander si quelqu'un les utilisait n'aurait pas eu de sens. Comme il a ete question de C et C++, c'est de ces langages qu'il devait parler.
__________________
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
Jean-Marc.Bourguet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2007, 09h38   #64
gorgonite
Rédacteur/Modérateur

 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur d'études
Inscription : décembre 2005
Messages : 9 961
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 961
Points : 18 152
Points : 18 152
Citation:
Envoyé par Jean-Marc.Bourguet
S'il parlait des langages fonctionnels, se demander si quelqu'un les utilisait n'aurait pas eu de sens. Comme il a ete question de C et C++, c'est de ces langages qu'il devait parler.

tu crois qu'il a lu autre chose que le titre du thread ???
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2007, 10h48   #65
Gnux
Membre Expert
 
Avatar de Gnux
 
Inscription : juillet 2003
Messages : 2 066
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 2 066
Points : 2 121
Points : 2 121
Citation:
Envoyé par Jean-Marc.Bourguet
S'il parlait des langages fonctionnels, se demander si quelqu'un les utilisait n'aurait pas eu de sens. Comme il a ete question de C et C++, c'est de ces langages qu'il devait parler.
Je crois que c'est la combinaison langage fonctionnel et polymorphisme paramétrique. Peut être le posteur n'en voit il pas l'utilité...
Gnux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 19h35   #66
kedare
Membre extrêmement actif
 
Avatar de kedare
 
Mathieu
Administrateur systèmes et réseaux
Inscription : juillet 2005
Messages : 1 482
Détails du profil
Informations personnelles :
Nom : Mathieu
Localisation : France

Informations professionnelles :
Activité : Administrateur systèmes et réseaux

Informations forums :
Inscription : juillet 2005
Messages : 1 482
Points : 1 387
Points : 1 387
Hello ,
je cherche aussi a debuter en programmation fonctionnel ...
je fait deja du ruby et du java
j'hésite entre le Scheme et l'ocaml , je prefere la syntax du scheme personellement
je cherche un langage qui ne soit pas mort , encore utilisable pour faire des choses, je developpe sur Windows et MacOsX(Intel)
je cherche un langage simple , mais complet et puissant
que me conseillez vous ?
merci
kedare est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 07h34   #67
Garulfo
Inactif
 
Inscription : juillet 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : juillet 2005
Messages : 1 958
Points : 2 209
Points : 2 209
Citation:
Envoyé par kedare
Hello ,
je cherche aussi a debuter en programmation fonctionnel ...
je fait deja du ruby et du java
j'hésite entre le Scheme et l'ocaml , je prefere la syntax du scheme personellement
je cherche un langage qui ne soit pas mort , encore utilisable pour faire des choses, je developpe sur Windows et MacOsX(Intel)
je cherche un langage simple , mais complet et puissant
que me conseillez vous ?
merci
M'est avis que ocaml est un peu plus pratique (« practical ») cependant si tu préfères la syntaxe du Scheme, choisi naturellement le Scheme.

Je pense que si j'avais un choisir un seul des deux c'est lui que je prendrais.
Maintenant c'est aisé de passer de l'un à l'autre quand tu en maîtrises réellement un.
Garulfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 10h14   #68
InOCamlWeTrust
Membre Expert
 
Avatar de InOCamlWeTrust
 
Inscription : septembre 2006
Messages : 1 036
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 036
Points : 1 129
Points : 1 129
Citation:
Envoyé par Garulfo
Je pense que si j'avais un choisir un seul des deux c'est lui que je prendrais.
Maintenant c'est aisé de passer de l'un à l'autre quand tu en maîtrises réellement un.
Je ne suis pas expert en Scheme, mais je me pose une question : Scheme -> OCaml facile ?
InOCamlWeTrust est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 11h16   #69
Garulfo
Inactif
 
Inscription : juillet 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : juillet 2005
Messages : 1 958
Points : 2 209
Points : 2 209
Citation:
Envoyé par InOCamlWeTrust
Je ne suis pas expert en Scheme, mais je me pose une question : Scheme -> OCaml facile ?
À mon avis, oui.
Autant que dans l'autre sens.
Dans les deux cas, le typage fait mal !
De Ocaml vers Scheme, il faut s'habituer à ne plus typer et à prévoir les erreurs. De Scheme vers Ocaml, il faut apprendre à typer dans un système réellement type safe.

Pour le reste, on s'habitue... c'est-à-dire la manipulation des listes, le passage de fonctions en paramètre, la programmation par flots, la programmation par passage de continuïté, la programmation récursive etc. Fondamentalement, il n'y a pas de différences.
Garulfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 11h20   #70
gorgonite
Rédacteur/Modérateur

 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur d'études
Inscription : décembre 2005
Messages : 9 961
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 961
Points : 18 152
Points : 18 152
perso, j'ai fait le passage OCaml -> Scheme (même si je n'ai fait que jouer un peu avec... dès que ça devient sérieux, je repasse sous Caml )

faut faire gaffe avec les parenthèses... surtout à ne pas trop en mettre, pour ce qui est du typage dynamique, vu qu'on a l'habitude de concevoir des fonctions caml... elles sont souvent statiquement correctes, alors dynamiquement
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 15h15   #71
kedare
Membre extrêmement actif
 
Avatar de kedare
 
Mathieu
Administrateur systèmes et réseaux
Inscription : juillet 2005
Messages : 1 482
Détails du profil
Informations personnelles :
Nom : Mathieu
Localisation : France

Informations professionnelles :
Activité : Administrateur systèmes et réseaux

Informations forums :
Inscription : juillet 2005
Messages : 1 482
Points : 1 387
Points : 1 387
j'hésite ... scheme a l'air plus simple oui , mais niveau possibilité ca vaut quoi ? et en vitesse ?
kedare est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 15h36   #72
Garulfo
Inactif
 
Inscription : juillet 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : juillet 2005
Messages : 1 958
Points : 2 209
Points : 2 209
Citation:
Envoyé par kedare
j'hésite ... scheme a l'air plus simple oui , mais niveau possibilité ca vaut quoi ? et en vitesse ?
Aucun n'est « plus simple » certains concepts sont difficiles dans les deux cas et (d'après moi) la puissance de développement est bien plus grande sur ces deux langages que n'importe quel autre langage non fonctionnel. Tu pourrais choisir Haskell... Ça serait idem. L'expertise te sera probablement aussi pénible dans l'un que dans l'autre même si le premier contact est, je le crois, plus simple en Scheme. En fait l'expertise est ardue dans n'importe quel langage et souvent indépendamment du premier contact.

Pour la possibilité, tu peux à peu près tout faire. Au pire, Scheme comme Caml acceptent l'adjonction de fonction en C... cependant caml à un pas d'avance sur cette fonctionnalité. Mais avant de te préoccuper de vitesse préoccupes toi de design. La plupart des problèmes de performances viennent de problèmes architecturaux.

Ocaml comme Scheme se compile avec chacun de très bonne performance.

Je pense que ocaml à des meilleurs bibliothèques probablement... mais encore une fois, cela reste discutable.

C'est pour ça que je recommence avec l'avis : choisi celui avec lequel tu te sens le plus à l'aise... si vraiment un jour tu te sens limité, tu passeras à l'autre.
Garulfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2007, 20h26   #73
SpiceGuid
Rédacteur
 
Avatar de SpiceGuid
 
Homme Damien Guichard
Inscription : juin 2007
Messages : 1 512
Détails du profil
Informations personnelles :
Nom : Homme Damien Guichard
Localisation : France, Loire (Rhône Alpes)

Informations forums :
Inscription : juin 2007
Messages : 1 512
Points : 2 495
Points : 2 495
Tout le monde a donné son avis sur "débuter en fonctionnelle sur Windows" alors pourquoi pas moi?

Pourquoi ne pas choisir Lisp/Scheme pour débuter: parce que le seul type structuré qui soit standard est la paire avec laquelle on peut faire des listes. Si on veut faire plus que des fonctions sur des listes alors on n'est plus un débutant.

Pourquoi ne pas choisir Haskell pour débuter: parce que sur Windows je n'ai pas trouvé un seul interpréteur Haskell qui soit interactif, ça augmente considérablement le temps de réponse pour un débutant (qui par définition fait beaucoup d'erreurs).

Pourquoi ne pas choisir Caml pour débuter: parce qu'on ne sait jamais où mettre les parenthèses.

Le gros avantages de Caml c'est quand-même le typage statique + l'interpréteur interactif, au début on fait probablement autant d'erreurs qu'avec un autre langage mais au moins on est corrigé beaucoup plus vite.

Voilà pourquoi je recommande Caml-Light:
* Camlwin est plus confortable et plus stable que OCamlWinPlus
* Si on évite le where et qu'on préfère le match a,b with... au match a b with... alors la syntaxe est compatible avec OCaml (il suffira essentiellement de remplacer les "list_" par des "List.")
* parce que si on recommande OCaml au lieu de Caml-Light le débutant fait le parcours suivant:

1. puisque je connais Java et la POO je vais d'abord essayer la POO avec OCaml
2. quand je maîtriserai la POO avec OCaml j'ajouterai la puissance du fonctionnel (le débutant croit que le fonctionnel s'ajoute à la POO comme la POO s'ajoute à la programmation structurée)
3. comme le débutant ne peut pas maîtriser la POO en OCaml il en déduit qu'il ne pourra jamais maîtriser la programmation fonctionnelle
SpiceGuid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2007, 21h08   #74
Jedai
Expert Confirmé Sénior
 
Avatar de Jedai
 
Étudiant
Inscription : avril 2003
Messages : 6 068
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2003
Messages : 6 068
Points : 8 209
Points : 8 209
Envoyer un message via Yahoo à Jedai
Citation:
Envoyé par SpiceGuid
Pourquoi ne pas choisir Haskell pour débuter: parce que sur Windows je n'ai pas trouvé un seul interpréteur Haskell qui soit interactif, ça augmente considérablement le temps de réponse pour un débutant (qui par définition fait beaucoup d'erreurs).
?? Et WinHugs alors ? De toute façon GHC fonctionne très bien sous Windows, il y a des exécutables pour l'installer sans problème et GHC contient GHCi, qui est parfaitement interactif (bien qu'en console, encore que ce ne soit pas un tel désavantage, surtout par comparaison à OCamlWin qui est un gros tas de bouse franchement... ).
On peut utiliser emacs et l'haskell-mode comme IDE, ce mode est franchement super et permet d'avoir une GUI pour GHCi. (Le dernier emacs est facile à configurer pour retrouver des raccourcis clavier "standard Windows", c'est une option dans les menus (!), même si je trouve préférable sur le long terme d'apprendre à se servir d'emacs avec ses propres raccourcis).

--
Jedaï
Jedai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2007, 22h37   #75
SpiceGuid
Rédacteur
 
Avatar de SpiceGuid
 
Homme Damien Guichard
Inscription : juin 2007
Messages : 1 512
Détails du profil
Informations personnelles :
Nom : Homme Damien Guichard
Localisation : France, Loire (Rhône Alpes)

Informations forums :
Inscription : juin 2007
Messages : 1 512
Points : 2 495
Points : 2 495
WinHugs n'est pas interactif: tu peux évaluer des expressions interactivement mais les fonctions elles-même doivent être définies dans un fichier, tu ne peux pas simplement "coller" ta définition de fonction dans WinHugs avec Ctrl+V.

Moralité: ça revient à un compilateur puisque tu ne peux pas valider interactivement tes fonctions.

Et la console sous Windows: non merci, Camlwin est bien plus confortable et OCamlWin est une bouse certes, mais quand même pas autant que la console Windows.
SpiceGuid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2007, 23h14   #76
Jedai
Expert Confirmé Sénior
 
Avatar de Jedai
 
Étudiant
Inscription : avril 2003
Messages : 6 068
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2003
Messages : 6 068
Points : 8 209
Points : 8 209
Envoyer un message via Yahoo à Jedai
Tu ne peux pas définir de nouveaux type de donnée, d'accord, mais tu peux tout à fait définir de nouvelles fonctions :
Code :
1
2
3
4
5
6
> let hellobye a b = putStrLn ("hello " ++ a) >> putStrLn ("bye " ++ b)
> :t hellobye
hellobye :: [Char] -> [Char] -> IO ()
> hellobye "world" "everyone"
hello world
bye everyone
En pratique j'utilise emacs et haskell-mode, tu tapes Ctrl+c Ctrl+l et emacs lance automatiquement une session GHCi et charge ton fichier (et ses dépendances éventuelles si elles ont subies une modification), c'est instantané et ensuite tu peux tester individuellement toutes les fonctions que tu veux, et utiliser les nouveaux types de données que tu as défini.

--
Jedaï
Jedai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2007, 13h03   #77
Woufeil
Rédacteur
 
Avatar de Woufeil
 
Étudiant
Inscription : février 2006
Messages : 1 076
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2006
Messages : 1 076
Points : 2 080
Points : 2 080
Bon, puisque ce topic n'est pas mort, j'en profite pour faire un petit feedback

Passé l'aspect déroutant de la syntaxe, je suis content d'avoir choisi Scheme comme premier langage fonctionnel. C'est un langage vraiment très simple, ce qui permet de bien se concentrer sur les spécificités de la programmation fonctionnelle. Ca semble bête, mais on est bien content de ne pas se poser de question sur la syntaxe quand on cherche désespérément à trouver le maximum d'une liste de 5 nombres sans boucle for ni affectation
Donc c'est vraiment le langage que je conseillerais pour apprendre. De plus, il dispose d'un bon cours + des TDs en ligne et en français, cours qui a tout de même le défaut d'être écrit en police 50 + gras
Dès le début, les principes de bases sont posés : les variables avec define et let, les fonctions qui sont équivalentes aux fonctions mathématiques (pour un n-uplet d'entrée, toujours la même sortie). Puis on introduit progressivement le reste : les listes, les récursions, la récursion terminale... Et le tout avec des TDs à l'appui, histoire d'avoir des applications

Maintenant, même si la syntaxe de Scheme ne me pose plus de problème, je ne l'apprécie pas particulièrement. Donc je vais me mettre à OCaml, qui de ce que j'en connais est vraiment sympathique.
__________________
"En essayant continuellement, on finit par réussir. Donc : plus ça rate, plus on a de chances que ça marche" (devise Shadock)
Application :

ainsi qu'à regarder la avant de poser une question.

La rubrique Perl recrute, contactez-moi.
Woufeil 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 04h32.


 
 
 
 
Partenaires

Hébergement Web