IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages fonctionnels Discussion :

Débuter en programmation fonctionnelle


Sujet :

Langages fonctionnels

  1. #61
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    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.

  2. #62
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    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

  3. #63
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    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.

  4. #64
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    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

  5. #65
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Points : 2 844
    Points
    2 844
    Par défaut
    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é...

  6. #66
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 860
    Points
    1 860
    Par défaut
    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

  7. #67
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    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.

  8. #68
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    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 ?
    When Colt produced the first practical repeating handgun, it gave rise to the saying God created men, but Colt made them equal.

  9. #69
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    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.

  10. #70
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    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

  11. #71
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 860
    Points
    1 860
    Par défaut
    j'hésite ... scheme a l'air plus simple oui , mais niveau possibilité ca vaut quoi ? et en vitesse ?

  12. #72
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    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.

  13. #73
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    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
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

  14. #74
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    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ï

  15. #75
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    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.
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

  16. #76
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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ï

  17. #77
    Membre chevronné
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Points : 2 004
    Points
    2 004
    Par défaut
    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.

Discussions similaires

  1. Quel logiciel (EDI) pour débuter en programmation ?
    Par mimosa69 dans le forum Débats sur le développement - Le Best Of
    Réponses: 13
    Dernier message: 17/01/2016, 17h45
  2. Réponses: 16
    Dernier message: 15/11/2005, 21h07
  3. Pour débuter en programmation réseau
    Par durnambule dans le forum Développement
    Réponses: 3
    Dernier message: 20/06/2004, 23h21
  4. Avec quel langage débuter en programmation ?
    Par spectrum1984 dans le forum Débuter
    Réponses: 10
    Dernier message: 28/12/2003, 22h57
  5. Comment débuter en programmation ?
    Par Marc Lussac dans le forum Débuter
    Réponses: 0
    Dernier message: 08/04/2002, 12h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo