• # Plutôt caml

    Posté par . En réponse au journal Lisp et caml. Évalué à 3.

    J'ai utilisé ocaml assez souvent, ms il y a déjà un petit bout de temps.
    J'ai très peu fait de lisp, un peu plus de scheme

    J'utilise un exemple simple, mais je vois mal en quoi ces langages diffèrent,
    Je dirais que ocaml fait du typage statique, avec inférence de type
    alors que lisp fait du typage dynamique.

    La syntaxe de ocaml à mois de parenthèses ;)
    Je pense que ocaml est peut-être plus lisible, mais la syntaxe régulière de lisp permet des choses intéressante sur les S-expressions.

    ocaml peut-être compilé en natif ou en bytecode. c'est surement vrai aussi pour lisp, mais il y a bcp de compilateur/interpreteurs différent, et je ne prétends pas les connaître tous.

    Un truc sympa en ocaml c'est les types sommes, utilisés conjointement avec le pattern matching: le code reflète la structure de donnée. C'est aussi possible en lisp, ms je trouve que la definition des type est moins évidente, et que le pattern matching est moins facile à réaliser.



    Pourquoi me dit-on que Lisp est entre autre fait pour faire de l'IA, purquoi Lisp plus que caml ? Etc...
    Je pense que c'est surtout pour des raison historique. lisp est un langage très souple et les S-expression un moyen commode de representer des donnée de manières générique. De je ne crois pas dire de bétise en disant que lisp est un des premier langage à proposer des fonctionnalités objet.
    Cependant j'ai justement utilisé ocaml dans le cadre de l'IA (pendant mes étude) et c'est très valable. Et aujourd'hui si je veux un langage dynamique, j'utilise plutôt Python ou Smalltalk (et Ruby que j'essaye en ce moment pour m'amuser)


    N'y connaissant pas assez, j'ose à peine dire que ma préférence va à Caml, mais certains auront peut être des témoignages intéressants.
    J'ai aussi tendance à préferer ocaml à lisp.
    Même si j'avoue avoir eu du mal au début à satisfaire le systême de typage: ça a mis en lumière le fait que je commençais svt à coder avent de savoir précisément quoi coder: typer une fonction implique souvent de spécifier le comportement exact attendu.