<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:podcast="https://podcastindex.org/namespace/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>tuto_fonctionnel</title>
        <link>https://tube.fede.re/c/tuto_fonctionnel@peertube.fr/videos</link>
        <description>https://nokomprendo.frama.io/tuto_fonctionnel/index.html</description>
        <lastBuildDate>Tue, 20 Oct 2026 18:04:37 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>PeerTube - https://tube.fede.re</generator>
        <image>
            <title>tuto_fonctionnel</title>
            <url>https://tube.fede.re/client/assets/images/icons/icon-1500x1500.png</url>
            <link>https://tube.fede.re/c/tuto_fonctionnel@peertube.fr/videos</link>
        </image>
        <copyright>All rights reserved, unless otherwise specified in the terms specified at https://tube.fede.re/about and potential licenses granted by each content's rightholder.</copyright>
        <atom:link href="https://tube.fede.re/feeds/videos.xml?videoChannelId=406" rel="self" type="application/rss+xml"/>
        <podcast:txt purpose="p20url">https://tube.fede.re/feeds/podcast/videos.xml?videoChannelId=406</podcast:txt>
        <item>
            <title><![CDATA[IA de jeux, Conclusion]]></title>
            <link>https://tube.fede.re/w/ik14QqdAkPgu65qcbVM3xA</link>
            <guid>https://tube.fede.re/w/ik14QqdAkPgu65qcbVM3xA</guid>
            <pubDate>Sun, 25 Jul 2021 16:04:15 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_073/2021-05-23-fr-README.html Cet article conclut la série consacrée à l’implémentation d’un jeu de Puissance 4 et de quelques Intelligences Artificielles, en C++ et en Haskell. Il résume les points abordé...]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_073/2021-05-23-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_073/2021-05-23-fr-README.html</a><br />
Cet article conclut la série consacrée à l’implémentation d’un jeu de Puissance 4 et de quelques Intelligences Artificielles, en C++ et en Haskell. Il résume les points abordés et compare les implémentations réalisés dans ces deux langages.</p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="14210559" type="video/mp4" url="https://tube.fede.re/download/videos/generate/8c528793-9803-4786-aa13-acda829125c8?videoFileIds=2793238"/>
            <media:community>
                <media:statistics views="11"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/ik14QqdAkPgu65qcbVM3xA"/>
            <media:player url="https://tube.fede.re/w/ik14QqdAkPgu65qcbVM3xA"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/25bce41f-c436-4116-9f87-8142240c1a3e-720.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/6cb13b8b-4c5f-4915-9976-5bccbac2604f-480.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/2426c885-aed0-42b7-a0d0-119dda3002bb-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/27f9e32f-f182-4fa0-9ad8-e5b4b1396b28-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="720" fileSize="14210559" url="https://peertube.fr/static/web-videos/8c528793-9803-4786-aa13-acda829125c8-720.mp4" framerate="30" duration="296" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="480" fileSize="11933288" url="https://peertube.fr/static/web-videos/8c528793-9803-4786-aa13-acda829125c8-480.mp4" framerate="30" duration="296" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="9944282" url="https://peertube.fr/static/web-videos/8c528793-9803-4786-aa13-acda829125c8-360.mp4" framerate="30" duration="296" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="7625889" url="https://peertube.fr/static/web-videos/8c528793-9803-4786-aa13-acda829125c8-240.mp4" framerate="30" duration="296" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/5bf01176-74fb-4031-9f1d-b72b1fab8355.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/987879e8-c4d3-408f-9214-3f42aaca2f55.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">IA de jeux, Conclusion</media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_073/2021-05-23-fr-README.html Cet article conclut la série consacrée à l’implémentation d’un jeu de Puissance 4 et de quelques Intelligences Artificielles, en C++ et en Haskell. Il résume les points abordé...</media:description>
        </item>
        <item>
            <title><![CDATA[IA de jeux, Performances de code, en Haskell]]></title>
            <link>https://tube.fede.re/w/kpuPj62UMks8UYZDyiLKT9</link>
            <guid>https://tube.fede.re/w/kpuPj62UMks8UYZDyiLKT9</guid>
            <pubDate>Sat, 24 Jul 2021 13:52:49 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_072/2021-05-22-fr-README.html Cet article, de la série “IA de jeux”, aborde les performances d’exécution en Haskell. En effet, Haskell peut produire du code natif relativement rapide mais cela nécessite ...]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_072/2021-05-22-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_072/2021-05-22-fr-README.html</a></p>
<p>Cet article, de la série “IA de jeux”, aborde les performances d’exécution en Haskell. En effet, Haskell peut produire du code natif relativement rapide mais cela nécessite de comprendre certaines particularités du langage et du compilateur.</p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="86214397" type="video/mp4" url="https://tube.fede.re/download/videos/generate/9d257fe3-c21f-4420-ace0-640f76604b52?videoFileIds=2789572"/>
            <media:community>
                <media:statistics views="7"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/kpuPj62UMks8UYZDyiLKT9"/>
            <media:player url="https://tube.fede.re/w/kpuPj62UMks8UYZDyiLKT9"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/3c43fb47-13a0-4592-a0b6-e05bde65020d-720.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/4aba7e4c-d456-44d7-bd82-e1de64a43608-480.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/5743cfb8-b5ee-4273-9a01-987521485745-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/56835fc8-2025-433f-a7a5-68132e866cf8-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="720" fileSize="86214397" url="https://peertube.fr/static/web-videos/9d257fe3-c21f-4420-ace0-640f76604b52-720.mp4" framerate="30" duration="1580" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="480" fileSize="74315837" url="https://peertube.fr/static/web-videos/9d257fe3-c21f-4420-ace0-640f76604b52-480.mp4" framerate="30" duration="1580" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="59488359" url="https://peertube.fr/static/web-videos/9d257fe3-c21f-4420-ace0-640f76604b52-360.mp4" framerate="30" duration="1580" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="44129616" url="https://peertube.fr/static/web-videos/9d257fe3-c21f-4420-ace0-640f76604b52-240.mp4" framerate="30" duration="1580" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/914d9332-1947-43bd-ba5f-b692f5d28faf.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/40c1fc45-3b8f-4cdd-9d30-9860e27d572b.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">IA de jeux, Performances de code, en Haskell</media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_072/2021-05-22-fr-README.html Cet article, de la série “IA de jeux”, aborde les performances d’exécution en Haskell. En effet, Haskell peut produire du code natif relativement rapide mais cela nécessite ...</media:description>
        </item>
        <item>
            <title><![CDATA[IA de jeux, Implémenter une IA arborescente, en Haskell]]></title>
            <link>https://tube.fede.re/w/9Kse1BMWtAjqUnrxdt6f1v</link>
            <guid>https://tube.fede.re/w/9Kse1BMWtAjqUnrxdt6f1v</guid>
            <pubDate>Sat, 17 Jul 2021 07:47:58 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_071/2021-05-21-fr-README.html Cet article, de la série “IA de jeux”, présente une implémentation de l’algorithme Monte-Carlo Tree Search, en Haskell, pour le jeu Puissance 4. Cette implémentation est ens...]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_071/2021-05-21-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_071/2021-05-21-fr-README.html</a></p>
<p>Cet article, de la série “IA de jeux”, présente une implémentation de l’algorithme Monte-Carlo Tree Search, en Haskell, pour le jeu Puissance 4. Cette implémentation est ensuite comparée aux IA de l’article précédent (random et Monte-Carlo).</p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="67105489" type="video/mp4" url="https://tube.fede.re/download/videos/generate/46da40b1-16f9-4947-9861-d2955aacd44d?videoFileIds=2792707"/>
            <media:community>
                <media:statistics views="9"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/9Kse1BMWtAjqUnrxdt6f1v"/>
            <media:player url="https://tube.fede.re/w/9Kse1BMWtAjqUnrxdt6f1v"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/e6f05acf-7ef9-4999-82f7-85b710051e8a-720.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/28063b04-1c6f-4bd4-877c-998262932bba-480.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/25b480b5-76d4-4558-b4d1-37a8c16f0a04-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/d8cff0fa-37ae-423d-a6b7-206c7ef2cd92-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="720" fileSize="67105489" url="https://peertube.fr/static/web-videos/46da40b1-16f9-4947-9861-d2955aacd44d-720.mp4" framerate="30" duration="1533" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="480" fileSize="61420991" url="https://peertube.fr/static/web-videos/46da40b1-16f9-4947-9861-d2955aacd44d-480.mp4" framerate="30" duration="1533" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="50629583" url="https://peertube.fr/static/web-videos/46da40b1-16f9-4947-9861-d2955aacd44d-360.mp4" framerate="30" duration="1533" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="39348510" url="https://peertube.fr/static/web-videos/46da40b1-16f9-4947-9861-d2955aacd44d-240.mp4" framerate="30" duration="1533" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/6cbd1d3e-0e55-41c5-93d5-bf0ed37b05ba.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/c33b606e-e4e2-4122-9fb9-c9418f9ed341.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">IA de jeux, Implémenter une IA arborescente, en Haskell</media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_071/2021-05-21-fr-README.html Cet article, de la série “IA de jeux”, présente une implémentation de l’algorithme Monte-Carlo Tree Search, en Haskell, pour le jeu Puissance 4. Cette implémentation est ens...</media:description>
        </item>
        <item>
            <title><![CDATA[IA de jeux, Implémenter une IA basique, en Haskell]]></title>
            <link>https://tube.fede.re/w/67nMZubrtwkQ5C45YpNrXb</link>
            <guid>https://tube.fede.re/w/67nMZubrtwkQ5C45YpNrXb</guid>
            <pubDate>Sat, 03 Jul 2021 07:30:23 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_070/2021-05-20-fr-README.html Cet article, de la série “IA de jeux”, aborde la mise en place d’une intelligence artificielle, en Haskell : bots simples, comparaison, interface utilisateur. Pour cela, on ...]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_070/2021-05-20-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_070/2021-05-20-fr-README.html</a></p>
<p>Cet article, de la série “IA de jeux”, aborde la mise en place d’une intelligence artificielle, en Haskell : bots simples, comparaison, interface utilisateur. Pour cela, on réutilisera le jeu de Puissance 4 présenté dans l’article précédent. Une IA plus évoluée sera présentée dans le prochain article.</p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="59235074" type="video/mp4" url="https://tube.fede.re/download/videos/generate/29619617-f33e-448d-8a68-c1528b926c24?videoFileIds=2788429"/>
            <media:community>
                <media:statistics views="8"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/67nMZubrtwkQ5C45YpNrXb"/>
            <media:player url="https://tube.fede.re/w/67nMZubrtwkQ5C45YpNrXb"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/bf994ecb-9029-4d2b-81c3-e2b06a01954e-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/6f6f6c12-b51b-43d3-ba9b-66f6f5b087ed-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="59235074" url="https://peertube.fr/static/web-videos/29619617-f33e-448d-8a68-c1528b926c24-360.mp4" framerate="30" duration="2793" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="62702690" url="https://peertube.fr/static/web-videos/29619617-f33e-448d-8a68-c1528b926c24-240.mp4" framerate="30" duration="2793" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/32f5788a-9ea0-4419-a6f2-94d14ae62699.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/0c91e921-9e44-488b-92ad-1d8d86b76843.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">IA de jeux, Implémenter une IA basique, en Haskell</media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_070/2021-05-20-fr-README.html Cet article, de la série “IA de jeux”, aborde la mise en place d’une intelligence artificielle, en Haskell : bots simples, comparaison, interface utilisateur. Pour cela, on ...</media:description>
        </item>
        <item>
            <title><![CDATA[IA de jeux, Implémenter un Puissance 4, en Haskell]]></title>
            <link>https://tube.fede.re/w/ef34XHumeTDZXDEhJKG19h</link>
            <guid>https://tube.fede.re/w/ef34XHumeTDZXDEhJKG19h</guid>
            <pubDate>Sun, 13 Jun 2021 14:59:37 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_069/2021-05-19-fr-README.html Cet article, de la série “IA de jeux”, aborde l’implémentation d’un Puissance 4, en Haskell. Afin de pouvoir comparer avec l’implémentation C++ des articles précédents, il p...]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_069/2021-05-19-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_069/2021-05-19-fr-README.html</a></p>
<p>Cet article, de la série “IA de jeux”, aborde l’implémentation d’un Puissance 4, en Haskell. Afin de pouvoir comparer avec l’implémentation C++ des articles précédents, il présente également quelques concepts et structures de données efficaces ainsi que les tests unitaires.</p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="112288905" type="video/mp4" url="https://tube.fede.re/download/videos/generate/6b3c7d6f-c34d-466f-84ac-9c323bf1c010?videoFileIds=2790191"/>
            <media:community>
                <media:statistics views="8"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/ef34XHumeTDZXDEhJKG19h"/>
            <media:player url="https://tube.fede.re/w/ef34XHumeTDZXDEhJKG19h"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/35fe0ba9-1bd7-4d92-8eca-00e4568d7588-720.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/fb44b702-dd1f-4481-a547-0b716d873f7e-480.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/b1160eb6-d274-404a-9621-0693a4c01b0a-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/c55f6919-be73-42de-a16a-ca07fbdb0e72-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="720" fileSize="112288905" url="https://peertube.fr/static/web-videos/6b3c7d6f-c34d-466f-84ac-9c323bf1c010-720.mp4" framerate="30" duration="2722" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="480" fileSize="103890221" url="https://peertube.fr/static/web-videos/6b3c7d6f-c34d-466f-84ac-9c323bf1c010-480.mp4" framerate="30" duration="2722" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="86994820" url="https://peertube.fr/static/web-videos/6b3c7d6f-c34d-466f-84ac-9c323bf1c010-360.mp4" framerate="30" duration="2722" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="68539897" url="https://peertube.fr/static/web-videos/6b3c7d6f-c34d-466f-84ac-9c323bf1c010-240.mp4" framerate="30" duration="2722" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/90a9517e-046c-4ef0-a40c-99d9b799a9d0.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/ac14e318-a97f-4e52-be21-980471e11ba1.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">IA de jeux, Implémenter un Puissance 4, en Haskell</media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_069/2021-05-19-fr-README.html Cet article, de la série “IA de jeux”, aborde l’implémentation d’un Puissance 4, en Haskell. Afin de pouvoir comparer avec l’implémentation C++ des articles précédents, il p...</media:description>
        </item>
        <item>
            <title><![CDATA[IA de jeux, Performances de code, en C++]]></title>
            <link>https://tube.fede.re/w/1G2Z4tJn53emxWd2jqVhLf</link>
            <guid>https://tube.fede.re/w/1G2Z4tJn53emxWd2jqVhLf</guid>
            <pubDate>Wed, 02 Jun 2021 12:09:59 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_068/2021-05-18-fr-README.html Cet article, de la série “IA de jeux”, présente et illustre quelques méthodes et outils qu’il peut être intéressant d’utiliser pour améliorer les performances d’un code (ou pa...]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_068/2021-05-18-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_068/2021-05-18-fr-README.html</a><br />
Cet article, de la série “IA de jeux”, présente et illustre quelques méthodes et outils qu’il peut être intéressant d’utiliser pour améliorer les performances d’un code (ou pas).</p>
<p>Voir également : <a href="https://www.youtube.com/watch?v=PPzT7ksmsL0" target="_blank" rel="noopener noreferrer">CPPFrUG 44 - Performance et optimisation - Clément Grégoire</a></p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="121028059" type="video/mp4" url="https://tube.fede.re/download/videos/generate/0596f92d-d4e3-48d9-a99b-1092f89f3d8e?videoFileIds=2825643"/>
            <media:community>
                <media:statistics views="5"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/1G2Z4tJn53emxWd2jqVhLf"/>
            <media:player url="https://tube.fede.re/w/1G2Z4tJn53emxWd2jqVhLf"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/0c2cc6de-eacb-4adc-9183-060e9dade6f2-768.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/30d3ee45-8698-4196-b8a8-6c3737b1db96-720.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/248c0d30-040a-4213-9f23-1dc3e9ff599a-480.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/ff68aaff-06c7-43b2-b050-7ce6d02baacc-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/785bb6ab-2cf8-489f-8ae3-fe870b2823b2-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="768" fileSize="121028059" url="https://peertube.fr/static/web-videos/0596f92d-d4e3-48d9-a99b-1092f89f3d8e-768.mp4" framerate="30" duration="1697" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="720" fileSize="138137751" url="https://peertube.fr/static/web-videos/0596f92d-d4e3-48d9-a99b-1092f89f3d8e-720.mp4" framerate="30" duration="1697" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="480" fileSize="106343788" url="https://peertube.fr/static/web-videos/0596f92d-d4e3-48d9-a99b-1092f89f3d8e-480.mp4" framerate="30" duration="1697" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="89681375" url="https://peertube.fr/static/web-videos/0596f92d-d4e3-48d9-a99b-1092f89f3d8e-360.mp4" framerate="30" duration="1697" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="73618379" url="https://peertube.fr/static/web-videos/0596f92d-d4e3-48d9-a99b-1092f89f3d8e-240.mp4" framerate="30" duration="1697" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/1f9f4c8e-170d-4837-940a-aa33eff27e7a.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/5d1aa568-8c84-43f6-b167-fe397f169c9b.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">IA de jeux, Performances de code, en C++</media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_068/2021-05-18-fr-README.html Cet article, de la série “IA de jeux”, présente et illustre quelques méthodes et outils qu’il peut être intéressant d’utiliser pour améliorer les performances d’un code (ou pa...</media:description>
        </item>
        <item>
            <title><![CDATA[IA de jeux, Implémenter une IA arborescente, en C++]]></title>
            <link>https://tube.fede.re/w/fNnAqqjpQJCTX4KHdkhY5n</link>
            <guid>https://tube.fede.re/w/fNnAqqjpQJCTX4KHdkhY5n</guid>
            <pubDate>Sun, 30 May 2021 16:22:02 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_067/2021-05-17-fr-README.html Cet article, de la série “IA de jeux”, présente l’algorithme de Monte-Carlo Tree Search, pour le jeu de Puissance 4. Il explique tout d’abord la notion d’arbre de jeux puis l’...]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_067/2021-05-17-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_067/2021-05-17-fr-README.html</a><br />
Cet article, de la série “IA de jeux”, présente l’algorithme de Monte-Carlo Tree Search, pour le jeu de Puissance 4. Il explique tout d’abord la notion d’arbre de jeux puis l’algorithme de MCTS. Enfin, il propose une implémentation en C++ et la compare aux IA présentées dans l’article précédent (Random, Monte-Carlo).</p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="120503675" type="video/mp4" url="https://tube.fede.re/download/videos/generate/77d9764c-9482-4144-b908-1174da1f67cd?videoFileIds=2783216"/>
            <media:community>
                <media:statistics views="8"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/fNnAqqjpQJCTX4KHdkhY5n"/>
            <media:player url="https://tube.fede.re/w/fNnAqqjpQJCTX4KHdkhY5n"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/d13c7a9d-c13b-4f09-a1a2-c446d772a1ef-768.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/27ea01ea-0354-47b7-ab7c-94f9ff9a672a-720.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/1f4d6162-6360-4e2f-b960-b470e404aefa-480.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/396c56de-53e1-4d01-8b25-7b8730bf22f5-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/2fcaefb7-200d-45ca-8b3a-3af54de92c00-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="768" fileSize="120503675" url="https://peertube.fr/static/web-videos/77d9764c-9482-4144-b908-1174da1f67cd-768.mp4" framerate="30" duration="1537" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="720" fileSize="129950234" url="https://peertube.fr/static/web-videos/77d9764c-9482-4144-b908-1174da1f67cd-720.mp4" framerate="30" duration="1537" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="480" fileSize="98571532" url="https://peertube.fr/static/web-videos/77d9764c-9482-4144-b908-1174da1f67cd-480.mp4" framerate="30" duration="1537" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="83510359" url="https://peertube.fr/static/web-videos/77d9764c-9482-4144-b908-1174da1f67cd-360.mp4" framerate="30" duration="1537" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="67865746" url="https://peertube.fr/static/web-videos/77d9764c-9482-4144-b908-1174da1f67cd-240.mp4" framerate="30" duration="1537" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/ca008a37-754a-45f2-8d6d-37968fce2dc1.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/46292f12-3b77-4b4f-87a1-3f2e66f05246.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">IA de jeux, Implémenter une IA arborescente, en C++</media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_067/2021-05-17-fr-README.html Cet article, de la série “IA de jeux”, présente l’algorithme de Monte-Carlo Tree Search, pour le jeu de Puissance 4. Il explique tout d’abord la notion d’arbre de jeux puis l’...</media:description>
        </item>
        <item>
            <title><![CDATA[IA de jeux, Implémenter une IA basique, en C++]]></title>
            <link>https://tube.fede.re/w/3K3hMkmhPYZ4mRjknyuMwH</link>
            <guid>https://tube.fede.re/w/3K3hMkmhPYZ4mRjknyuMwH</guid>
            <pubDate>Sun, 30 May 2021 09:10:45 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_066/2021-05-16-fr-README.html Cet article, de la série “IA de jeux”, aborde la mise en place d’une intelligence artificielle. Il se base sur le jeu de Puissance 4 implémenté dans l’article précédent mais...]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_066/2021-05-16-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_066/2021-05-16-fr-README.html</a></p>
<p>Cet article, de la série “IA de jeux”, aborde la mise en place d’une intelligence artificielle. Il se base sur le jeu de Puissance 4 implémenté dans l’article précédent mais doit pouvoir s’appliquer facilement à d’autres jeux ou implémentations. Enfin, seules quelques IA simples sont présentées ici, ainsi que leur utilisation dans une interface utilisateur ou dans un programme de comparaison. Une IA plus évoluée sera détaillée dans le prochain article.</p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="248078257" type="video/mp4" url="https://tube.fede.re/download/videos/generate/1634ab97-c803-4e5d-a4ba-8e20dc5f9b89?videoFileIds=2709735"/>
            <media:community>
                <media:statistics views="10"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/3K3hMkmhPYZ4mRjknyuMwH"/>
            <media:player url="https://tube.fede.re/w/3K3hMkmhPYZ4mRjknyuMwH"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/05d6b525-9fa5-4c80-b86c-7437f16002e4-768.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/a0398985-6b65-47a1-ac91-684078d25167-720.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/865d7fc0-2c52-40d8-9bc2-5d6882babfa1-480.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/ec49d864-b9ea-4984-bfbc-e9ccf465253b-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/18008f40-2866-4748-9006-f6207b2ca0ac-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="768" fileSize="248078257" url="https://peertube.fr/static/web-videos/1634ab97-c803-4e5d-a4ba-8e20dc5f9b89-768.mp4" framerate="30" duration="3574" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="720" fileSize="284656004" url="https://peertube.fr/static/web-videos/1634ab97-c803-4e5d-a4ba-8e20dc5f9b89-720.mp4" framerate="30" duration="3574" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="480" fileSize="216990099" url="https://peertube.fr/static/web-videos/1634ab97-c803-4e5d-a4ba-8e20dc5f9b89-480.mp4" framerate="30" duration="3574" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="184747017" url="https://peertube.fr/static/web-videos/1634ab97-c803-4e5d-a4ba-8e20dc5f9b89-360.mp4" framerate="30" duration="3574" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="153767793" url="https://peertube.fr/static/web-videos/1634ab97-c803-4e5d-a4ba-8e20dc5f9b89-240.mp4" framerate="30" duration="3574" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/d6364634-d136-4d8c-a0f6-08956887b5d3.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/053ff3c1-95e5-4ba8-9f72-38b5ec1bfc5d.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">IA de jeux, Implémenter une IA basique, en C++</media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_066/2021-05-16-fr-README.html Cet article, de la série “IA de jeux”, aborde la mise en place d’une intelligence artificielle. Il se base sur le jeu de Puissance 4 implémenté dans l’article précédent mais...</media:description>
        </item>
        <item>
            <title><![CDATA[IA de jeux, Implémenter un Puissance 4, en C++]]></title>
            <link>https://tube.fede.re/w/b784HjfwXYnVgPV9snNJBQ</link>
            <guid>https://tube.fede.re/w/b784HjfwXYnVgPV9snNJBQ</guid>
            <pubDate>Tue, 25 May 2021 10:11:41 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_065/2021-05-15-fr-README.html Cet article, de la série “IA de jeux”, aborde l’implémentation d’un Puissance 4, en C++. Il rappelle d’abord les règles du jeu, les fonctionnalités à implémenter et les diff...]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_065/2021-05-15-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_065/2021-05-15-fr-README.html</a></p>
<p>Cet article, de la série “IA de jeux”, aborde l’implémentation d’un Puissance 4, en C++. Il rappelle d’abord les règles du jeu, les fonctionnalités à implémenter et les difficultés à prévoir. Il propose ensuite une implémentation, relativement simple et efficace. Enfin, il montre comment tester cette implémentation avec des tests unitaires.</p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="167930061" type="video/mp4" url="https://tube.fede.re/download/videos/generate/51d633db-7ee2-42ac-ab7d-42747fde9746?videoFileIds=2800343"/>
            <media:community>
                <media:statistics views="11"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/b784HjfwXYnVgPV9snNJBQ"/>
            <media:player url="https://tube.fede.re/w/b784HjfwXYnVgPV9snNJBQ"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/d938d809-cca9-4bff-9976-5c29fec6b690-768.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/baa4f8d7-9c73-48a5-8f33-6644ba0bc780-720.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/67a8cedb-de51-4a2b-b1e2-f11ec1f48920-480.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/6efec6be-8ebe-4143-9ff9-f5f22b7b9f6e-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/5adfeeb2-238f-453c-9b77-2aac3ea487a8-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="768" fileSize="167930061" url="https://peertube.fr/static/web-videos/51d633db-7ee2-42ac-ab7d-42747fde9746-768.mp4" framerate="30" duration="2445" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="720" fileSize="200050638" url="https://peertube.fr/static/web-videos/51d633db-7ee2-42ac-ab7d-42747fde9746-720.mp4" framerate="30" duration="2445" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="480" fileSize="152534822" url="https://peertube.fr/static/web-videos/51d633db-7ee2-42ac-ab7d-42747fde9746-480.mp4" framerate="30" duration="2445" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="128412053" url="https://peertube.fr/static/web-videos/51d633db-7ee2-42ac-ab7d-42747fde9746-360.mp4" framerate="30" duration="2445" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="104887999" url="https://peertube.fr/static/web-videos/51d633db-7ee2-42ac-ab7d-42747fde9746-240.mp4" framerate="30" duration="2445" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/52bed8aa-901a-4a4e-a30c-9c1df15e34e0.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/b458822b-ceb1-4e5c-9a1e-0946547762d9.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">IA de jeux, Implémenter un Puissance 4, en C++</media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_065/2021-05-15-fr-README.html Cet article, de la série “IA de jeux”, aborde l’implémentation d’un Puissance 4, en C++. Il rappelle d’abord les règles du jeu, les fonctionnalités à implémenter et les diff...</media:description>
        </item>
        <item>
            <title><![CDATA[IA de jeux, Introduction]]></title>
            <link>https://tube.fede.re/w/7zWxv7rA1EaEz2zbPo397c</link>
            <guid>https://tube.fede.re/w/7zWxv7rA1EaEz2zbPo397c</guid>
            <pubDate>Mon, 24 May 2021 11:11:16 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_064/2021-05-14-fr-README.html Cet article est le premier d’une série consacrée à l’implémentation d’un jeu de Puissance 4 et de quelques Intelligences Artificielles. L’objectif est à la fois d’aborder le...]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_064/2021-05-14-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_064/2021-05-14-fr-README.html</a></p>
<p>Cet article est le premier d’une série consacrée à l’implémentation d’un jeu de Puissance 4 et de quelques Intelligences Artificielles. L’objectif est à la fois d’aborder le domaine des IA de jeux, mais également de voir comment les implémenter relativement efficacement, en C++ et en Haskell.</p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="18712569" type="video/mp4" url="https://tube.fede.re/download/videos/generate/3553fd61-b3f8-4d3c-bb7c-4e8861b00a97?videoFileIds=2788846"/>
            <media:community>
                <media:statistics views="7"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/7zWxv7rA1EaEz2zbPo397c"/>
            <media:player url="https://tube.fede.re/w/7zWxv7rA1EaEz2zbPo397c"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/a1f25299-3ddc-43f6-b2b1-4a44c222482a-768.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/02875f50-840e-4631-a6b1-c556b5dfb70e-720.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/c3914ad6-10b9-4b72-b60e-816de506d517-480.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/279a8893-d6a7-415b-a670-c5df74580bdb-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/2347034c-eab1-43a0-b667-1f5091fbceff-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="768" fileSize="18712569" url="https://peertube.fr/static/web-videos/3553fd61-b3f8-4d3c-bb7c-4e8861b00a97-768.mp4" framerate="30" duration="332" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="720" fileSize="23067074" url="https://peertube.fr/static/web-videos/3553fd61-b3f8-4d3c-bb7c-4e8861b00a97-720.mp4" framerate="30" duration="332" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="480" fileSize="18360620" url="https://peertube.fr/static/web-videos/3553fd61-b3f8-4d3c-bb7c-4e8861b00a97-480.mp4" framerate="30" duration="332" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="15912691" url="https://peertube.fr/static/web-videos/3553fd61-b3f8-4d3c-bb7c-4e8861b00a97-360.mp4" framerate="30" duration="332" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="13430954" url="https://peertube.fr/static/web-videos/3553fd61-b3f8-4d3c-bb7c-4e8861b00a97-240.mp4" framerate="30" duration="332" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/61cdf27b-387b-4faa-a78d-bedeecad20e3.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/5eb4de2d-29f5-48ea-93d2-2800595a506f.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">IA de jeux, Introduction</media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_064/2021-05-14-fr-README.html Cet article est le premier d’une série consacrée à l’implémentation d’un jeu de Puissance 4 et de quelques Intelligences Artificielles. L’objectif est à la fois d’aborder le...</media:description>
        </item>
        <item>
            <title><![CDATA[Implémenter un DSL de HTML, en Haskell]]></title>
            <link>https://tube.fede.re/w/9npDrU8cmqqDSATivsKg49</link>
            <guid>https://tube.fede.re/w/9npDrU8cmqqDSATivsKg49</guid>
            <pubDate>Wed, 28 Apr 2021 10:49:19 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_63/2021-04-27-fr-README.html Cet article résume et illustre les notions vues dans les articles précédents sur un exemple concret, implémenter un DSL pour générer du HTML simplifié. Il présent...]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_63/2021-04-27-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_63/2021-04-27-fr-README.html</a></p>
<p>Cet article résume et illustre les notions vues dans les articles précédents sur un exemple concret, implémenter un DSL pour générer du HTML simplifié. Il présente notamment l’approche monadique utilisée dans la bibliothèque Lucid.</p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="93188043" type="video/mp4" url="https://tube.fede.re/download/videos/generate/43c64cf3-45b1-47fc-a94f-6d928e4bdd0a?videoFileIds=2792123"/>
            <media:community>
                <media:statistics views="6"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/9npDrU8cmqqDSATivsKg49"/>
            <media:player url="https://tube.fede.re/w/9npDrU8cmqqDSATivsKg49"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/5639d4d5-cf28-4dcd-acd4-fc269226759f-768.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/04e47d54-c9ca-4e92-a922-cc49714aad77-720.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/e665109b-dbaa-4dbc-a578-53dda0dc04c7-480.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/6a12fa29-978f-403d-a7a9-bb3cd2d69c91-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/ded41d8b-8dc2-44d8-a9c4-59a7b1836742-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="768" fileSize="93188043" url="https://peertube.fr/static/web-videos/43c64cf3-45b1-47fc-a94f-6d928e4bdd0a-768.mp4" framerate="30" duration="1583" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="720" fileSize="115814966" url="https://peertube.fr/static/web-videos/43c64cf3-45b1-47fc-a94f-6d928e4bdd0a-720.mp4" framerate="30" duration="1583" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="480" fileSize="89157116" url="https://peertube.fr/static/web-videos/43c64cf3-45b1-47fc-a94f-6d928e4bdd0a-480.mp4" framerate="30" duration="1583" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="76691470" url="https://peertube.fr/static/web-videos/43c64cf3-45b1-47fc-a94f-6d928e4bdd0a-360.mp4" framerate="30" duration="1583" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="65010278" url="https://peertube.fr/static/web-videos/43c64cf3-45b1-47fc-a94f-6d928e4bdd0a-240.mp4" framerate="30" duration="1583" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/3168df94-2b3c-4184-a3c3-96c2a5680f98.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/4840bc88-d839-43eb-b9b8-0527a19a8af7.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">Implémenter un DSL de HTML, en Haskell</media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_63/2021-04-27-fr-README.html Cet article résume et illustre les notions vues dans les articles précédents sur un exemple concret, implémenter un DSL pour générer du HTML simplifié. Il présent...</media:description>
        </item>
        <item>
            <title><![CDATA[L'approche Tagless Final, en Haskell ]]></title>
            <link>https://tube.fede.re/w/aFUosZHN3eg5H5kPRSXARY</link>
            <guid>https://tube.fede.re/w/aFUosZHN3eg5H5kPRSXARY</guid>
            <pubDate>Mon, 19 Apr 2021 11:57:13 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_62/2021-04-16-fr-README.html L’approche Tagless Final est une façon classique d’organiser du code. Elle permet notamment d’implémenter des DSL ou de compléter le pattern ReaderT. Grossière...]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_62/2021-04-16-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_62/2021-04-16-fr-README.html</a></p>
<p>L’approche Tagless Final est une façon classique d’organiser du code. Elle permet notamment d’implémenter des DSL ou de compléter le pattern ReaderT.</p>
<p>Grossièrement, l’approche Tagless Final en Haskell consiste à définir le langage de l’application via des classes de types et à définir des interpréteurs de ce langage via des instances. Cette approche a pour avantage d’être facile à comprendre et à faire évoluer.</p>
<p>Cet article développe l’approche Tagless Final à partir d’un exemple classique (définir et interpréter un langage d’expressions arithmétiques) puis présente un exemple d’application Tagless Final + pattern ReaderT.</p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="160335772" type="video/mp4" url="https://tube.fede.re/download/videos/generate/4e748a31-227a-41e1-b70a-d388c3fc4cb2?videoFileIds=2744293"/>
            <media:community>
                <media:statistics views="13"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/aFUosZHN3eg5H5kPRSXARY"/>
            <media:player url="https://tube.fede.re/w/aFUosZHN3eg5H5kPRSXARY"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/d3357d2d-7157-4b40-b9ef-fac500e3bf6a-768.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/05c0d85a-70d8-4167-99b5-73c8c8eba882-720.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/a5ff145a-3ba0-4fdd-867a-11d1d78533eb-480.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/c5fa74a6-707b-4214-9579-e98acbdbb985-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/e98b46ba-8a92-46be-80bb-821ecccefb10-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="768" fileSize="160335772" url="https://peertube.fr/static/web-videos/4e748a31-227a-41e1-b70a-d388c3fc4cb2-768.mp4" framerate="30" duration="2755" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="720" fileSize="198355834" url="https://peertube.fr/static/web-videos/4e748a31-227a-41e1-b70a-d388c3fc4cb2-720.mp4" framerate="30" duration="2755" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="480" fileSize="153087771" url="https://peertube.fr/static/web-videos/4e748a31-227a-41e1-b70a-d388c3fc4cb2-480.mp4" framerate="30" duration="2755" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="132019826" url="https://peertube.fr/static/web-videos/4e748a31-227a-41e1-b70a-d388c3fc4cb2-360.mp4" framerate="30" duration="2755" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="111944945" url="https://peertube.fr/static/web-videos/4e748a31-227a-41e1-b70a-d388c3fc4cb2-240.mp4" framerate="30" duration="2755" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/4831ff0c-53c2-4c83-b863-9bfda75d4e58.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/9e003e3f-c3cc-4400-aec6-2a0f5805221c.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">L'approche Tagless Final, en Haskell </media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_62/2021-04-16-fr-README.html L’approche Tagless Final est une façon classique d’organiser du code. Elle permet notamment d’implémenter des DSL ou de compléter le pattern ReaderT. Grossière...</media:description>
        </item>
        <item>
            <title><![CDATA[Le design pattern ReaderT, en Haskell]]></title>
            <link>https://tube.fede.re/w/ogpARYeGgZUSVKiNNvKk3v</link>
            <guid>https://tube.fede.re/w/ogpARYeGgZUSVKiNNvKk3v</guid>
            <pubDate>Fri, 09 Apr 2021 15:23:46 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_61/2021-04-02-fr-README.html Le design pattern ReaderT est une architecture de code classique en Haskell. Elle permet de séparer la couche métier de l’environnement d’exécution, tout en expli...]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_61/2021-04-02-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_61/2021-04-02-fr-README.html</a></p>
<p>Le design pattern ReaderT est une architecture de code classique en Haskell. Elle permet de séparer la couche métier de l’environnement d’exécution, tout en explicitant les fonctionnalités nécessaires.</p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="121253016" type="video/mp4" url="https://tube.fede.re/download/videos/generate/b44fc072-0ff6-4fc6-95e7-c76c22665385?videoFileIds=2799398"/>
            <media:community>
                <media:statistics views="11"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/ogpARYeGgZUSVKiNNvKk3v"/>
            <media:player url="https://tube.fede.re/w/ogpARYeGgZUSVKiNNvKk3v"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/04f6c71d-0ce5-4bbe-becb-421bbff264a3-768.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/1a44683e-1cbc-4364-8426-6993d5b5c819-720.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/2025938c-03e7-4610-8b32-a079408b7d4a-480.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/05546aa5-9388-466c-878b-c027416added-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/0dadd588-e74d-427c-94ec-4fbf9627ecfa-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="768" fileSize="121253016" url="https://peertube.fr/static/web-videos/b44fc072-0ff6-4fc6-95e7-c76c22665385-768.mp4" framerate="30" duration="2049" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="720" fileSize="146311678" url="https://peertube.fr/static/web-videos/b44fc072-0ff6-4fc6-95e7-c76c22665385-720.mp4" framerate="30" duration="2049" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="480" fileSize="112671799" url="https://peertube.fr/static/web-videos/b44fc072-0ff6-4fc6-95e7-c76c22665385-480.mp4" framerate="30" duration="2049" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="97583633" url="https://peertube.fr/static/web-videos/b44fc072-0ff6-4fc6-95e7-c76c22665385-360.mp4" framerate="30" duration="2049" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="82728841" url="https://peertube.fr/static/web-videos/b44fc072-0ff6-4fc6-95e7-c76c22665385-240.mp4" framerate="30" duration="2049" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/1f5a419a-1383-4743-a7f7-71d2c4542a9f.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/5c5cc8c6-6d2e-48f8-889d-11c69491d297.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">Le design pattern ReaderT, en Haskell</media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_61/2021-04-02-fr-README.html Le design pattern ReaderT est une architecture de code classique en Haskell. Elle permet de séparer la couche métier de l’environnement d’exécution, tout en expli...</media:description>
        </item>
        <item>
            <title><![CDATA[Monade State, Transformateur et MTL, en Haskell]]></title>
            <link>https://tube.fede.re/w/ppjz4kq3Z78uK55VGGSxrX</link>
            <guid>https://tube.fede.re/w/ppjz4kq3Z78uK55VGGSxrX</guid>
            <pubDate>Thu, 01 Apr 2021 10:46:31 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_60/2021-03-29-fr-README.html Au tutoriel 59, on a vu comment utiliser les transformateurs de monade pour “empiler” les fonctionnalités voulues, via le système de types. On va maintenant détai...]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_60/2021-03-29-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_60/2021-03-29-fr-README.html</a></p>
<p>Au tutoriel 59, on a vu comment utiliser les transformateurs de monade pour “empiler” les fonctionnalités voulues, via le système de types. On va maintenant détailler la monade State et voir comment l’implémenter avec des transformateurs et avec une classe de type “à la MTL”.</p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="112426429" type="video/mp4" url="https://tube.fede.re/download/videos/generate/bd83bd72-c0fc-43ae-8658-5a1c941e03cd?videoFileIds=2797645"/>
            <media:community>
                <media:statistics views="10"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/ppjz4kq3Z78uK55VGGSxrX"/>
            <media:player url="https://tube.fede.re/w/ppjz4kq3Z78uK55VGGSxrX"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/5d564c39-c0c9-4b50-951a-a15b2346204a-768.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/e7928969-0574-47c3-885d-3b9b77154933-720.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/627c8f26-5b7c-4d3e-a412-e5b29b96c193-480.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/1d31ddb1-4ad4-4dcc-a5f4-5e795a2de39a-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/63fa6136-838b-4f9c-840b-9daa14ff7880-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="768" fileSize="112426429" url="https://peertube.fr/static/web-videos/bd83bd72-c0fc-43ae-8658-5a1c941e03cd-768.mp4" framerate="30" duration="1877" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="720" fileSize="145705734" url="https://peertube.fr/static/web-videos/bd83bd72-c0fc-43ae-8658-5a1c941e03cd-720.mp4" framerate="30" duration="1877" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="480" fileSize="109931719" url="https://peertube.fr/static/web-videos/bd83bd72-c0fc-43ae-8658-5a1c941e03cd-480.mp4" framerate="30" duration="1877" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="92265116" url="https://peertube.fr/static/web-videos/bd83bd72-c0fc-43ae-8658-5a1c941e03cd-360.mp4" framerate="30" duration="1877" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="76663223" url="https://peertube.fr/static/web-videos/bd83bd72-c0fc-43ae-8658-5a1c941e03cd-240.mp4" framerate="30" duration="1877" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/a5b39b92-41b6-49ad-8707-318604d31b89.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/6daa51ed-d4cf-4df8-8515-b613cad7f734.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">Monade State, Transformateur et MTL, en Haskell</media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_60/2021-03-29-fr-README.html Au tutoriel 59, on a vu comment utiliser les transformateurs de monade pour “empiler” les fonctionnalités voulues, via le système de types. On va maintenant détai...</media:description>
        </item>
        <item>
            <title><![CDATA[tuto fonctionnel 59 : Introduction aux transformateurs de monades, en Haskell]]></title>
            <link>https://tube.fede.re/w/7B4mPGeXjfohMwhHcTyeXW</link>
            <guid>https://tube.fede.re/w/7B4mPGeXjfohMwhHcTyeXW</guid>
            <pubDate>Mon, 22 Mar 2021 15:08:59 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_59/2021-03-19-fr-README.html En Haskell, une monade permet de définir une suite d’actions dans un contexte particulier (par exemple, des entrées/sorties, des communications HTTP, des calculs ...]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_59/2021-03-19-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_59/2021-03-19-fr-README.html</a></p>
<p>En Haskell, une monade permet de définir une suite d’actions dans un contexte particulier (par exemple, des entrées/sorties, des communications HTTP, des calculs pouvant échouer, etc). Les transformateurs de monades permettent d’intégrer un contexte dans un autre, et ainsi de structurer le code via une pile de monades bien définie et vérifiée par le système de types.</p>
<p>Cet article présente le principe des transformateurs de monades en Haskell, ainsi que quelques transformateurs classiques et des exemples d’utilisation. Cependant, il ne traite pas de leur fonctionnement interne ni de leur utilisation pour structurer une vraie base de code.</p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="124930311" type="video/mp4" url="https://tube.fede.re/download/videos/generate/357bef18-b0a9-40ef-8be0-ec3b184aecd0?videoFileIds=2751399"/>
            <media:community>
                <media:statistics views="5"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/7B4mPGeXjfohMwhHcTyeXW"/>
            <media:player url="https://tube.fede.re/w/7B4mPGeXjfohMwhHcTyeXW"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/3e2e82af-37af-4741-920c-f8fc3e5b5818-768.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/68c0194a-7e78-4dc1-a7b0-3246a9d0e098-720.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/45134458-fdf8-4420-b1ae-961299396111-480.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/99b1667e-d4d2-4034-b8d9-d3ee0237857e-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/262610f9-648c-4279-9f09-0b007e7cc257-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="768" fileSize="124930311" url="https://peertube.fr/static/web-videos/357bef18-b0a9-40ef-8be0-ec3b184aecd0-768.mp4" framerate="30" duration="2239" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="720" fileSize="157802171" url="https://peertube.fr/static/web-videos/357bef18-b0a9-40ef-8be0-ec3b184aecd0-720.mp4" framerate="30" duration="2239" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="480" fileSize="120836648" url="https://peertube.fr/static/web-videos/357bef18-b0a9-40ef-8be0-ec3b184aecd0-480.mp4" framerate="30" duration="2239" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="104731937" url="https://peertube.fr/static/web-videos/357bef18-b0a9-40ef-8be0-ec3b184aecd0-360.mp4" framerate="30" duration="2239" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="89034342" url="https://peertube.fr/static/web-videos/357bef18-b0a9-40ef-8be0-ec3b184aecd0-240.mp4" framerate="30" duration="2239" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/baa4a011-4f99-4e3a-a846-e1f5eed83f8e.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/1f52db5a-3527-4803-a0a2-fc1ae4fdb2c2.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">tuto fonctionnel 59 : Introduction aux transformateurs de monades, en Haskell</media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_59/2021-03-19-fr-README.html En Haskell, une monade permet de définir une suite d’actions dans un contexte particulier (par exemple, des entrées/sorties, des communications HTTP, des calculs ...</media:description>
        </item>
        <item>
            <title><![CDATA[tuto fonctionnel 58 : Introduction aux DSL, en Haskell]]></title>
            <link>https://tube.fede.re/w/cqoLoFUx487di73rRLHrG7</link>
            <guid>https://tube.fede.re/w/cqoLoFUx487di73rRLHrG7</guid>
            <pubDate>Thu, 18 Mar 2021 11:16:51 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_58/2021-03-14-fr-README.html Cet article introduit les DSL (ou langages dédiés, en français) et en quoi Haskell est intéressant pour les mettre en œuvre.]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_58/2021-03-14-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_58/2021-03-14-fr-README.html</a></p>
<p>Cet article introduit les DSL (ou langages dédiés, en français) et en quoi Haskell est intéressant pour les mettre en œuvre.</p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="93884414" type="video/mp4" url="https://tube.fede.re/download/videos/generate/5c7c67c7-f04e-4cc6-bd76-e161241d05a2?videoFileIds=2789882"/>
            <media:community>
                <media:statistics views="2"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/cqoLoFUx487di73rRLHrG7"/>
            <media:player url="https://tube.fede.re/w/cqoLoFUx487di73rRLHrG7"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/56b1f4bf-e514-4549-b03f-764c0c255ff2-768.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/e022075c-0ab1-4095-8eb2-4eea9f02149a-720.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/3ae4d578-bb8e-4e01-a5c8-f1d267c6fd07-480.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/1ac629d3-77e7-46eb-a3c4-2c65f8c18f7d-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/d980436f-45db-4d50-bbb9-da07e0ac6df1-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="768" fileSize="93884414" url="https://peertube.fr/static/web-videos/5c7c67c7-f04e-4cc6-bd76-e161241d05a2-768.mp4" framerate="30" duration="1811" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="720" fileSize="120989713" url="https://peertube.fr/static/web-videos/5c7c67c7-f04e-4cc6-bd76-e161241d05a2-720.mp4" framerate="30" duration="1811" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="480" fileSize="95389453" url="https://peertube.fr/static/web-videos/5c7c67c7-f04e-4cc6-bd76-e161241d05a2-480.mp4" framerate="30" duration="1811" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="82780949" url="https://peertube.fr/static/web-videos/5c7c67c7-f04e-4cc6-bd76-e161241d05a2-360.mp4" framerate="30" duration="1811" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="70015865" url="https://peertube.fr/static/web-videos/5c7c67c7-f04e-4cc6-bd76-e161241d05a2-240.mp4" framerate="30" duration="1811" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/fc04ed68-333f-4a08-9640-f0d47a274b6b.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/280e9eea-27c2-4260-a7ed-dcea99ca3484.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">tuto fonctionnel 58 : Introduction aux DSL, en Haskell</media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_58/2021-03-14-fr-README.html Cet article introduit les DSL (ou langages dédiés, en français) et en quoi Haskell est intéressant pour les mettre en œuvre.</media:description>
        </item>
        <item>
            <title><![CDATA[tuto fonctionnel 57 : Parsing et monade, en Haskell]]></title>
            <link>https://tube.fede.re/w/etNuebymMTD8UNq3wN9LCJ</link>
            <guid>https://tube.fede.re/w/etNuebymMTD8UNq3wN9LCJ</guid>
            <pubDate>Sun, 07 Mar 2021 08:19:59 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_57/2021-03-06-fr-README.html Précédemment, on a vu comment Haskell implémente des structures évoluées comme Functor, Applicative et Monad. On va maintenant voir comment utiliser ses structure...]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_57/2021-03-06-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_57/2021-03-06-fr-README.html</a></p>
<p>Précédemment, on a vu comment Haskell implémente des structures évoluées comme Functor, Applicative et Monad. On va maintenant voir comment utiliser ses structures pour réaliser du parsing, c’est-à-dire analyser un texte respectant un schéma attendu.</p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="60141421" type="video/mp4" url="https://tube.fede.re/download/videos/generate/6d288865-bfb6-4de7-9a43-a7cd45c00fe2?videoFileIds=2789560"/>
            <media:community>
                <media:statistics views="8"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/etNuebymMTD8UNq3wN9LCJ"/>
            <media:player url="https://tube.fede.re/w/etNuebymMTD8UNq3wN9LCJ"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/e5325adb-00e4-4359-aa20-1e743ecf4770-720.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/77b36565-3aa9-4b21-ac12-be8d04030344-480.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/eb78aac1-ca6e-47f0-8bd1-c431ecca99d2-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/1054a6dc-4422-483c-ad07-24dea9d2e865-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="720" fileSize="60141421" url="https://peertube.fr/static/web-videos/6d288865-bfb6-4de7-9a43-a7cd45c00fe2-720.mp4" framerate="30" duration="2268" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="480" fileSize="75217880" url="https://peertube.fr/static/web-videos/6d288865-bfb6-4de7-9a43-a7cd45c00fe2-480.mp4" framerate="30" duration="2268" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="60807914" url="https://peertube.fr/static/web-videos/6d288865-bfb6-4de7-9a43-a7cd45c00fe2-360.mp4" framerate="30" duration="2268" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="43212403" url="https://peertube.fr/static/web-videos/6d288865-bfb6-4de7-9a43-a7cd45c00fe2-240.mp4" framerate="30" duration="2268" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/31a56561-edf3-4da9-9d88-8539ef159439.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/c191f5d9-0e4c-4162-ac68-0044fb99c683.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">tuto fonctionnel 57 : Parsing et monade, en Haskell</media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_57/2021-03-06-fr-README.html Précédemment, on a vu comment Haskell implémente des structures évoluées comme Functor, Applicative et Monad. On va maintenant voir comment utiliser ses structure...</media:description>
        </item>
        <item>
            <title><![CDATA[tuto fonctionnel 56 : Foncteur, applicative et monade, en Haskell]]></title>
            <link>https://tube.fede.re/w/uAkwwsYvC2ZfuDJ5zLXh1H</link>
            <guid>https://tube.fede.re/w/uAkwwsYvC2ZfuDJ5zLXh1H</guid>
            <pubDate>Sun, 28 Feb 2021 11:33:55 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_56/2021-02-26-fr-README.html Les foncteurs, les applicatives et les monades sont des structures permettant d’ajouter des fonctionnalités particulières à des types (par exemple, appliquer une ...]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_56/2021-02-26-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_56/2021-02-26-fr-README.html</a></p>
<p>Les foncteurs, les applicatives et les monades sont des structures permettant d’ajouter des fonctionnalités particulières à des types (par exemple, appliquer une fonction à l’intérieur du type, chainer des opérations…). Ces notions sont très puissantes et très classiques en Haskell mais peuvent paraître difficiles au premier abord car elles sont souvent peu connues dans les autres langages et font appel à des notions assez avancées comme la notion de kind (sorte d’un type).</p>
<p>Cet article introduit la notion de sorte, puis présente et illustre les notions de foncteur, d’applicative et de monade. Enfin, il présente comment implémenter ces fonctionnalités pour un nouveau type.</p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="72511807" type="video/mp4" url="https://tube.fede.re/download/videos/generate/e78b3444-5cee-48eb-9caa-e03ef6571861?videoFileIds=2783533"/>
            <media:community>
                <media:statistics views="8"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/uAkwwsYvC2ZfuDJ5zLXh1H"/>
            <media:player url="https://tube.fede.re/w/uAkwwsYvC2ZfuDJ5zLXh1H"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/0569b7c4-b116-4d1e-896b-5d6ad97ccb9d-720.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/e95d14ac-23c5-4d0f-a10a-2ac82d590cac-480.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/bfe1cf75-926a-4c45-ae0d-5b24a56c80dd-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/81c778b6-13e2-4a00-a69a-20592c5111dd-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="720" fileSize="72511807" url="https://peertube.fr/static/web-videos/e78b3444-5cee-48eb-9caa-e03ef6571861-720.mp4" framerate="30" duration="2703" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="480" fileSize="87167826" url="https://peertube.fr/static/web-videos/e78b3444-5cee-48eb-9caa-e03ef6571861-480.mp4" framerate="30" duration="2703" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="70846230" url="https://peertube.fr/static/web-videos/e78b3444-5cee-48eb-9caa-e03ef6571861-360.mp4" framerate="30" duration="2703" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="51059321" url="https://peertube.fr/static/web-videos/e78b3444-5cee-48eb-9caa-e03ef6571861-240.mp4" framerate="30" duration="2703" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/294a5b2f-7c38-4319-8e65-40e73ec82cd7.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/3d1d1929-5b78-4e13-a835-c63ce486116c.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">tuto fonctionnel 56 : Foncteur, applicative et monade, en Haskell</media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_56/2021-02-26-fr-README.html Les foncteurs, les applicatives et les monades sont des structures permettant d’ajouter des fonctionnalités particulières à des types (par exemple, appliquer une ...</media:description>
        </item>
        <item>
            <title><![CDATA[tuto fonctionnel 55 : Introduction à DeriveGeneric en Haskell, exemple avec le format JSON]]></title>
            <link>https://tube.fede.re/w/eCXErtf9qya39qJVT5p5ha</link>
            <guid>https://tube.fede.re/w/eCXErtf9qya39qJVT5p5ha</guid>
            <pubDate>Sun, 21 Feb 2021 12:27:31 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_55/2021-02-17-fr-README.html En Haskell, DeriveGeneric est une fonctionnalité qui analyse la définition d’un type. Ceci permet de générer automatiquement des instances de classe de type. Plus...]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_55/2021-02-17-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_55/2021-02-17-fr-README.html</a></p>
<p>En Haskell, DeriveGeneric est une fonctionnalité qui analyse la définition d’un type. Ceci permet de générer automatiquement des instances de classe de type. Plus généralement, le principe des Generics en Haskell est assez proche de ce qu’on appelle souvent réflexion dans d’autres langages. Les Generics sont un outil très intéressant mais cet article traite uniquement d’un cas d’utilisation : importer/exporter un type Haskell depuis/vers le format JSON.</p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="20363295" type="video/mp4" url="https://tube.fede.re/download/videos/generate/6e6fe1b6-12b5-4b3c-a6cd-7d66d35e9131?videoFileIds=2799394"/>
            <media:community>
                <media:statistics views="4"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/eCXErtf9qya39qJVT5p5ha"/>
            <media:player url="https://tube.fede.re/w/eCXErtf9qya39qJVT5p5ha"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/121bd975-9d78-4ce0-89ec-a741681d68f3-720.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/db4e9bde-b774-4a73-a9b6-7521eaffa9e7-480.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/feebce01-01c3-4196-884d-479937656b9c-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/823b0ba5-06b5-4919-ad0d-6e88a0eddc33-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="720" fileSize="20363295" url="https://peertube.fr/static/web-videos/6e6fe1b6-12b5-4b3c-a6cd-7d66d35e9131-720.mp4" framerate="30" duration="678" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="480" fileSize="27090194" url="https://peertube.fr/static/web-videos/6e6fe1b6-12b5-4b3c-a6cd-7d66d35e9131-480.mp4" framerate="30" duration="678" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="19486447" url="https://peertube.fr/static/web-videos/6e6fe1b6-12b5-4b3c-a6cd-7d66d35e9131-360.mp4" framerate="30" duration="678" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="13463072" url="https://peertube.fr/static/web-videos/6e6fe1b6-12b5-4b3c-a6cd-7d66d35e9131-240.mp4" framerate="30" duration="678" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/1c6eb388-7938-40d4-8d10-8dd3ef795ae2.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/740ee70f-1fed-4760-9b5a-ab81ad1ff59e.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">tuto fonctionnel 55 : Introduction à DeriveGeneric en Haskell, exemple avec le format JSON</media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_55/2021-02-17-fr-README.html En Haskell, DeriveGeneric est une fonctionnalité qui analyse la définition d’un type. Ceci permet de générer automatiquement des instances de classe de type. Plus...</media:description>
        </item>
        <item>
            <title><![CDATA[tuto fonctionnel 54 : Classes de types et Functor, en Haskell]]></title>
            <link>https://tube.fede.re/w/kyH7M6SuKntWoXPdtCifJZ</link>
            <guid>https://tube.fede.re/w/kyH7M6SuKntWoXPdtCifJZ</guid>
            <pubDate>Sun, 14 Feb 2021 12:29:44 GMT</pubDate>
            <description><![CDATA[https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_54/2021-02-13-fr-README.html En plus des types algébriques (ADT), Haskell supporte les classes de types (Type Classes). Celles-ci permettent notamment de spécifier des contraintes sur des typ...]]></description>
            <content:encoded><![CDATA[<p><a href="https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_54/2021-02-13-fr-README.html" target="_blank" rel="noopener noreferrer">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_54/2021-02-13-fr-README.html</a></p>
<p>En plus des types algébriques (ADT), Haskell supporte les classes de types (Type Classes). Celles-ci permettent notamment de spécifier des contraintes sur des types polymorphes. Les classes de types sont un outil très performant en Haskell, qui est utilisé pour définir des structures de haut-niveau comme les Functor et les Monad.</p>
<p>Les classes de types existent également dans d’autres langage, sous des formes généralement moins évoluées. Par exemple, les traits en Rust et les concepts en C++20.</p>
<p>Cet article présente les classes de types en Haskell, à partir de quelques exemples. Il introduit également un exemple de structure évoluée, les Functor.</p>
]]></content:encoded>
            <dc:creator>tuto_fonctionnel</dc:creator>
            <category>Science &amp; Technology</category>
            <enclosure length="42689367" type="video/mp4" url="https://tube.fede.re/download/videos/generate/9e6ec63b-4a0f-4ff3-8acc-56e4d83187fd?videoFileIds=2822269"/>
            <media:community>
                <media:statistics views="3"/>
            </media:community>
            <media:embed url="https://tube.fede.re/videos/embed/kyH7M6SuKntWoXPdtCifJZ"/>
            <media:player url="https://tube.fede.re/w/kyH7M6SuKntWoXPdtCifJZ"/>
            <media:group>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/87cc18c7-e16a-4a4d-9c36-e57f2689538a-720.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/a24abefb-68a7-4478-b446-4dab8ec0dd23-480.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/b3119705-725f-44fa-b1cc-3163a347ea11-360.torrent" isDefault="false"/>
                <media:peerLink type="application/x-bittorrent" href="https://tube.fede.re/lazy-static/torrents/3f248784-3753-4bcc-91b7-6f4e9b65f8ec-240.torrent" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="720" fileSize="42689367" url="https://peertube.fr/static/web-videos/9e6ec63b-4a0f-4ff3-8acc-56e4d83187fd-720.mp4" framerate="30" duration="1608" isDefault="true"/>
                <media:content type="video/mp4" medium="video" height="480" fileSize="60081292" url="https://peertube.fr/static/web-videos/9e6ec63b-4a0f-4ff3-8acc-56e4d83187fd-480.mp4" framerate="30" duration="1608" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="360" fileSize="44058219" url="https://peertube.fr/static/web-videos/9e6ec63b-4a0f-4ff3-8acc-56e4d83187fd-360.mp4" framerate="30" duration="1608" isDefault="false"/>
                <media:content type="video/mp4" medium="video" height="240" fileSize="30801245" url="https://peertube.fr/static/web-videos/9e6ec63b-4a0f-4ff3-8acc-56e4d83187fd-240.mp4" framerate="30" duration="1608" isDefault="false"/>
            </media:group>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/edc797a9-99bf-4742-bc55-afe3dacd012d.jpg" height="157" width="280"/>
            <media:thumbnail url="https://tube.fede.re/lazy-static/thumbnails/4db64e5a-8c47-4268-8e39-a0201ee3ce2a.jpg" height="480" width="850"/>
            <media:rating>nonadult</media:rating>
            <media:title type="plain">tuto fonctionnel 54 : Classes de types et Functor, en Haskell</media:title>
            <media:description type="plain">https://nokomprendo.gitlab.io/posts/tuto_fonctionnel_54/2021-02-13-fr-README.html En plus des types algébriques (ADT), Haskell supporte les classes de types (Type Classes). Celles-ci permettent notamment de spécifier des contraintes sur des typ...</media:description>
        </item>
    </channel>
</rss>