{"id":20,"date":"2025-02-12T22:05:57","date_gmt":"2025-02-12T21:05:57","guid":{"rendered":"http:\/\/boissiz.cluster029.hosting.ovh.net\/?p=20"},"modified":"2025-06-07T16:07:42","modified_gmt":"2025-06-07T14:07:42","slug":"le-currying-en-programmation","status":"publish","type":"post","link":"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/2025\/02\/12\/le-currying-en-programmation\/","title":{"rendered":"Le Currying en programmation"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Une introduction<\/h2>\n<\/blockquote>\n\n\n\n<p>Le Currying est un concept puissant en programmation fonctionnelle qui consiste \u00e0 transformer une fonction qui prend plusieurs arguments en une fonction qui prend un seul argument et qui renvoie une nouvelle fonction qui accepte les arguments suivants, un \u00e0 la fois. Cette technique est nomm\u00e9e d&rsquo;apr\u00e8s le logicien et math\u00e9maticien Haskell Curry.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Comprendre le Currying<\/h2>\n<\/blockquote>\n\n\n\n<p>Prenons un exemple simple pour comprendre comment fonctionne le Currying. Supposons que nous ayons une fonction `add` qui prend deux arguments et renvoie leur somme :<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<pre class=\"wp-block-code\"><code>function add(x, y) {\nreturn x + y;\n}\n\nadd(1, 2); \/\/ Renvoie 3<\/code><\/pre>\n<\/div><\/div>\n<\/div><\/div>\n\n\n\n<p>Cette fonction peut \u00eatre transform\u00e9e en une fonction \u00ab\u00a0curried\u00a0\u00bb de la mani\u00e8re suivante :<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<pre class=\"wp-block-code\"><code>function curriedAdd(x) {\nreturn function(y) {\nreturn x + y;\n}\n}\n\ncurriedAdd(1)(2); \/\/ Renvoie 3<\/code><\/pre>\n<\/div><\/div>\n\n\n\n<p>Maintenant, `curriedAdd` est une fonction qui prend un argument `x` et renvoie une autre fonction qui prend un argument `y`. La valeur renvoy\u00e9e lorsque les deux fonctions ont \u00e9t\u00e9 invoqu\u00e9es est la somme de `x` et `y`.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Pourquoi utiliser le Currying?<\/h2>\n<\/blockquote>\n\n\n\n<p>Le Currying a plusieurs avantages en programmation.<\/p>\n\n\n\n<p><strong>1. Cr\u00e9ation de fonctions partiellement appliqu\u00e9es<\/strong> : Avec le Currying, vous pouvez cr\u00e9er des versions partiellement appliqu\u00e9es de fonctions plus complexes. Par exemple, vous pouvez cr\u00e9er une fonction qui ajoute toujours 2 \u00e0 son argument en utilisant notre fonction `curriedAdd` de cette mani\u00e8re : `const addTwo = curriedAdd(2);`. Maintenant, `addTwo` est une fonction qui prend un argument et lui ajoute toujours 2.<\/p>\n\n\n\n<p><strong>2. Am\u00e9lioration de la modularit\u00e9 et de la composition <\/strong>: Le Currying aide \u00e0 rendre votre code plus modulaire et plus facile \u00e0 lire. Il vous permet de d\u00e9composer les fonctions en unit\u00e9s plus petites et plus g\u00e9rables, ce qui facilite la composition de fonctions.<\/p>\n\n\n\n<p><strong>3. Retarder l&rsquo;\u00e9valuation<\/strong> : Avec le Currying, l&rsquo;ex\u00e9cution de la fonction peut \u00eatre retard\u00e9e jusqu&rsquo;\u00e0 ce que tous les arguments n\u00e9cessaires soient disponibles.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Conclusion<\/p>\n<\/blockquote>\n\n\n\n<p>Le Currying est un concept avanc\u00e9 et puissant en programmation, en particulier dans les langages de programmation fonctionnelle tels que Haskell et Scala, mais il est \u00e9galement utilis\u00e9 en JavaScript et d&rsquo;autres langages. Il favorise un style de code plus fonctionnel, plus lisible et plus modulaire. M\u00eame si au premier abord, le concept peut sembler complexe, une fois que vous avez commenc\u00e9 \u00e0 utiliser le Currying, vous pourriez d\u00e9couvrir qu&rsquo;il rend votre code plus propre et plus efficace.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Une introduction Le Currying est un concept puissant en programmation fonctionnelle qui consiste \u00e0 transformer&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[4],"tags":[],"class_list":["post-20","post","type-post","status-publish","format-standard","hentry","category-informatique"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Le Currying en programmation - Le site du matou<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/2025\/02\/12\/le-currying-en-programmation\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Le Currying en programmation - Le site du matou\" \/>\n<meta property=\"og:description\" content=\"Une introduction Le Currying est un concept puissant en programmation fonctionnelle qui consiste \u00e0 transformer&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/2025\/02\/12\/le-currying-en-programmation\/\" \/>\n<meta property=\"og:site_name\" content=\"Le site du matou\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-12T21:05:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-07T14:07:42+00:00\" \/>\n<meta name=\"author\" content=\"admin2154\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin2154\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/2025\/02\/12\/le-currying-en-programmation\/\",\"url\":\"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/2025\/02\/12\/le-currying-en-programmation\/\",\"name\":\"Le Currying en programmation - Le site du matou\",\"isPartOf\":{\"@id\":\"https:\/\/boissiebruno-pageperso-pi.ovh\/#website\"},\"datePublished\":\"2025-02-12T21:05:57+00:00\",\"dateModified\":\"2025-06-07T14:07:42+00:00\",\"author\":{\"@id\":\"https:\/\/boissiebruno-pageperso-pi.ovh\/#\/schema\/person\/d62778c4a9a9eb68b258ce862c5cb052\"},\"breadcrumb\":{\"@id\":\"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/2025\/02\/12\/le-currying-en-programmation\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/2025\/02\/12\/le-currying-en-programmation\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/2025\/02\/12\/le-currying-en-programmation\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/boissiebruno-pageperso-pi.ovh\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Le Currying en programmation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/boissiebruno-pageperso-pi.ovh\/#website\",\"url\":\"https:\/\/boissiebruno-pageperso-pi.ovh\/\",\"name\":\"Le site du matou\",\"description\":\"Un site utilisant WordPress ma foi pas si mal fichu que \u00e7a\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/boissiebruno-pageperso-pi.ovh\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/boissiebruno-pageperso-pi.ovh\/#\/schema\/person\/d62778c4a9a9eb68b258ce862c5cb052\",\"name\":\"admin2154\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/boissiebruno-pageperso-pi.ovh\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/30bc2ae54660b3c6a84a10d6da54e19248e82ef919e0a33feae1adf7d6e0a9c6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/30bc2ae54660b3c6a84a10d6da54e19248e82ef919e0a33feae1adf7d6e0a9c6?s=96&d=mm&r=g\",\"caption\":\"admin2154\"},\"sameAs\":[\"http:\/\/boissiz.cluster029.hosting.ovh.net\"],\"url\":\"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/author\/admin2154\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Le Currying en programmation - Le site du matou","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/2025\/02\/12\/le-currying-en-programmation\/","og_locale":"fr_FR","og_type":"article","og_title":"Le Currying en programmation - Le site du matou","og_description":"Une introduction Le Currying est un concept puissant en programmation fonctionnelle qui consiste \u00e0 transformer&hellip;","og_url":"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/2025\/02\/12\/le-currying-en-programmation\/","og_site_name":"Le site du matou","article_published_time":"2025-02-12T21:05:57+00:00","article_modified_time":"2025-06-07T14:07:42+00:00","author":"admin2154","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"admin2154","Dur\u00e9e de lecture estim\u00e9e":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/2025\/02\/12\/le-currying-en-programmation\/","url":"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/2025\/02\/12\/le-currying-en-programmation\/","name":"Le Currying en programmation - Le site du matou","isPartOf":{"@id":"https:\/\/boissiebruno-pageperso-pi.ovh\/#website"},"datePublished":"2025-02-12T21:05:57+00:00","dateModified":"2025-06-07T14:07:42+00:00","author":{"@id":"https:\/\/boissiebruno-pageperso-pi.ovh\/#\/schema\/person\/d62778c4a9a9eb68b258ce862c5cb052"},"breadcrumb":{"@id":"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/2025\/02\/12\/le-currying-en-programmation\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/2025\/02\/12\/le-currying-en-programmation\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/2025\/02\/12\/le-currying-en-programmation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/boissiebruno-pageperso-pi.ovh\/"},{"@type":"ListItem","position":2,"name":"Le Currying en programmation"}]},{"@type":"WebSite","@id":"https:\/\/boissiebruno-pageperso-pi.ovh\/#website","url":"https:\/\/boissiebruno-pageperso-pi.ovh\/","name":"Le site du matou","description":"Un site utilisant WordPress ma foi pas si mal fichu que \u00e7a","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/boissiebruno-pageperso-pi.ovh\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/boissiebruno-pageperso-pi.ovh\/#\/schema\/person\/d62778c4a9a9eb68b258ce862c5cb052","name":"admin2154","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/boissiebruno-pageperso-pi.ovh\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/30bc2ae54660b3c6a84a10d6da54e19248e82ef919e0a33feae1adf7d6e0a9c6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/30bc2ae54660b3c6a84a10d6da54e19248e82ef919e0a33feae1adf7d6e0a9c6?s=96&d=mm&r=g","caption":"admin2154"},"sameAs":["http:\/\/boissiz.cluster029.hosting.ovh.net"],"url":"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/author\/admin2154\/"}]}},"_links":{"self":[{"href":"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/wp-json\/wp\/v2\/posts\/20","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/wp-json\/wp\/v2\/comments?post=20"}],"version-history":[{"count":4,"href":"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/wp-json\/wp\/v2\/posts\/20\/revisions"}],"predecessor-version":[{"id":56,"href":"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/wp-json\/wp\/v2\/posts\/20\/revisions\/56"}],"wp:attachment":[{"href":"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/wp-json\/wp\/v2\/media?parent=20"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/wp-json\/wp\/v2\/categories?post=20"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/boissiebruno-pageperso-pi.ovh\/index.php\/wp-json\/wp\/v2\/tags?post=20"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}