From gautier.difolco at gmail.com Sun May 18 10:04:07 2014 From: gautier.difolco at gmail.com (Gautier DI FOLCO) Date: Sun, 18 May 2014 12:04:07 +0200 Subject: [Haskell-fr] =?utf-8?q?Fw=3A_=C3=89claircissements_sur_les_monade?= =?utf-8?q?s?= In-Reply-To: References: <1395896865.54526.YahooMailNeo@web162402.mail.bf1.yahoo.com> Message-ID: 2014-03-27 10:11 GMT+01:00 Gautier DI FOLCO : > 2014-03-27 6:07 GMT+01:00 Dan Popa : > > Hi, >> >> Sorry for writing in english, I am not from France. >> Take a look here, please: >> >> http://www.haskell.org/haskellwiki/Modular_Monadic_Compilers_for_Programming_Languages >> >> The source at #3) on the above page is a code generator written using >> the State monad. >> The state monad is necessary because here it provides a sort of context, >> like a set of the global variables >> in imperative programming. >> And that is why we are using The State Monad, to simulate the >> use of a set of global (or local) variables, used to store values. >> >> Especially in this example, the lenghts of the pieces of generated code >> are stored in order to compute the length of the biggers codes, when they >> are catenated, (glued together). >> >> Other monads have specific use. Parser monad is used for glueing parsers, >> the list monad can simulate paralel computations and even backtracking >> (there is a backtracking monad too), the Maybe monad is used to make >> computations including Nothing in the set of values, etc. >> >> Basically monadic capsules can be seen like Christmas Giftts containing >> compuations. And monadic operators have two kind of use: >> - return is a package maker, it creates a capsule, a package, like >> wrapping a gift >> - bind is something like: how to combine a function with a package. Open >> the package, compose functions, take care to produce an other package (or >> capsule). >> >> Hoping it helps, >> Sincerely yours, >> Dan Popa >> >> ----- Forwarded Message ----- >> *From:* Gautier DI FOLCO >> *To:* La liste Haskell Francophone >> *Sent:* Wednesday, March 26, 2014 12:10 PM >> *Subject:* [Haskell-fr] ?claircissements sur les monades >> >> Bonjour, >> >> Vaste sujet en perspective : les monades. >> Je pense avoir compris le principe des monades (?tre en mesure >> d'effectuer des actions sur une valeur au sein d'un contexte), en revanche >> il y a deux choses que je ne comprends pas : >> * La notion de contexte (ou de cadre de calcul) est un peu floue >> * Pourquoi est-ce que les monades sont aptes ? contenir les effets de >> bords (j'ai lu effectful computations) et pas d'autres typeclass (comme >> Applicative). >> >> Merci par avance pour vos r?ponses. >> >> _______________________________________________ >> 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 >> >> > State Monads are clearer to me, thanks. > Bonjour ? tous, J'ai fais pas mal de progr?s ces derniers temps (de mani?re globale) du coup il y a encore une zone d'ombre que j'aimerais ?claircir : comment les valeurs sont pass?es ? une fonction ? La question est vague, un exemple est de rigueur, j'ai ce code que je pense assez classique : -- Generic newtype Reader r a = Reader { runReader :: r -> a } instance Monad (Reader r) where return a = Reader $ \_ -> a m >>= k = Reader $ \r -> runReader (k (runReader m r)) r ask :: Reader a a ask = Reader id asks :: (r -> a) -> Reader r a asks f = Reader f local :: (r -> b) -> Reader b a -> Reader r a local f m = Reader $ runReader m . f -- Specific data MyState = MyState { foo :: String , bar :: Int } deriving (Show) computation :: Reader MyState (Maybe String) computation = do n <- asks bar x <- asks foo if n > 0 then return (Just x) else return Nothing example1 :: Maybe String example1 = runReader computation $ MyState "hello!" 1 example2 :: Maybe String example2 = runReader computation $ MyState "example!" 0 En gros j'ai deux soucis : comment runReader et asks fonctionnent ? Voil? mon raisonnement : ?a c'est notre but : runReader (asks bar) (MyState "example!" 0) :: Int runReader (asks bar) :: MyState -> Int => ok, on attends un MyState pour ?valuer le tout runReader :: Reader r a -> r -> a => pas ok : avec un Reader (qui contient une fonction r -> a) on sort cette fonction et on l'applique Question 1 : comment on applique cette fonction encapsul?e ? (asks bar) :: Reader MyState Int => pas ok : on attends un MyState pour sortir un Int Question 2 : comment ce MyState est "pass?" et ? quoi pour que ?a sorte un Int ? Jamais deux sans trois (m?me si je pense que r?pondre ? la premi?re question r?pondra m?caniquement aux deux autres). Question 3 : Pour computation, comment le Mystate est "pass?" aux diff?rents asks ? ou ? l'envers, comment les asks savent o? et quoi chercher ? (et comment l'appliquer) J'ai tent? le code suivant, sans succ?s : computation :: Reader MyState (Maybe String) computation m = do n <- asks bar m x <- asks foo m if n > 0 then return (Just x) else return Nothing Merci par avance pour vos r?ponses et votre patience. -------------- next part -------------- An HTML attachment was scrubbed... URL: From arnaud.oqube at gmail.com Sun May 18 11:49:13 2014 From: arnaud.oqube at gmail.com (Arnaud Bailly) Date: Sun, 18 May 2014 13:49:13 +0200 Subject: [Haskell-fr] =?iso-8859-1?q?Fw=3A_=C9claircissements_sur_les_mona?= =?iso-8859-1?q?des?= In-Reply-To: References: <1395896865.54526.YahooMailNeo@web162402.mail.bf1.yahoo.com> Message-ID: computation m = ? ne peut pas fonctionner puisque computation ? la type Reader ? donc ne prend pas d?argument: tout est encapsul? dans la fonction runReader. La magie provient de >>= qui, d?apr?s ta d?finition, construit un nouveau reader en cha?nant et d?capsulant la premi?re monade et la continuation (k): on applique la fonction contenue dans Reader avec (runReader m r), on produit une nouvelle monade en applicant k, on d?capsule cette deuxi?me monade avec le descend appel ? runReader. Tout ?a est une fonction qui est encapsul?e dans un Reader, donc qui devient le champ runReader de Reader. Donc pour r?pondre ? tes questions: Q1: la fonction est un champ de Reader accessible avec runReader :: r -> a, donc tu extraies cette fonction du reader, et ensuite tu peux lui passer un argument. Q2: cf. le cha?nage ci-dessus. Le MyState est pass? lors de la premi?re invocation ? runReader qui va d?rouler la ?computation? Q3: pareil. Le ?principe?de reader et de beaucoup de code monadique est de construire des expressions, qui ne sont ?valu?es qu?au toplevel, en passant un argument ? runXXX pour ?d?marrer? la cha?ne de calcul. IO est un cas particulier qui d?marre par l?appel ? main. Tu ne peux pas (sauf magie) extraire une valeur de IO, alors que tu peux extraire une valeur (une fonction) depuis un Reader. HTH Arnaud On 18 May 2014, at 12:04, Gautier DI FOLCO wrote: > 2014-03-27 10:11 GMT+01:00 Gautier DI FOLCO : > 2014-03-27 6:07 GMT+01:00 Dan Popa : > > Hi, > > Sorry for writing in english, I am not from France. > Take a look here, please: > http://www.haskell.org/haskellwiki/Modular_Monadic_Compilers_for_Programming_Languages > > The source at #3) on the above page is a code generator written using the State monad. > The state monad is necessary because here it provides a sort of context, like a set of the global variables > in imperative programming. > And that is why we are using The State Monad, to simulate the > use of a set of global (or local) variables, used to store values. > > Especially in this example, the lenghts of the pieces of generated code are stored in order to compute the length of the biggers codes, when they are catenated, (glued together). > > Other monads have specific use. Parser monad is used for glueing parsers, the list monad can simulate paralel computations and even backtracking (there is a backtracking monad too), the Maybe monad is used to make computations including Nothing in the set of values, etc. > > Basically monadic capsules can be seen like Christmas Giftts containing compuations. And monadic operators have two kind of use: > - return is a package maker, it creates a capsule, a package, like wrapping a gift > - bind is something like: how to combine a function with a package. Open the package, compose functions, take care to produce an other package (or capsule). > > Hoping it helps, > Sincerely yours, > Dan Popa > > ----- Forwarded Message ----- > From: Gautier DI FOLCO > To: La liste Haskell Francophone > Sent: Wednesday, March 26, 2014 12:10 PM > Subject: [Haskell-fr] ?claircissements sur les monades > > Bonjour, > > Vaste sujet en perspective : les monades. > Je pense avoir compris le principe des monades (?tre en mesure d'effectuer des actions sur une valeur au sein d'un contexte), en revanche il y a deux choses que je ne comprends pas : > * La notion de contexte (ou de cadre de calcul) est un peu floue > * Pourquoi est-ce que les monades sont aptes ? contenir les effets de bords (j'ai lu effectful computations) et pas d'autres typeclass (comme Applicative). > > Merci par avance pour vos r?ponses. > > _______________________________________________ > 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 > > > State Monads are clearer to me, thanks. > > Bonjour ? tous, > > J'ai fais pas mal de progr?s ces derniers temps (de mani?re globale) du coup il y a encore une zone d'ombre que j'aimerais ?claircir : comment les valeurs sont pass?es ? une fonction ? > > La question est vague, un exemple est de rigueur, j'ai ce code que je pense assez classique : > > -- Generic > > newtype Reader r a = Reader { runReader :: r -> a } > > instance Monad (Reader r) where > return a = Reader $ \_ -> a > m >>= k = Reader $ \r -> runReader (k (runReader m r)) r > > ask :: Reader a a > ask = Reader id > > asks :: (r -> a) -> Reader r a > asks f = Reader f > > local :: (r -> b) -> Reader b a -> Reader r a > local f m = Reader $ runReader m . f > > -- Specific > > data MyState = MyState > { foo :: String > , bar :: Int > } deriving (Show) > > computation :: Reader MyState (Maybe String) > computation = do > n <- asks bar > x <- asks foo > if n > 0 > then return (Just x) > else return Nothing > > example1 :: Maybe String > example1 = runReader computation $ MyState "hello!" 1 > > example2 :: Maybe String > example2 = runReader computation $ MyState "example!" 0 > > En gros j'ai deux soucis : comment runReader et asks fonctionnent ? > > Voil? mon raisonnement : > > ?a c'est notre but : runReader (asks bar) (MyState "example!" 0) :: Int > runReader (asks bar) :: MyState -> Int > => ok, on attends un MyState pour ?valuer le tout > > runReader :: Reader r a -> r -> a > => pas ok : avec un Reader (qui contient une fonction r -> a) on sort cette fonction et on l'applique > Question 1 : comment on applique cette fonction encapsul?e ? > > (asks bar) :: Reader MyState Int > => pas ok : on attends un MyState pour sortir un Int > Question 2 : comment ce MyState est "pass?" et ? quoi pour que ?a sorte un Int ? > > Jamais deux sans trois (m?me si je pense que r?pondre ? la premi?re question r?pondra m?caniquement aux deux autres). > Question 3 : Pour computation, comment le Mystate est "pass?" aux diff?rents asks ? ou ? l'envers, comment les asks savent o? et quoi chercher ? (et comment l'appliquer) > J'ai tent? le code suivant, sans succ?s : > computation :: Reader MyState (Maybe String) > computation m = do > n <- asks bar m > x <- asks foo m > if n > 0 > then return (Just x) > else return Nothing > > Merci par avance pour vos r?ponses et votre patience. > _______________________________________________ > Haskell-fr mailing list > Haskell-fr at haskell.org > http://www.haskell.org/mailman/listinfo/haskell-fr -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 496 bytes Desc: Message signed with OpenPGP using GPGMail URL: From simon at banquise.net Sun May 18 12:36:58 2014 From: simon at banquise.net (Simon Marechal) Date: Sun, 18 May 2014 14:36:58 +0200 Subject: [Haskell-fr] =?iso-8859-1?q?Fw=3A_=C9claircissements_sur_les_mona?= =?iso-8859-1?q?des?= In-Reply-To: References: <1395896865.54526.YahooMailNeo@web162402.mail.bf1.yahoo.com> Message-ID: <5378A96A.1080207@banquise.net> On 05/18/2014 12:04 PM, Gautier DI FOLCO wrote: > Merci par avance pour vos r?ponses et votre patience. A mon avis, le plus efficace pour vraiment comprendre ce qu'il se passe, c'est de d?sucrer le code ? la main. Pour moi le truc qui m'a vraiment permis d'avancer ?a a ?t? d'?crire "State" et "Maybe" moi m?me, juste en suivant les types, puis de faire "StateT" et "MaybeT". Il y a ce "cours", qui est en fait une succession d'exercices, qui je pense est excellent : https://github.com/NICTA/course From gautier.difolco at gmail.com Sun May 18 13:19:42 2014 From: gautier.difolco at gmail.com (Gautier DI FOLCO) Date: Sun, 18 May 2014 15:19:42 +0200 Subject: [Haskell-fr] =?utf-8?q?Fw=3A_=C3=89claircissements_sur_les_monade?= =?utf-8?q?s?= In-Reply-To: References: <1395896865.54526.YahooMailNeo@web162402.mail.bf1.yahoo.com> Message-ID: Le 18 mai 2014 13:49, Arnaud Bailly a ?crit : > computation m = ? > > ne peut pas fonctionner puisque computation ? la type Reader ? donc ne > prend pas d?argument: tout est encapsul? dans la fonction runReader. > > La magie provient de >>= qui, d?apr?s ta d?finition, construit un nouveau > reader en cha?nant et d?capsulant la premi?re monade et la continuation > (k): on applique la fonction contenue dans Reader avec (runReader m r), on > produit une nouvelle monade en applicant k, on d?capsule cette deuxi?me > monade avec le descend appel ? runReader. Tout ?a est une fonction qui est > encapsul?e dans un Reader, donc qui devient le champ runReader de Reader. > Raaah, je l'avais oubli? (le >>=), effectivement, tout s'?claire ! > > Donc pour r?pondre ? tes questions: > > Q1: la fonction est un champ de Reader accessible avec runReader :: r -> > a, donc tu extraies cette fonction du reader, et ensuite tu peux lui passer > un argument. > Q2: cf. le cha?nage ci-dessus. Le MyState est pass? lors de la premi?re > invocation ? runReader qui va d?rouler la ?computation? > Q3: pareil. > > Le ?principe?de reader et de beaucoup de code monadique est de construire > des expressions, qui ne sont ?valu?es qu?au toplevel, en passant un > argument ? runXXX pour ?d?marrer? la cha?ne de calcul. IO est un cas > particulier qui d?marre par l?appel ? main. Tu ne peux pas (sauf magie) > extraire une valeur de IO, alors que tu peux extraire une valeur (une > fonction) depuis un Reader. > ok, compris, merci. -------------- next part -------------- An HTML attachment was scrubbed... URL: From gautier.difolco at gmail.com Sun May 18 13:20:28 2014 From: gautier.difolco at gmail.com (Gautier DI FOLCO) Date: Sun, 18 May 2014 15:20:28 +0200 Subject: [Haskell-fr] =?utf-8?q?Fw=3A_=C3=89claircissements_sur_les_monade?= =?utf-8?q?s?= In-Reply-To: <5378A96A.1080207@banquise.net> References: <1395896865.54526.YahooMailNeo@web162402.mail.bf1.yahoo.com> <5378A96A.1080207@banquise.net> Message-ID: Le 18 mai 2014 14:36, Simon Marechal a ?crit : > On 05/18/2014 12:04 PM, Gautier DI FOLCO wrote: > > Merci par avance pour vos r?ponses et votre patience. > > A mon avis, le plus efficace pour vraiment comprendre ce qu'il se passe, > c'est de d?sucrer le code ? la main. Pour moi le truc qui m'a vraiment > permis d'avancer ?a a ?t? d'?crire "State" et "Maybe" moi m?me, juste en > suivant les types, puis de faire "StateT" et "MaybeT". > > Il y a ce "cours", qui est en fait une succession d'exercices, qui je > pense est excellent : > > https://github.com/NICTA/course > ?a a l'air g?nial ce d?p?t, merci. -------------- next part -------------- An HTML attachment was scrubbed... URL: From arnaud.oqube at gmail.com Sun May 18 13:27:47 2014 From: arnaud.oqube at gmail.com (Arnaud Bailly) Date: Sun, 18 May 2014 15:27:47 +0200 Subject: [Haskell-fr] =?iso-8859-1?q?Fw=3A_=C9claircissements_sur_les_mona?= =?iso-8859-1?q?des?= In-Reply-To: References: <1395896865.54526.YahooMailNeo@web162402.mail.bf1.yahoo.com> <5378A96A.1080207@banquise.net> Message-ID: <45572518-8839-49AF-B1F9-D876882F2528@gmail.com> Je plussoie sur le cours NICTA que j?ai d?couvert r?cemment. Tony Morris est un g?nie, dommage que ce soit aussi un connard. On 18 May 2014, at 15:20, Gautier DI FOLCO wrote: > Le 18 mai 2014 14:36, Simon Marechal a ?crit : > On 05/18/2014 12:04 PM, Gautier DI FOLCO wrote: > > Merci par avance pour vos r?ponses et votre patience. > > A mon avis, le plus efficace pour vraiment comprendre ce qu'il se passe, > c'est de d?sucrer le code ? la main. Pour moi le truc qui m'a vraiment > permis d'avancer ?a a ?t? d'?crire "State" et "Maybe" moi m?me, juste en > suivant les types, puis de faire "StateT" et "MaybeT". > > Il y a ce "cours", qui est en fait une succession d'exercices, qui je > pense est excellent : > > https://github.com/NICTA/course > > ?a a l'air g?nial ce d?p?t, merci. > _______________________________________________ > Haskell-fr mailing list > Haskell-fr at haskell.org > http://www.haskell.org/mailman/listinfo/haskell-fr -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 496 bytes Desc: Message signed with OpenPGP using GPGMail URL: From arnaud.oqube at gmail.com Fri May 23 08:35:42 2014 From: arnaud.oqube at gmail.com (Arnaud Bailly) Date: Fri, 23 May 2014 10:35:42 +0200 Subject: [Haskell-fr] Wolfram + Clojure = Session In-Reply-To: References: <12c85791-09f3-46cb-aec2-5be2c67cdda3@googlegroups.com> <8EB6AF86-7DF2-4027-B137-ACD2AEE9261C@gmail.com> Message-ID: <18B49289-B6E0-4F36-8ADD-BF7F099732F6@gmail.com> Je crois qu?un meetup Functional Programming est pr?vu en juillet sur Paris, ce pourrait ?tre une bonne occasion. Arnaud On 23 May 2014, at 10:32, Hiram MADELAINE wrote: > Je manipule Om depuis D?cembre et je dois dire que je suis tr?s content. > Il n'a pas la lourdeur d'un framework car ce qu'il propose est juste une fine couche au dessus de React (qui se veut aussi minimaliste). > La notion de cursor s'apparente aux Zippers et Lenses, elle est essentielle pour obtenir une approche par composant. > L'id?e est de d?couper ton rendu en diff?rents composants ind?pendants qui ne se pr?occupe pas de conna?tre leur position dans la structure global de ton ?tat. > > Maintenant que je deviens fluent en Om/React , j'arrive ? produire des interfaces webs r?actives rapidement et simplement. > Le code est vraiment maintenable si on prend bien garde ? bien s?parer les composants et qu'on les fait communiquer avec des channels core.async. > > Comme je compte l'utiliser en production d'ici deux mois je ferai un retour d'exp?rience. > > Sinon j'avais commenc? parall?lement ? regarder Hoplon/javelin qui est tr?s s?duisant aussi avec son approche spreadsheet. > > Pourquoi ne pas organiser un meetup clojure ? Lyon ? Ou bien venir faire une pr?sentation ? un meetup ami ? > > > > > > > > Le 23 mai 2014 09:47, Laurent PETIT a ?crit : > Quel est ton ressenti sur Om ? > > Je ne l'ai pas utilis?, juste consult? la doc et suivi les ?changes sur la ml, et l'impression que ?a me donne, c'est qu'il para?t un peu "lourd", trop "frameworky", et avec des concepts quand m?me pas vraiment "secs" (la notion de curseur qui m?lange donn?es et chemin vers les donn?es). > > > Le 23 mai 2014 09:02, Hiram MADELAINE a ?crit : > > Je regarde ?a ce matin vu que je suis en plein Om + Datomic. > On pourrait se caler un meetup en Mai. > > Bonne journ?e > > Hiram > > > Le 23 mai 2014 09:01, Arnaud Bailly a ?crit : > > Awesome ! comme disent les anglophones? > > Merci pour m?avoir fait r?v? ce matin. > > > On 23 May 2014, at 00:42, Jonathan Winandy wrote: > >> Ahoy !! >> >> Cela a l'air plut?t bien !! Dans la m?me veine (mais sans Datomic derri?re) il y a http://gorilla-repl.org/ , qui est assez fou ! >> >> Jon >> >> >> 2014-05-22 23:29 GMT+02:00 Gilles Philippart : >> Bonsoir tout le monde, >> >> j'?tais en train de lire l'article tr?s int?ressant http://www.lighttable.com/2014/05/16/pain-we-forgot, et cela m'a fait d?couvrir le Wolfram Language, tr?s tr?s impressionnant. >> Je me disais que c'?tait dommage qu'on n'ait pas ce genre d'interface aussi dynamique en Clojure puis j'ai vu cette video de Kovas Boguta. >> Session est sur GitHub : https://github.com/kovasb/session >> >> Hiram, on pourrait peut-?tre faire joujou avec lors du prochain Meetup ? >> >> -- >> Vous recevez ce message, car vous ?tes abonn? au groupe Google Groupes "clojure-fr". >> Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail ? l'adresse clojure-fr+unsubscribe at googlegroups.com. >> Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout. >> >> >> -- >> Vous recevez ce message, car vous ?tes abonn? au groupe Google Groupes "clojure-fr". >> Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail ? l'adresse clojure-fr+unsubscribe at googlegroups.com. >> Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout. > > > > > -- > Hiram MADELAINE > Eloquent Logic > 96, rue La Fayette 75010 Paris > +33 6 11 51 37 71 > > -- > Vous recevez ce message, car vous ?tes abonn? au groupe Google Groupes "clojure-fr". > Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail ? l'adresse clojure-fr+unsubscribe at googlegroups.com. > Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout. > > > -- > Vous recevez ce message, car vous ?tes abonn? au groupe Google Groupes "clojure-fr". > Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail ? l'adresse clojure-fr+unsubscribe at googlegroups.com. > Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout. > > > > -- > Hiram MADELAINE > Eloquent Logic > 96, rue La Fayette 75010 Paris > +33 6 11 51 37 71 > > -- > Vous recevez ce message, car vous ?tes abonn? au groupe Google Groupes "clojure-fr". > Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail ? l'adresse clojure-fr+unsubscribe at googlegroups.com. > Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout. -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 496 bytes Desc: Message signed with OpenPGP using GPGMail URL: From gautier.difolco at gmail.com Fri May 23 09:32:03 2014 From: gautier.difolco at gmail.com (Gautier DI FOLCO) Date: Fri, 23 May 2014 11:32:03 +0200 Subject: [Haskell-fr] Wolfram + Clojure = Session In-Reply-To: <18B49289-B6E0-4F36-8ADD-BF7F099732F6@gmail.com> References: <12c85791-09f3-46cb-aec2-5be2c67cdda3@googlegroups.com> <8EB6AF86-7DF2-4027-B137-ACD2AEE9261C@gmail.com> <18B49289-B6E0-4F36-8ADD-BF7F099732F6@gmail.com> Message-ID: Le 23 mai 2014 10:35, Arnaud Bailly a ?crit : > Je crois qu?un meetup Functional Programming est pr?vu en juillet sur > Paris, ce pourrait ?tre une bonne occasion. > > Arnaud > > On 23 May 2014, at 10:32, Hiram MADELAINE > wrote: > > Je manipule Om depuis D?cembre et je dois dire que je suis tr?s content. > Il n'a pas la lourdeur d'un framework car ce qu'il propose est juste une > fine couche au dessus de React (qui se veut aussi minimaliste). > La notion de cursor s'apparente aux Zippers et Lenses, elle est > essentielle pour obtenir une approche par composant. > L'id?e est de d?couper ton rendu en diff?rents composants ind?pendants qui > ne se pr?occupe pas de conna?tre leur position dans la structure global de > ton ?tat. > > Maintenant que je deviens fluent en Om/React , j'arrive ? produire des > interfaces webs r?actives rapidement et simplement. > Le code est vraiment maintenable si on prend bien garde ? bien s?parer les > composants et qu'on les fait communiquer avec des channels core.async. > > Comme je compte l'utiliser en production d'ici deux mois je ferai un > retour d'exp?rience. > > Sinon j'avais commenc? parall?lement ? regarder Hoplon/javelin qui est > tr?s s?duisant aussi avec son approche spreadsheet. > > Pourquoi ne pas organiser un meetup clojure ? Lyon ? Ou bien venir faire > une pr?sentation ? un meetup ami ? > > > > > > > > Le 23 mai 2014 09:47, Laurent PETIT a ?crit : > >> Quel est ton ressenti sur Om ? >> >> Je ne l'ai pas utilis?, juste consult? la doc et suivi les ?changes sur >> la ml, et l'impression que ?a me donne, c'est qu'il para?t un peu "lourd", >> trop "frameworky", et avec des concepts quand m?me pas vraiment "secs" (la >> notion de curseur qui m?lange donn?es et chemin vers les donn?es). >> >> >> Le 23 mai 2014 09:02, Hiram MADELAINE a >> ?crit : >> >> Je regarde ?a ce matin vu que je suis en plein Om + Datomic. >>> On pourrait se caler un meetup en Mai. >>> >>> Bonne journ?e >>> >>> Hiram >>> >>> >>> Le 23 mai 2014 09:01, Arnaud Bailly a ?crit : >>> >>> Awesome ! comme disent les anglophones? >>>> >>>> Merci pour m?avoir fait r?v? ce matin. >>>> >>>> >>>> On 23 May 2014, at 00:42, Jonathan Winandy >>>> wrote: >>>> >>>> Ahoy !! >>>> >>>> Cela a l'air plut?t bien !! Dans la m?me veine (mais sans Datomic >>>> derri?re) il y a http://gorilla-repl.org/ , qui est assez fou ! >>>> >>>> Jon >>>> >>>> >>>> 2014-05-22 23:29 GMT+02:00 Gilles Philippart < >>>> gilles.philippart at gmail.com>: >>>> >>>>> Bonsoir tout le monde, >>>>> >>>>> j'?tais en train de lire l'article tr?s int?ressant >>>>> http://www.lighttable.com/2014/05/16/pain-we-forgot, et cela m'a fait >>>>> d?couvrir le Wolfram Language , >>>>> tr?s tr?s impressionnant. >>>>> Je me disais que c'?tait dommage qu'on n'ait pas ce genre d'interface >>>>> aussi dynamique en Clojure puis j'ai vu cette video deKovas Boguta. >>>>> Session est sur GitHub : https://github.com/kovasb/session >>>>> >>>>> Hiram, on pourrait peut-?tre faire joujou avec lors du prochain Meetup >>>>> ? >>>>> >>>>> -- >>>>> Vous recevez ce message, car vous ?tes abonn? au groupe Google Groupes >>>>> "clojure-fr". >>>>> Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le >>>>> concernant, envoyez un e-mail ? l'adresse >>>>> clojure-fr+unsubscribe at googlegroups.com. >>>>> Pour obtenir davantage d'options, consultez la page >>>>> https://groups.google.com/d/optout. >>>>> >>>> >>>> >>>> -- >>>> Vous recevez ce message, car vous ?tes abonn? au groupe Google Groupes >>>> "clojure-fr". >>>> Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le >>>> concernant, envoyez un e-mail ? l'adresse >>>> clojure-fr+unsubscribe at googlegroups.com. >>>> Pour obtenir davantage d'options, consultez la page >>>> https://groups.google.com/d/optout. >>>> >>>> >>>> >>> >>> >>> -- >>> Hiram MADELAINE >>> Eloquent Logic >>> 96, rue La Fayette 75010 Paris >>> +33 6 11 51 37 71 >>> >>> -- >>> Vous recevez ce message, car vous ?tes abonn? au groupe Google Groupes >>> "clojure-fr". >>> Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le >>> concernant, envoyez un e-mail ? l'adresse >>> clojure-fr+unsubscribe at googlegroups.com. >>> Pour obtenir davantage d'options, consultez la page >>> https://groups.google.com/d/optout. >>> >> >> >> -- >> Vous recevez ce message, car vous ?tes abonn? au groupe Google Groupes >> "clojure-fr". >> Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le >> concernant, envoyez un e-mail ? l'adresse >> clojure-fr+unsubscribe at googlegroups.com. >> Pour obtenir davantage d'options, consultez la page >> https://groups.google.com/d/optout. >> > > > > -- > Hiram MADELAINE > Eloquent Logic > 96, rue La Fayette 75010 Paris > +33 6 11 51 37 71 > > -- > Vous recevez ce message, car vous ?tes abonn? au groupe Google Groupes > "clojure-fr". > Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le > concernant, envoyez un e-mail ? l'adresse > clojure-fr+unsubscribe at googlegroups.com. > Pour obtenir davantage d'options, consultez la page > https://groups.google.com/d/optout. > > > > _______________________________________________ > Haskell-fr mailing list > Haskell-fr at haskell.org > http://www.haskell.org/mailman/listinfo/haskell-fr > > Bonjour, Justement, ce matin, entre Lyonnais, on se plaignais de l'absence de FPUG chez nous. Ce qui s'en approche le plus serait le Scala User Group, mais comme son nom l'indique ?a reste tr?s orient? Scala. Il faudrait peut-?tre faire un genre de sondage pour savoir combien de personne ?a int?resserait (je pense pouvoir en r?unir 4, moi inclus), afin de d?terminer si ?a vaut la peine ou non. -------------- next part -------------- An HTML attachment was scrubbed... URL: From arnaud.oqube at gmail.com Fri May 23 09:43:46 2014 From: arnaud.oqube at gmail.com (Arnaud Bailly) Date: Fri, 23 May 2014 11:43:46 +0200 Subject: [Haskell-fr] Wolfram + Clojure = Session In-Reply-To: References: <12c85791-09f3-46cb-aec2-5be2c67cdda3@googlegroups.com> <8EB6AF86-7DF2-4027-B137-ACD2AEE9261C@gmail.com> <18B49289-B6E0-4F36-8ADD-BF7F099732F6@gmail.com> Message-ID: Ce serait pas mal si avec la technologie du XXI?me si?cle on organisait un meetup r?parti. ?a doit pas ?tre impossible de diffuser un hangout entre deux-trois villes. Nous avons un groupe FP ? Nantes mais il n?est pas hyper-actif non plus? Si on est 6 ? Nantes, 10 ? Lyon, 15 ? Paris, 8 ? Lille? ?a mutualise, on peut en faire plus souvent?. Arnaud On 23 May 2014, at 11:32, Gautier DI FOLCO wrote: > Le 23 mai 2014 10:35, Arnaud Bailly a ?crit : > Je crois qu?un meetup Functional Programming est pr?vu en juillet sur Paris, ce pourrait ?tre une bonne occasion. > > Arnaud > > On 23 May 2014, at 10:32, Hiram MADELAINE wrote: > >> Je manipule Om depuis D?cembre et je dois dire que je suis tr?s content. >> Il n'a pas la lourdeur d'un framework car ce qu'il propose est juste une fine couche au dessus de React (qui se veut aussi minimaliste). >> La notion de cursor s'apparente aux Zippers et Lenses, elle est essentielle pour obtenir une approche par composant. >> L'id?e est de d?couper ton rendu en diff?rents composants ind?pendants qui ne se pr?occupe pas de conna?tre leur position dans la structure global de ton ?tat. >> >> Maintenant que je deviens fluent en Om/React , j'arrive ? produire des interfaces webs r?actives rapidement et simplement. >> Le code est vraiment maintenable si on prend bien garde ? bien s?parer les composants et qu'on les fait communiquer avec des channels core.async. >> >> Comme je compte l'utiliser en production d'ici deux mois je ferai un retour d'exp?rience. >> >> Sinon j'avais commenc? parall?lement ? regarder Hoplon/javelin qui est tr?s s?duisant aussi avec son approche spreadsheet. >> >> Pourquoi ne pas organiser un meetup clojure ? Lyon ? Ou bien venir faire une pr?sentation ? un meetup ami ? >> >> >> >> >> >> >> >> Le 23 mai 2014 09:47, Laurent PETIT a ?crit : >> Quel est ton ressenti sur Om ? >> >> Je ne l'ai pas utilis?, juste consult? la doc et suivi les ?changes sur la ml, et l'impression que ?a me donne, c'est qu'il para?t un peu "lourd", trop "frameworky", et avec des concepts quand m?me pas vraiment "secs" (la notion de curseur qui m?lange donn?es et chemin vers les donn?es). >> >> >> Le 23 mai 2014 09:02, Hiram MADELAINE a ?crit : >> >> Je regarde ?a ce matin vu que je suis en plein Om + Datomic. >> On pourrait se caler un meetup en Mai. >> >> Bonne journ?e >> >> Hiram >> >> >> Le 23 mai 2014 09:01, Arnaud Bailly a ?crit : >> >> Awesome ! comme disent les anglophones? >> >> Merci pour m?avoir fait r?v? ce matin. >> >> >> On 23 May 2014, at 00:42, Jonathan Winandy wrote: >> >>> Ahoy !! >>> >>> Cela a l'air plut?t bien !! Dans la m?me veine (mais sans Datomic derri?re) il y a http://gorilla-repl.org/ , qui est assez fou ! >>> >>> Jon >>> >>> >>> 2014-05-22 23:29 GMT+02:00 Gilles Philippart : >>> Bonsoir tout le monde, >>> >>> j'?tais en train de lire l'article tr?s int?ressant http://www.lighttable.com/2014/05/16/pain-we-forgot, et cela m'a fait d?couvrir le Wolfram Language, tr?s tr?s impressionnant. >>> Je me disais que c'?tait dommage qu'on n'ait pas ce genre d'interface aussi dynamique en Clojure puis j'ai vu cette video de Kovas Boguta. >>> Session est sur GitHub : https://github.com/kovasb/session >>> >>> Hiram, on pourrait peut-?tre faire joujou avec lors du prochain Meetup ? >>> >>> -- >>> Vous recevez ce message, car vous ?tes abonn? au groupe Google Groupes "clojure-fr". >>> Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail ? l'adresse clojure-fr+unsubscribe at googlegroups.com. >>> Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout. >>> >>> >>> -- >>> Vous recevez ce message, car vous ?tes abonn? au groupe Google Groupes "clojure-fr". >>> Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail ? l'adresse clojure-fr+unsubscribe at googlegroups.com. >>> Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout. >> >> >> >> >> -- >> Hiram MADELAINE >> Eloquent Logic >> 96, rue La Fayette 75010 Paris >> +33 6 11 51 37 71 >> >> -- >> Vous recevez ce message, car vous ?tes abonn? au groupe Google Groupes "clojure-fr". >> Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail ? l'adresse clojure-fr+unsubscribe at googlegroups.com. >> Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout. >> >> >> -- >> Vous recevez ce message, car vous ?tes abonn? au groupe Google Groupes "clojure-fr". >> Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail ? l'adresse clojure-fr+unsubscribe at googlegroups.com. >> Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout. >> >> >> >> -- >> Hiram MADELAINE >> Eloquent Logic >> 96, rue La Fayette 75010 Paris >> +33 6 11 51 37 71 >> >> -- >> Vous recevez ce message, car vous ?tes abonn? au groupe Google Groupes "clojure-fr". >> Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail ? l'adresse clojure-fr+unsubscribe at googlegroups.com. >> Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout. > > > _______________________________________________ > Haskell-fr mailing list > Haskell-fr at haskell.org > http://www.haskell.org/mailman/listinfo/haskell-fr > > > Bonjour, > > Justement, ce matin, entre Lyonnais, on se plaignais de l'absence de FPUG chez nous. > Ce qui s'en approche le plus serait le Scala User Group, mais comme son nom l'indique ?a reste tr?s orient? Scala. > Il faudrait peut-?tre faire un genre de sondage pour savoir combien de personne ?a int?resserait (je pense pouvoir en r?unir 4, moi inclus), afin de d?terminer si ?a vaut la peine ou non. > _______________________________________________ > Haskell-fr mailing list > Haskell-fr at haskell.org > http://www.haskell.org/mailman/listinfo/haskell-fr -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 496 bytes Desc: Message signed with OpenPGP using GPGMail URL: From gautier.difolco at gmail.com Fri May 23 10:25:45 2014 From: gautier.difolco at gmail.com (Gautier DI FOLCO) Date: Fri, 23 May 2014 12:25:45 +0200 Subject: [Haskell-fr] Wolfram + Clojure = Session In-Reply-To: References: <12c85791-09f3-46cb-aec2-5be2c67cdda3@googlegroups.com> <8EB6AF86-7DF2-4027-B137-ACD2AEE9261C@gmail.com> <18B49289-B6E0-4F36-8ADD-BF7F099732F6@gmail.com> Message-ID: Le 23 mai 2014 11:43, Arnaud Bailly a ?crit : > Ce serait pas mal si avec la technologie du XXI?me si?cle on organisait un > meetup r?parti. ?a doit pas ?tre impossible de diffuser un hangout entre > deux-trois villes. Nous avons un groupe FP ? Nantes mais il n?est pas > hyper-actif non plus? Si on est 6 ? Nantes, 10 ? Lyon, 15 ? Paris, 8 ? > Lille? ?a mutualise, on peut en faire plus souvent?. > > Arnaud > > On 23 May 2014, at 11:32, Gautier DI FOLCO > wrote: > > Le 23 mai 2014 10:35, Arnaud Bailly a ?crit : > >> Je crois qu?un meetup Functional Programming est pr?vu en juillet sur >> Paris, ce pourrait ?tre une bonne occasion. >> >> Arnaud >> >> On 23 May 2014, at 10:32, Hiram MADELAINE >> wrote: >> >> Je manipule Om depuis D?cembre et je dois dire que je suis tr?s content. >> Il n'a pas la lourdeur d'un framework car ce qu'il propose est juste une >> fine couche au dessus de React (qui se veut aussi minimaliste). >> La notion de cursor s'apparente aux Zippers et Lenses, elle est >> essentielle pour obtenir une approche par composant. >> L'id?e est de d?couper ton rendu en diff?rents composants ind?pendants >> qui ne se pr?occupe pas de conna?tre leur position dans la structure global >> de ton ?tat. >> >> Maintenant que je deviens fluent en Om/React , j'arrive ? produire des >> interfaces webs r?actives rapidement et simplement. >> Le code est vraiment maintenable si on prend bien garde ? bien s?parer >> les composants et qu'on les fait communiquer avec des channels core.async. >> >> Comme je compte l'utiliser en production d'ici deux mois je ferai un >> retour d'exp?rience. >> >> Sinon j'avais commenc? parall?lement ? regarder Hoplon/javelin qui est >> tr?s s?duisant aussi avec son approche spreadsheet. >> >> Pourquoi ne pas organiser un meetup clojure ? Lyon ? Ou bien venir faire >> une pr?sentation ? un meetup ami ? >> >> >> >> >> >> >> >> Le 23 mai 2014 09:47, Laurent PETIT a ?crit : >> >>> Quel est ton ressenti sur Om ? >>> >>> Je ne l'ai pas utilis?, juste consult? la doc et suivi les ?changes sur >>> la ml, et l'impression que ?a me donne, c'est qu'il para?t un peu "lourd", >>> trop "frameworky", et avec des concepts quand m?me pas vraiment "secs" (la >>> notion de curseur qui m?lange donn?es et chemin vers les donn?es). >>> >>> >>> Le 23 mai 2014 09:02, Hiram MADELAINE a >>> ?crit : >>> >>> Je regarde ?a ce matin vu que je suis en plein Om + Datomic. >>>> On pourrait se caler un meetup en Mai. >>>> >>>> Bonne journ?e >>>> >>>> Hiram >>>> >>>> >>>> Le 23 mai 2014 09:01, Arnaud Bailly a ?crit : >>>> >>>> Awesome ! comme disent les anglophones? >>>>> >>>>> Merci pour m?avoir fait r?v? ce matin. >>>>> >>>>> >>>>> On 23 May 2014, at 00:42, Jonathan Winandy >>>>> wrote: >>>>> >>>>> Ahoy !! >>>>> >>>>> Cela a l'air plut?t bien !! Dans la m?me veine (mais sans Datomic >>>>> derri?re) il y a http://gorilla-repl.org/ , qui est assez fou ! >>>>> >>>>> Jon >>>>> >>>>> >>>>> 2014-05-22 23:29 GMT+02:00 Gilles Philippart < >>>>> gilles.philippart at gmail.com>: >>>>> >>>>>> Bonsoir tout le monde, >>>>>> >>>>>> j'?tais en train de lire l'article tr?s int?ressant >>>>>> http://www.lighttable.com/2014/05/16/pain-we-forgot, et cela m'a >>>>>> fait d?couvrir le Wolfram Language, >>>>>> tr?s tr?s impressionnant. >>>>>> Je me disais que c'?tait dommage qu'on n'ait pas ce genre d'interface >>>>>> aussi dynamique en Clojure puis j'ai vu cette video deKovas Boguta. >>>>>> Session est sur GitHub : https://github.com/kovasb/session >>>>>> >>>>>> Hiram, on pourrait peut-?tre faire joujou avec lors du prochain >>>>>> Meetup ? >>>>>> >>>>>> -- >>>>>> Vous recevez ce message, car vous ?tes abonn? au groupe >>>>>> Google Groupes "clojure-fr". >>>>>> Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le >>>>>> concernant, envoyez un e-mail ? l'adresse >>>>>> clojure-fr+unsubscribe at googlegroups.com. >>>>>> Pour obtenir davantage d'options, consultez la page >>>>>> https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> >>>>> -- >>>>> Vous recevez ce message, car vous ?tes abonn? au groupe Google Groupes >>>>> "clojure-fr". >>>>> Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le >>>>> concernant, envoyez un e-mail ? l'adresse >>>>> clojure-fr+unsubscribe at googlegroups.com. >>>>> Pour obtenir davantage d'options, consultez la page >>>>> https://groups.google.com/d/optout. >>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> Hiram MADELAINE >>>> Eloquent Logic >>>> 96, rue La Fayette 75010 Paris >>>> +33 6 11 51 37 71 >>>> >>>> -- >>>> Vous recevez ce message, car vous ?tes abonn? au groupe Google Groupes >>>> "clojure-fr". >>>> Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le >>>> concernant, envoyez un e-mail ? l'adresse >>>> clojure-fr+unsubscribe at googlegroups.com. >>>> Pour obtenir davantage d'options, consultez la page >>>> https://groups.google.com/d/optout. >>>> >>> >>> >>> -- >>> Vous recevez ce message, car vous ?tes abonn? au groupe Google Groupes >>> "clojure-fr". >>> Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le >>> concernant, envoyez un e-mail ? l'adresse >>> clojure-fr+unsubscribe at googlegroups.com. >>> Pour obtenir davantage d'options, consultez la page >>> https://groups.google.com/d/optout. >>> >> >> >> >> -- >> Hiram MADELAINE >> Eloquent Logic >> 96, rue La Fayette 75010 Paris >> +33 6 11 51 37 71 >> >> -- >> Vous recevez ce message, car vous ?tes abonn? au groupe Google Groupes >> "clojure-fr". >> Pour vous d?sabonner de ce groupe et ne plus recevoir d'e-mails le >> concernant, envoyez un e-mail ? l'adresse >> clojure-fr+unsubscribe at googlegroups.com. >> Pour obtenir davantage d'options, consultez la page >> https://groups.google.com/d/optout. >> >> >> >> _______________________________________________ >> Haskell-fr mailing list >> Haskell-fr at haskell.org >> http://www.haskell.org/mailman/listinfo/haskell-fr >> >> > Bonjour, > > Justement, ce matin, entre Lyonnais, on se plaignais de l'absence de FPUG > chez nous. > Ce qui s'en approche le plus serait le Scala User Group, mais comme son > nom l'indique ?a reste tr?s orient? Scala. > Il faudrait peut-?tre faire un genre de sondage pour savoir combien de > personne ?a int?resserait (je pense pouvoir en r?unir 4, moi inclus), afin > de d?terminer si ?a vaut la peine ou non. > _______________________________________________ > 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 > > J'y ai pens? en voyant ton billet, ?a me tente bien. -------------- next part -------------- An HTML attachment was scrubbed... URL: From gautier.difolco at gmail.com Sat May 24 18:03:16 2014 From: gautier.difolco at gmail.com (Gautier DI FOLCO) Date: Sat, 24 May 2014 20:03:16 +0200 Subject: [Haskell-fr] =?utf-8?q?Fw=3A_=C3=89claircissements_sur_les_monade?= =?utf-8?q?s?= In-Reply-To: <45572518-8839-49AF-B1F9-D876882F2528@gmail.com> References: <1395896865.54526.YahooMailNeo@web162402.mail.bf1.yahoo.com> <5378A96A.1080207@banquise.net> <45572518-8839-49AF-B1F9-D876882F2528@gmail.com> Message-ID: Le 18 mai 2014 15:27, Arnaud Bailly a ?crit : > Je plussoie sur le cours NICTA que j?ai d?couvert r?cemment. > > Tony Morris est un g?nie, dommage que ce soit aussi un connard. > > On 18 May 2014, at 15:20, Gautier DI FOLCO > wrote: > > Le 18 mai 2014 14:36, Simon Marechal a ?crit : > >> On 05/18/2014 12:04 PM, Gautier DI FOLCO wrote: >> > Merci par avance pour vos r?ponses et votre patience. >> >> A mon avis, le plus efficace pour vraiment comprendre ce qu'il se passe, >> c'est de d?sucrer le code ? la main. Pour moi le truc qui m'a vraiment >> permis d'avancer ?a a ?t? d'?crire "State" et "Maybe" moi m?me, juste en >> suivant les types, puis de faire "StateT" et "MaybeT". >> >> Il y a ce "cours", qui est en fait une succession d'exercices, qui je >> pense est excellent : >> >> https://github.com/NICTA/course >> > > ?a a l'air g?nial ce d?p?t, merci. > _______________________________________________ > 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 > > Je suis de retour... Je suis sur le cours de NICTA et je suis sur la d?finition de l'instance Apply de State. Voil? ? quoi j'arrive : State f <*> State g = State $ \x -> let (a, b) = g x in let (c, d) = f b in (c a, d) Ce qui n'est pas tr?s ?loign? de la solution ( https://github.com/tonymorris/course/blob/master/src/Course/State.hs#L45) : instance Apply (State s) where State f <*> State a = State (\s -> let (g, t) = f s (z, u) = a t in (g z, u)) Si je les met c?te ? c?te : State f <*> State g = State $ \x -> let (a, b) = g x in let (c, d) = f b in (c a, d) State f <*> State g = State $ \x -> let (c, d) = f x in let (a, b) = g d in (c a, b) Et l?, je suis troubl?... J'inverse l'?valuation de f et de g et ?a continue de fonctionner (selon les tests et 2-3 cas fait ? la main). J'ai trois questions : 1. Est-ce que j'ai bon ? 2. Si oui, pourquoi en g?n?ral on fait plus comme la solution ? 3. Si oui (1), pourquoi est-ce que les deux sont ?quivalents ? Merci par avance. -------------- next part -------------- An HTML attachment was scrubbed... URL: From valentin.robert.42 at gmail.com Sat May 24 18:22:08 2014 From: valentin.robert.42 at gmail.com (Valentin Robert) Date: Sat, 24 May 2014 11:22:08 -0700 Subject: [Haskell-fr] =?utf-8?q?Fw=3A_=C3=89claircissements_sur_les_monade?= =?utf-8?q?s?= In-Reply-To: References: <1395896865.54526.YahooMailNeo@web162402.mail.bf1.yahoo.com> <5378A96A.1080207@banquise.net> <45572518-8839-49AF-B1F9-D876882F2528@gmail.com> Message-ID: As-tu test? avec des fonctions f et g qui ne commutent pas ? - Valentin 2014-05-24 11:03 GMT-07:00 Gautier DI FOLCO : > Le 18 mai 2014 15:27, Arnaud Bailly a ?crit : > > Je plussoie sur le cours NICTA que j?ai d?couvert r?cemment. >> >> Tony Morris est un g?nie, dommage que ce soit aussi un connard. >> >> On 18 May 2014, at 15:20, Gautier DI FOLCO >> wrote: >> >> Le 18 mai 2014 14:36, Simon Marechal a ?crit : >> >>> On 05/18/2014 12:04 PM, Gautier DI FOLCO wrote: >>> > Merci par avance pour vos r?ponses et votre patience. >>> >>> A mon avis, le plus efficace pour vraiment comprendre ce qu'il se passe, >>> c'est de d?sucrer le code ? la main. Pour moi le truc qui m'a vraiment >>> permis d'avancer ?a a ?t? d'?crire "State" et "Maybe" moi m?me, juste en >>> suivant les types, puis de faire "StateT" et "MaybeT". >>> >>> Il y a ce "cours", qui est en fait une succession d'exercices, qui je >>> pense est excellent : >>> >>> https://github.com/NICTA/course >>> >> >> ?a a l'air g?nial ce d?p?t, merci. >> _______________________________________________ >> 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 >> >> > Je suis de retour... > > Je suis sur le cours de NICTA et je suis sur la d?finition de l'instance > Apply de State. > Voil? ? quoi j'arrive : > State f <*> State g = State $ \x -> let (a, b) = g x in let (c, d) = f b > in (c a, d) > > Ce qui n'est pas tr?s ?loign? de la solution ( > https://github.com/tonymorris/course/blob/master/src/Course/State.hs#L45) > : > > instance Apply (State s) where > State f <*> State a = > State (\s -> let (g, t) = f s > (z, u) = a t > in (g z, u)) > > Si je les met c?te ? c?te : > State f <*> State g = State $ \x -> let (a, b) = g x in let (c, d) = f b > in (c a, d) > State f <*> State g = State $ \x -> let (c, d) = f x in let (a, b) = g d > in (c a, b) > > Et l?, je suis troubl?... > J'inverse l'?valuation de f et de g et ?a continue de fonctionner (selon > les tests et 2-3 cas fait ? la main). > > J'ai trois questions : > 1. Est-ce que j'ai bon ? > 2. Si oui, pourquoi en g?n?ral on fait plus comme la solution ? > 3. Si oui (1), pourquoi est-ce que les deux sont ?quivalents ? > > Merci par avance. > > _______________________________________________ > Haskell-fr mailing list > Haskell-fr at haskell.org > http://www.haskell.org/mailman/listinfo/haskell-fr > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From gautier.difolco at gmail.com Sat May 24 18:49:03 2014 From: gautier.difolco at gmail.com (Gautier DI FOLCO) Date: Sat, 24 May 2014 20:49:03 +0200 Subject: [Haskell-fr] =?utf-8?q?Fw=3A_=C3=89claircissements_sur_les_monade?= =?utf-8?q?s?= In-Reply-To: References: <1395896865.54526.YahooMailNeo@web162402.mail.bf1.yahoo.com> <5378A96A.1080207@banquise.net> <45572518-8839-49AF-B1F9-D876882F2528@gmail.com> Message-ID: Le 24 mai 2014 20:22, Valentin Robert a ?crit : > As-tu test? avec des fonctions f et g qui ne commutent pas ? > J'ai tent? ?a : runState (pure (-) <*> pure 4 <*> pure 2) 7 -------------- next part -------------- An HTML attachment was scrubbed... URL: From simon at banquise.net Sat May 24 18:53:43 2014 From: simon at banquise.net (Simon Marechal) Date: Sat, 24 May 2014 20:53:43 +0200 Subject: [Haskell-fr] =?iso-8859-1?q?Fw=3A_=C9claircissements_sur_les_mona?= =?iso-8859-1?q?des?= In-Reply-To: References: <1395896865.54526.YahooMailNeo@web162402.mail.bf1.yahoo.com> <5378A96A.1080207@banquise.net> <45572518-8839-49AF-B1F9-D876882F2528@gmail.com> Message-ID: <5380EAB7.4070608@banquise.net> On 05/24/2014 08:49 PM, Gautier DI FOLCO wrote: > Le 24 mai 2014 20:22, Valentin Robert > a ?crit : > > As-tu test? avec des fonctions f et g qui ne commutent pas ? > > > J'ai tent? ?a : > runState (pure (-) <*> pure 4 <*> pure 2) 7 Essaie plut?t avec quelque chose qui manipule l'?tat ! From simon at banquise.net Sat May 24 19:01:21 2014 From: simon at banquise.net (Simon Marechal) Date: Sat, 24 May 2014 21:01:21 +0200 Subject: [Haskell-fr] =?iso-8859-1?q?Fw=3A_=C9claircissements_sur_les_mona?= =?iso-8859-1?q?des?= In-Reply-To: References: <1395896865.54526.YahooMailNeo@web162402.mail.bf1.yahoo.com> <5378A96A.1080207@banquise.net> <45572518-8839-49AF-B1F9-D876882F2528@gmail.com> Message-ID: <5380EC81.3090309@banquise.net> On 05/24/2014 08:49 PM, Gautier DI FOLCO wrote: > > J'ai tent? ?a : > runState (pure (-) <*> pure 4 <*> pure 2) 7 State f `ap1` State g = State $ \x -> let (a, b) = g x in let (c, d) = f b in (c a, d) State f `ap2` State g = State $ \x -> let (c, d) = f x in let (a, b) = g d in (c a, b) *Xxxx> runState (pure (,) `ap2` put 4 `ap2` put 7) 0 (((),()),7) *Xxxx> runState (pure (,) `ap1` put 4 `ap1` put 7) 0 (((),()),4) From gautier.difolco at gmail.com Sat May 24 19:06:53 2014 From: gautier.difolco at gmail.com (Gautier DI FOLCO) Date: Sat, 24 May 2014 21:06:53 +0200 Subject: [Haskell-fr] =?utf-8?q?Fw=3A_=C3=89claircissements_sur_les_monade?= =?utf-8?q?s?= In-Reply-To: <5380EC81.3090309@banquise.net> References: <1395896865.54526.YahooMailNeo@web162402.mail.bf1.yahoo.com> <5378A96A.1080207@banquise.net> <45572518-8839-49AF-B1F9-D876882F2528@gmail.com> <5380EC81.3090309@banquise.net> Message-ID: 2014-05-24 21:01 GMT+02:00 Simon Marechal : > On 05/24/2014 08:49 PM, Gautier DI FOLCO wrote: > > > > J'ai tent? ?a : > > runState (pure (-) <*> pure 4 <*> pure 2) 7 > > State f `ap1` State g = State $ \x -> let (a, b) = g x in let (c, d) = f > b in (c a, d) > State f `ap2` State g = State $ \x -> let (c, d) = f x in let (a, b) = g > d in (c a, b) > > *Xxxx> runState (pure (,) `ap2` put 4 `ap2` put 7) 0 > (((),()),7) > *Xxxx> runState (pure (,) `ap1` put 4 `ap1` put 7) 0 > (((),()),4) > > _______________________________________________ > Haskell-fr mailing list > Haskell-fr at haskell.org > http://www.haskell.org/mailman/listinfo/haskell-fr > ok, je suis suis vautr?, j'aime mieux ?a ^^ Merci. -------------- next part -------------- An HTML attachment was scrubbed... URL: