<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://cygal.info/blog/index.php/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Dissidents - fonctionnel</title>
  <link>http://cygal.info/blog/index.php/</link>
  <description></description>
  <language>fr</language>
  <pubDate>Tue, 01 Apr 2008 21:56:24 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Prologin</title>
    <link>http://cygal.info/blog/index.php/post/Prologin</link>
    <guid isPermaLink="false">urn:md5:6720c3405e399f64b95b90ddede8ef1b</guid>
    <pubDate>Wed, 24 Oct 2007 19:23:00 +0200</pubDate>
    <dc:creator>Dark-Side</dc:creator>
        <category>Divers</category>
        <category>fonctionnel</category><category>sex</category>    
    <description>    &lt;p&gt;&lt;img src=&quot;http://cygal.info/blog/public/sites/prologin2008.png&quot; alt=&quot;prologin&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bonjour, bonjour !&lt;br /&gt;
Je fais juste un petit billet histoire de dire que je suis pas mort :]&lt;br /&gt;
&lt;br /&gt;
Donc voilà pour ceux qui ne seraient pas encore au courant&amp;nbsp;: prologin 2008 a officiellement débuté le 16 Octobre 2007&lt;br /&gt;
Bon ce qu'il faut faire maintenant c'est convaincre Pou de participer !!!&lt;br /&gt;
Donc voilà j'interpelle l'hypothétique visiteur de ce blog afin qu'il incite Pou à participer à prologin, de sorte que son commentaire (dont l'existance est encore moins probable) ne soit pas totalement inutile et naze et tout ce que vous voulez §§§&lt;br /&gt;
&lt;br /&gt;
Au revoir&amp;nbsp;! o/&lt;/p&gt;</description>
    
    
    
          <comments>http://cygal.info/blog/index.php/post/Prologin#comment-form</comments>
      <wfw:comment>http://cygal.info/blog/index.php/post/Prologin#comment-form</wfw:comment>
      <wfw:commentRss>http://cygal.info/blog/index.php/feed/rss2/comments/40</wfw:commentRss>
      </item>
    
  <item>
    <title>Debout les gars, réveillez-vous !</title>
    <link>http://cygal.info/blog/index.php/post/Debout-les-gars-reveillez-vous</link>
    <guid isPermaLink="false">urn:md5:b697ea589dc1e5c026862ac062ad70f7</guid>
    <pubDate>Mon, 02 Jul 2007 07:23:00 +0000</pubDate>
    <dc:creator>Poulet</dc:creator>
        <category>Script</category>
        <category>fonctionnel</category><category>python</category>    
    <description>&lt;p&gt;Salut les poulpes. &lt;q&gt;Ouaaaaais !&lt;/q&gt; firent les poulpes.&lt;/p&gt;


&lt;p&gt;Comme vous êtes un peu morts ces jours-ci, un petit truc pour vous détendre les zygomatiques, à vous, oui, vous qui ne pratiquez pas des langages pseudo-fonctionnels, mais des vrais langages de mâles.&lt;/p&gt;    &lt;p&gt;Dans un langage normal, disons, &quot;sympa&quot;, on aurait ça&amp;nbsp;: &lt;code&gt;let sommelong = map length&lt;/code&gt;. C'est lisible (sous réserve d'un peu d'habitude peut-être), c'est efficace. Après, on rigole bien, on a une fonction de type &lt;code&gt;[[a]] -&amp;gt; [Int]&lt;/code&gt;, on peut écrire &lt;code&gt;sommelong [[1, 2, 3], [3,4]]&lt;/code&gt; aussi bien que &lt;code&gt;sommelong [&quot;Foo&quot;, &quot;BarBarBar&quot;]&lt;/code&gt;, ce qui est totalement inutile (ça prouve bien que mon exemple est à chier), mais c'est bien et tout. Pour les étrangers incultes et barbares, c'est une application partielle&amp;nbsp;: map est de type &lt;code&gt;(a -&amp;gt; b) -&amp;gt; [a] -&amp;gt; [b]&lt;/code&gt;, c'est à dire que son premier argument est une fonction prenant un type a quelconque (enfin, je crois) et renvoyant un type b tout aussi quelconque (même pas forcément le même). Or si on écrit &lt;code&gt;map length&lt;/code&gt; (comme on l'a fait juste au début, ça n'est pas un hasard), on crée une nouvelle valeur fonctionnelle qui correspond à un map dont le premier argument est length - cependant cette valeur fonctionnelle est directement utilisable comme fonction. On peut donc lui nommer un nom (comme on a fait) et l'appliquer après à des listes (comme on a fait aussi), genre &lt;code&gt;sommelong uneliste&lt;/code&gt;. C'est comme si l'on avait fait &lt;code&gt;map length uneliste&lt;/code&gt;.&lt;/p&gt;


&lt;p&gt;Dans un langage moins sympa (zB. Python) mais qui essaye de se faire des potes poulpes (&lt;q&gt;Ouaaaaais !&lt;/q&gt;), on est bien emmerdé, parce que&amp;nbsp;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;On a bien une fonction map, qui prend en argument une fonction et une liste (en fait, &quot;pas seulement&quot;, mais compliquons pas, tfaçon ça marche).&lt;/li&gt;
&lt;li&gt;On a bien une fonction len, qui sert à calculer la longueur d'une séquence^W liste.&lt;/li&gt;
&lt;li&gt;Mais on sait pas comment combiner les deux.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;On pourrait faire une fonction chiante qui se tape ce rôle, mais ça sert à rien que je le fasse puisque la doc officielle donne de toute façon le code correspondant. Moi, je voulais juste vous dire que ça existe, sous le nom de functools.partial dans Python 2.5&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
&amp;gt;&amp;gt;&amp;gt; import functools
&amp;gt;&amp;gt;&amp;gt; sommelong = functools.partial(map, len)
&amp;gt;&amp;gt;&amp;gt; sommelong([[1,2,3], &amp;quot;foo&amp;quot;])
[3, 3]
&lt;/pre&gt;

&lt;p&gt;L'exemple est toujours foireux, mais vous êtes cultivé (ou hilare, ce qui est bien aussi).&lt;/p&gt;


&lt;p&gt;Voici donc &lt;a href=&quot;http://docs.python.org/lib/module-functools.html&quot; hreflang=&quot;en&quot;&gt;la page officielle de functools&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;C'est puissant.&lt;/p&gt;</description>
    
    
    
          <comments>http://cygal.info/blog/index.php/post/Debout-les-gars-reveillez-vous#comment-form</comments>
      <wfw:comment>http://cygal.info/blog/index.php/post/Debout-les-gars-reveillez-vous#comment-form</wfw:comment>
      <wfw:commentRss>http://cygal.info/blog/index.php/feed/rss2/comments/28</wfw:commentRss>
      </item>
    
</channel>
</rss>