|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : septembre 2006 Messages : 67 ![]() |
'soir.
Je voudrais apprendre un langage fonctionnel, mais je sais pas quoi choisir entre OCaml et Lisp ou Scheme... Je voudrais m'orienter vers celui qui pourra réellement me servir pour mes développements persos et prototypages. Donc il est important que le langage soit répandu (libs, bindings), qu'il ait une communauté active (forum), qu'il y ait des livres et des outils (IDE en particulier) etc... Sur tous ces points j'ai l'impression que l'on trouve davantage de choses pour Lisp/Scheme. A plusieurs reprises, j'ai commencé à regarder OCaml mais, étant sous Windows, je me suis heurté à des difficultés qui font qu'à chaque fois j'ai abandonné. Cette fois-ci, j'espère bien aller jusqu'au bout. L'environnement DrScheme m'a l'air plus simple. J'ai tenté de peser le pour et le contre pour chaque langage, résultat : match nul.
|
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Inscription : avril 2003 Messages : 3 296 ![]() |
à lire sur le forum :
[Résolu] Débuter en programmation fonctionnelle [CAML] Dans quel(s) domaine(s) le langage caml est utile ?
__________________
Tous mes tutoriels Pas de questions techniques par MP ni par e-mail, merci ! Prolog rules! |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : septembre 2006 Messages : 67 ![]() |
Merci pour tes liens...
Le 2eme lien montre que l'on peut à priori tout faire avec CAML. Pour preuve MLDonkey. C'est en decouvrant MLDonkey que j'ai commencé a regarder CAML. Par contre quand est il de scheme/lisp ? |
|
|
00
|
|
|
#4 | |
![]() ![]() Inscription : juin 2006 Messages : 6 935 ![]() |
Citation:
J'ai appris les deux langages (un premier jet de camL en prépa, puis un jet de Lisp en école et je suis retourné vers camL/OcamL par moi même ensuite), et je prefère nettement plus OcamL que je trouve moins contraignant.
__________________
Je ne répondrai à aucune question technique en privé |
|
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : septembre 2006 Messages : 67 ![]() |
C'est clair qu'avec scheme il faut faire gaffe a bien indenter et faire de fonction de moins de 10 lignes, sinon apres avec l'imbrication de parenthese (et malgé des editeurs qui mettent en correspondance les parentheses) ca doit vite donner mal au crane.
Mais faut voir le bon coter! On est pousser a ecrire de petites fonctions, pleins de petites fonctions. Sinon, vu que tu connais les 2, est ce que il y a autant de possibilité dans l'un comme dans l'autres ? J'ai créé un programme de derivation de fonction (en me basant sur des exemples trouvés), une version caml et une version scheme. L'approche est differente en caml du fait du typage, mais dans les 2 cas, j'ai trouvé ca interessant. |
|
|
00
|
|
|
#6 |
|
Futur Membre du Club
![]() Inscription : septembre 2006 Messages : 67 ![]() |
Sur ce thread [CAML] Dans quel(s) domaine(s) le langage caml est utile ?, il est dit que caml est un language general que l'on peut tout faire avec. Qu'en est il pour Scheme ?
|
|
|
00
|
|
|
#7 | |||
![]() ![]() Inscription : juin 2006 Messages : 6 935 ![]() |
Citation:
Un langage fonctionnel (LISP, scheme et OcamL) est équivalent à une machine de Turing, donc on est capable de tout faire avec Après, ça dépend du nombre de module existant dans chacun des langages. Il faudrait se renseigner sur ce point, mais je ne sais pas trop. Je pense que dans les deux langages, il doit y avoir des modules à peu près dans tous les domaines. En camL, si tu fais du purement fonctionnel, tu te retrouves également à réaliser de petite fonction, mais la notation est souvent beaucoup plus clair (par exemple avec les notations de la forme : a::L pour les listes...). Parce que en LISP (je ne connais pas Scheme, mais apparement, ça doit être ressemblant), les listes sont certes plus puissantes (on peut directement créer des arbres binaires), mais je ne supporte pas la syntaxe Et je trouve mieux de bien séparer les fonctionnalités des objets comme en camL.Par exemple, je trouve que la fonction : Code :
__________________
Je ne répondrai à aucune question technique en privé |
|||
|
|
00
|
|
|
#8 | |
|
Futur Membre du Club
![]() Inscription : septembre 2006 Messages : 67 ![]() |
En faisant des recherches sur ocaml, je viends de decouvrir Nemerl.
Citation:
Quelqu'un a t'il essayé? J'avoue que la syntaxe m'est plus familère, mais est elle aussi puissante que ocaml? |
|
|
|
00
|
|
|
#9 | |
|
Membre éprouvé
![]() Inscription : mai 2004 Messages : 398 ![]() |
Citation:
Pas tout à fait d'accord, c'est le lambda-calcul qui est turing-complet. Caml, qui derive du lambda-calcul typé n'est plus turing-complet. Au passage, pour être turing comlet, il ne faut pas avoir de mémoire borné, ce qui est le cas dans tous les langages de programmation, rien qu'avec le representation binaire des entiers sur un nombre fini de bits... Mais bon, je sais que je chipote et que ta remarque était plus la pour montrer qu'un langage fonctionnel était puissant. |
|
|
|
00
|
|
|
#10 | |
![]() ![]() ![]() Nicolas ValléeIngénieur d'études Inscription : décembre 2005 Messages : 9 963 ![]() |
Citation:
pas tout à fait d'accord non plus... mémoire bornée ne signifie pas que chaque variable doit pouvoir prendre une quantitée infinie de mémoire, mais que le programme est censé pouvoir utiliser une quantité infinie de mémoire... et la borne de 4Go par process ne vient pas du langage de plus, de quel lambda-calcul typé parles-tu ? |
|
|
|
00
|
|
|
#11 | |
|
Membre éprouvé
![]() Inscription : mai 2004 Messages : 398 ![]() |
Citation:
|
|
|
|
00
|
|
|
#12 | |
|
Membre Expert
![]() ![]() Inscription : juillet 2003 Messages : 2 066 ![]() |
Citation:
La syntaxe n'est pas bien compliqué non plus en Caml, il ne faut pas exagérer. |
|
|
00
|
|
|
#13 | |
![]() ![]() Inscription : juin 2006 Messages : 6 935 ![]() |
Citation:
Je parlais de la syntaxe simple au sens : grammaire simple, analyse syntaxique simple. Je disais que la syntaxe est Lisp (scheme) est simple mais que je trouve dur à lire.
__________________
Je ne répondrai à aucune question technique en privé |
|
|
|
00
|
|
|
#14 |
|
Membre régulier
![]() Inscription : février 2006 Messages : 305 ![]() |
je te conseillerai d'utiliser scheme car c'est un language avec lequel tu peut a peut près tout faire, de plus c'est undescendant de lisp.
moi ca fait deux ans que je fait du scheme et je ne suis pas deçu |
|
|
00
|
|
|
#15 | |
|
Membre Expert
![]() ![]() Inscription : juillet 2003 Messages : 2 066 ![]() |
Citation:
Avec les ML j'en vois un peu plus. Pourrais tu nous dire ce que tu codes en Scheme? J'avoue que j'aimerais bien connaître les usages "industriels et universitaires" de Scheme/Lisp au délà de Emacs ( )
|
|
|
00
|
|
|
#16 |
![]() ![]() Inscription : juin 2006 Messages : 6 935 ![]() |
Au LaBri (lab bordelais de recherches en informatiques), ils utilisent pas mal le langage Lisp. Ce lab travaille souvent "en collaboration" avec l'Enseirb (école d'informatique à bordeaux) et propose souvent des sujets de projets (sur 4 ou 6 mois) qui ont un lien direct avec ce qu'ils font.
Certains sont en Lisp justement (surtout ceux qui concerne les graphes), notamment ceux-ci (donc, en lisant vaguement, tu peux voir en quoi ils utilisent ça) : http://www.enseirb.fr/~pelegrin/ense...projet_01.html http://www.enseirb.fr/~pelegrin/ense...projet_03.html Il est possible que les liens meurent dans le mois ou l'année. Pour la petite histoire, personne n'a pris ces sujets là cette année on se demande bien pourquoi.Personnellement, j'ai l'impression (ce n'est qu'une impression) qu'ils utilisent ce langage car ils sont plus spécialisés et ont beaucoup plus l'habitude de celui ci que ocaml.
__________________
Je ne répondrai à aucune question technique en privé |
|
|
00
|
|
|
#17 | |
![]() ![]() ![]() Nicolas ValléeIngénieur d'études Inscription : décembre 2005 Messages : 9 963 ![]() |
Citation:
ben c'est une extension du lambda-calcul... pas le lambda-calcul mais là, on va troller... |
|
|
|
00
|
|
|
#18 |
|
Membre Expert
![]() ![]() Inscription : juillet 2003 Messages : 2 066 ![]() |
Utilisation pro des langages fonctionnels. J'ai trouvé une adresse: http://www.galois.com/cufp/
CUFP ou Commercial Use For Functionnal Programming |
|
00
|
|
|
#19 | |
|
Membre actif
![]() Inscription : mars 2006 Messages : 176 ![]() |
Citation:
Le lambda-calcul est turing complet Le lambda-calcul simplement typé n'est pas turing complet Caml est bien sur turing complet. Pour vous en convaincre c'est facile essayer de coder une machine de turing, y'en a pour 10minutes (je l'ai même eu en exo d'examen). |
|
|
|
00
|
|
|
#20 |
|
Membre Expert
![]() ![]() Inscription : septembre 2006 Messages : 1 036 ![]() |
Moi je ne dirai qu'une seule chose dans ce message :
Objective Caml ou Haskell Tout le reste, c'est du ... mis à part peut-être SML, et encore... Objective Caml et Haskell sont les deux seuls langages fonctionnels permettant de développer de vrais programmes et applications aujourd'hui, c'est-à-dire possédant des outils modernes et adaptés. D'ailleurs, ce n'est pas pour rien que F#, en cours de développement pour la plateforme .NET, pompe tout sur Objective Caml et que Microsoft finance de manière généreuse des projets comme GHC (le principal compilateur Haskell). Un début de tutoriel pour Objective Caml se trouve ici : http://gorgonite.developpez.com/tuto.../presentation/ Quelques indications concernant les bibliothèques disponibles avec la distribution y sont présentes. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com