<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Fonctionnel on Ocarina — précis</title>
    <link>https://mojo-molotov.github.io/from-ocarina-to-igor/fr/tags/fonctionnel/</link>
    <description>Recent content in Fonctionnel on Ocarina — précis</description>
    <generator>Hugo</generator>
    <language>fr-FR</language>
    <lastBuildDate>Thu, 28 May 2026 21:02:53 +0200</lastBuildDate>
    <atom:link href="https://mojo-molotov.github.io/from-ocarina-to-igor/fr/tags/fonctionnel/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Chapitre 03 — Programmation fonctionnelle avec Ocarina</title>
      <link>https://mojo-molotov.github.io/from-ocarina-to-igor/fr/03-functional/</link>
      <pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate>
      <guid>https://mojo-molotov.github.io/from-ocarina-to-igor/fr/03-functional/</guid>
      <description>&lt;h1 id=&#34;chapitre-03programmation-fonctionnelle-avec-ocarina&#34;&gt;Chapitre 03 — Programmation fonctionnelle avec Ocarina&lt;a class=&#34;anchor&#34; href=&#34;#chapitre-03programmation-fonctionnelle-avec-ocarina&#34; data-pagefind-ignore=&#34;all&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;blockquote class=&#39;book-hint &#39;&gt;&#xA;&lt;p&gt;Comment Ocarina &lt;strong&gt;applique&lt;/strong&gt; la programmation fonctionnelle, et &lt;strong&gt;pourquoi&lt;/strong&gt;. Ce chapitre est plus &lt;em&gt;transversal&lt;/em&gt; que les autres : il revisite la mécanique du framework sous l&amp;rsquo;angle FP.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&lt;h2 id=&#34;plan&#34;&gt;Plan&lt;a class=&#34;anchor&#34; href=&#34;#plan&#34; data-pagefind-ignore=&#34;all&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;#&lt;/th&gt;&#xA;          &lt;th&gt;Fichier&lt;/th&gt;&#xA;          &lt;th&gt;Sujet&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;01&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://mojo-molotov.github.io/from-ocarina-to-igor/fr/03-functional/01-effect-thunk-result/&#34;&gt;&lt;code&gt;01-effect-thunk-result.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;Effect&lt;/code&gt;, &lt;code&gt;Thunk[T]&lt;/code&gt;, &lt;code&gt;Result[T]&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;02&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://mojo-molotov.github.io/from-ocarina-to-igor/fr/03-functional/02-closures-ioc/&#34;&gt;&lt;code&gt;02-closures-ioc.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Closures comme primitive d&amp;rsquo;inversion de contrôle.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;03&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://mojo-molotov.github.io/from-ocarina-to-igor/fr/03-functional/03-lazy-evaluation/&#34;&gt;&lt;code&gt;03-lazy-evaluation.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Paresse partout : ChainRunner, validate.execute, Watcher callback, lazy prefixes.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;04&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://mojo-molotov.github.io/from-ocarina-to-igor/fr/03-functional/04-fold-reduce/&#34;&gt;&lt;code&gt;04-fold-reduce.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;reduce&lt;/code&gt; (fold left) dans &lt;code&gt;chain_actions&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;05&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://mojo-molotov.github.io/from-ocarina-to-igor/fr/03-functional/05-declarative/&#34;&gt;&lt;code&gt;05-declarative.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Programmation déclarative : un scénario &lt;em&gt;décrit&lt;/em&gt;, n&amp;rsquo;exécute pas.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;06&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://mojo-molotov.github.io/from-ocarina-to-igor/fr/03-functional/06-pep-695-generics/&#34;&gt;&lt;code&gt;06-pep-695-generics.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Generics PEP 695, &lt;code&gt;TypeVar bound&lt;/code&gt;, &lt;code&gt;type X[T] = ...&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;07&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://mojo-molotov.github.io/from-ocarina-to-igor/fr/03-functional/07-discriminated-unions-typeguards/&#34;&gt;&lt;code&gt;07-discriminated-unions-typeguards.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Unions discriminées + &lt;code&gt;TypeGuard&lt;/code&gt; + &lt;code&gt;@final&lt;/code&gt; = unions « &lt;em&gt;sealed&lt;/em&gt; ».&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;pourquoi-un-chapitre-dédié&#34;&gt;Pourquoi un chapitre dédié&lt;a class=&#34;anchor&#34; href=&#34;#pourquoi-un-chapitre-d%c3%a9di%c3%a9&#34; data-pagefind-ignore=&#34;all&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Le code d&amp;rsquo;Ocarina est petit, mais il &lt;strong&gt;incarne&lt;/strong&gt; un nombre considérable de patterns FP. Ce chapitre est l&amp;rsquo;occasion de les nommer, de les justifier, et de pointer où est-ce qu&amp;rsquo;ils se manifestent dans le code.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
