[Haskell-fr] Haskell-fr Digest, Vol 23, Issue 2

Nicolas SCHOEMAEKER ns.schoe at gmail.com
Fri Mar 21 14:39:08 UTC 2014


Regards,

Nicolas SCHOEMAEKER

Web Developer
Haskell Programer
Artificial Intelligence & Robotics enthusiast


2014-03-21 13:00 GMT+01:00 <haskell-fr-request at haskell.org>:

> Send Haskell-fr mailing list submissions to
>         haskell-fr at 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 at haskell.org
>
> You can reach the person managing the list at
>         haskell-fr-owner at 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 at inria.fr>
> To: La liste Haskell Francophone <haskell-fr at haskell.org>
> Subject: Re: [Haskell-fr] Caract?risation des langages fonctionnels
> Message-ID: <AA4145A7-4AF1-4CF0-96C1-F5A95F9B086C at 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 at 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 at 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 at gmail.com>
> To: La liste Haskell Francophone <haskell-fr at haskell.org>
> Subject: Re: [Haskell-fr] Caract?risation des langages fonctionnels
> Message-ID:
>         <
> CAH_3vcSBLtyu1oJsVCbLii7OaKuN7SiWryqinKuOzq54ytjsWg at mail.gmail.com>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Le 21 mars 2014 11:46, Laurent Pierron <Laurent.Pierron at 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 at 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 at haskell.org
> > http://www.haskell.org/mailman/listinfo/haskell-fr
> >
> > _______________________________________________
> > Haskell-fr mailing list
> > Haskell-fr at 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 at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-fr
>
>
> ------------------------------
>
> End of Haskell-fr Digest, Vol 23, Issue 2
> *****************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-fr/attachments/20140321/f7af5688/attachment-0001.html>


More information about the Haskell-fr mailing list