Regards,

Nicolas SCHOEMAEKER

Web Developer
Haskell Programer
Artificial Intelligence & Robotics enthusiast


2014-03-21 13:00 GMT+01:00 <haskell-fr-request@haskell.org>:
Send Haskell-fr mailing list submissions to
        haskell-fr@haskell.org

To subscribe or unsubscribe via the World Wide Web, visit
        http://www.haskell.org/mailman/listinfo/haskell-fr
or, via email, send a message with subject or body 'help' to
        haskell-fr-request@haskell.org

You can reach the person managing the list at
        haskell-fr-owner@haskell.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Haskell-fr digest..."


Today's Topics:

   1. Re: Caract?risation des langages fonctionnels (Laurent Pierron)
   2. Re: Caract?risation des langages fonctionnels (Gautier DI FOLCO)


----------------------------------------------------------------------

Message: 1
Date: Fri, 21 Mar 2014 11:46:54 +0100
From: Laurent Pierron <Laurent.Pierron@inria.fr>
To: La liste Haskell Francophone <haskell-fr@haskell.org>
Subject: Re: [Haskell-fr] Caract?risation des langages fonctionnels
Message-ID: <AA4145A7-4AF1-4CF0-96C1-F5A95F9B086C@inria.fr>
Content-Type: text/plain; charset=windows-1252

Bonjour,

R?cemment je me suis pos? la question avec un coll?gue pour introduire un s?minaire interne sur les langages fonctionnels, et on n?a pas r?ussi ? trouver une r?ponse satisfaisante, on s?est heurt? aux diff?rents types de langage fonctionnel (Lisp, ML famille, Haskell, etc.), qui peuvent inclure des ?l?ments de langages imp?ratifs, des objets, des types alg?briques ou uniquement des types simples et qui ont des strat?gies d??valuation diff?rentes.

Personnellement, je dirais que dans un langage de fonctionnel l?ex?cution d?un programme se fait uniquement par substitution d?expression sans modification de l??tat d?une machine alors que dans un langage imp?ratif l?ex?cution se fait par ?valuation d?expression et modification de l??tat de la machine.

On peut aussi dire que les langages fonctionnels sont bas?s sur le lambda-calcul de Church, alors que les langages imp?ratifs sont bas?s sur la machine de Turing, mais il faut expliquer ce qu?est le lambda-calcul.


Laurent Pierron

Le 20 mars 2014 ? 11:26, Gautier DI FOLCO <gautier.difolco@gmail.com> a ?crit :

Bonjour,

Je vais peut-?tre poser une question tr?s g?n?rale, mais qu'est-ce qui caract?rise un langage de programmation fonctionnel ?
Je m'explique :
 - je sais qu'un LPF se base sur des expressions
 - je sais en reconna?tre un quand j'en vois un

mais chaque fois qu'on me pose la question, je ne suis pas foutu de donner des ?l?ments caract?ristiques clairs.

Est-ce que vous auriez une "phrase toute faite" ou quelque chose qui me permette de l'expliquer simplement/clairement de mani?re juste ?

Une "phrase toute faite" que j'aime utiliser pour présenter Haskell (mais je pense que ça peut s'appliquer à tous les langages fonctionnels) est la suivante : "Dans un langage impératif (type C/C++) un programme est une suite d'instructions à effectuer (le programmeur dit *quoi faire​​* à l'ordinateur) ; en Haskell, un programme est une suite de *définitions* : le programmeur dit à l'ordinateur *ce que sont les choses*".

Je donne ensuite les deux exemples suivants : 

- la fonction 'head' qui renvoie le premier élément d'une liste.
En C, on prend la liste, on "parcourt" les éléments en s'arrêtant au premier, et on le renvoie : c'est comment renvoyer le premier élément.
En Haskell, on *dit* qu'une liste *c'est* une tête et une queue, et pour renvoyer le premier élément de la liste, et bien on... renvoie le premier élément de la liste : le pattern-matching "head (x:_) = x" signifie exactement ceci.

- la fonction "length" qui renvoie le nombre d'éléments d'une liste.
En C, on prend la liste, on parcourt ses éléments et on incrémente un compteur à chaque fois qu'on parcourt un élément.
En Haskell, la longueur d'une liste, *c'est* : la longueur de la tête (1) + la longueur de la queue.

En Haskell, on explique vraiment à l'ordinateur *comment* sont les choses, comment elles sont construites.

Bref, c'est généralement comme ça que je captive mon public lorsque je présente Haskell. Bon courage.

Nicolas SCHOEMAEKER.


Merci par avance.
_______________________________________________
Haskell-fr mailing list
Haskell-fr@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-fr



------------------------------

Message: 2
Date: Fri, 21 Mar 2014 12:34:29 +0100
From: Gautier DI FOLCO <gautier.difolco@gmail.com>
To: La liste Haskell Francophone <haskell-fr@haskell.org>
Subject: Re: [Haskell-fr] Caract?risation des langages fonctionnels
Message-ID:
        <CAH_3vcSBLtyu1oJsVCbLii7OaKuN7SiWryqinKuOzq54ytjsWg@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

Le 21 mars 2014 11:46, Laurent Pierron <Laurent.Pierron@inria.fr> a ?crit :

> Bonjour,
>
> R?cemment je me suis pos? la question avec un coll?gue pour introduire un
> s?minaire interne sur les langages fonctionnels, et on n'a pas r?ussi ?
> trouver une r?ponse satisfaisante, on s'est heurt? aux diff?rents types de
> langage fonctionnel (Lisp, ML famille, Haskell, etc.), qui peuvent inclure
> des ?l?ments de langages imp?ratifs, des objets, des types alg?briques ou
> uniquement des types simples et qui ont des strat?gies d'?valuation
> diff?rentes.
>
> Personnellement, je dirais que dans un langage de fonctionnel l'ex?cution
> d'un programme se fait uniquement par substitution d'expression sans
> modification de l'?tat d'une machine alors que dans un langage imp?ratif
> l'ex?cution se fait par ?valuation d'expression et modification de l'?tat
> de la machine.
>
> On peut aussi dire que les langages fonctionnels sont bas?s sur le
> lambda-calcul de Church, alors que les langages imp?ratifs sont bas?s sur
> la machine de Turing, mais il faut expliquer ce qu'est le lambda-calcul.
>
>
> Laurent Pierron
>
> Le 20 mars 2014 ? 11:26, Gautier DI FOLCO <gautier.difolco@gmail.com> a
> ?crit :
>
> Bonjour,
>
> Je vais peut-?tre poser une question tr?s g?n?rale, mais qu'est-ce qui
> caract?rise un langage de programmation fonctionnel ?
> Je m'explique :
>  - je sais qu'un LPF se base sur des expressions
>  - je sais en reconna?tre un quand j'en vois un
>
> mais chaque fois qu'on me pose la question, je ne suis pas foutu de donner
> des ?l?ments caract?ristiques clairs.
>
> Est-ce que vous auriez une "phrase toute faite" ou quelque chose qui me
> permette de l'expliquer simplement/clairement de mani?re juste ?
>
> Merci par avance.
> _______________________________________________
> Haskell-fr mailing list
> Haskell-fr@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-fr
>
> _______________________________________________
> Haskell-fr mailing list
> Haskell-fr@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-fr
>

Bonjour,

Si je rajoute "conceptuellement" la d?finition me convient.

Merci.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-fr/attachments/20140321/f9bb2ad9/attachment-0001.html>

------------------------------

Subject: Digest Footer

_______________________________________________
Haskell-fr mailing list
Haskell-fr@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-fr


------------------------------

End of Haskell-fr Digest, Vol 23, Issue 2
*****************************************