{"id":12174,"date":"2020-11-18T13:28:05","date_gmt":"2020-11-18T12:28:05","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=12174"},"modified":"2021-12-23T11:42:01","modified_gmt":"2021-12-23T10:42:01","slug":"learn-functional-programming","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/learn-functional-programming\/","title":{"rendered":"Why you should learn functional programming"},"content":{"rendered":"\t\t\t\t<div class=\"wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-28fb9719      \"\n\t\t\t\t\tdata-scroll= \"1\"\n\t\t\t\t\tdata-offset= \"30\"\n\t\t\t\t\tstyle=\"\"\n\t\t\t\t>\n\t\t\t\t<div class=\"uagb-toc__wrap\">\n\t\t\t\t\t\t<div class=\"uagb-toc__title\">\n\t\t\t\t\t\t\tTable Of Contents\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"uagb-toc__list-wrap \">\n\t\t\t\t\t\t<ol class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#what-is-functional-programming\" class=\"uagb-toc-link__trigger\">What is functional programming?\u00a0<\/a><li class=\"uagb-toc__list\"><a href=\"#the-attraction-of-functional-programming\" class=\"uagb-toc-link__trigger\">The attraction of functional programming\u00a0<\/a><li class=\"uagb-toc__list\"><a href=\"#how-are-you-using-functional-programming-today\" class=\"uagb-toc-link__trigger\">How are you using functional programming today?\u00a0<\/a><li class=\"uagb-toc__list\"><a href=\"#thoughts-for-developers-interested-in-learning-more\" class=\"uagb-toc-link__trigger\">Thoughts for developers interested in learning more<\/a><li class=\"uagb-toc__list\"><a href=\"#why-should-someone-come-along-to-your-talk\" class=\"uagb-toc-link__trigger\">Why should someone come along to your talk?<\/a><li class=\"uagb-toc__list\"><a href=\"#want-to-learn-more-about-functional-programming\" class=\"uagb-toc-link__trigger\">Want to learn more about functional programming?\u00a0<\/a><\/ol>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\n\n\n<p>Looking for something new without the need for frameworks and libraries? Do you like maths? You might want to take a look at how you can <a href=\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/backend-dev\/lsp-functional-programming\/\" target=\"_blank\" rel=\"noopener\">functionally program with JavaScript and apply <span id=\"urn:local-annotation-976113\" class=\"textannotation disambiguated\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/functional_programming\"><strong>functional<\/a> programming<\/strong><\/span> to your<span id=\"urn:local-annotation-774659\" class=\"textannotation disambiguated\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\"> application<\/span> to optimize your code. Jemima Abu is a self-taught <span id=\"urn:local-annotation-201510\" class=\"textannotation disambiguated\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/frontend_developer\">Front End Developer<\/span> and school-taught Systems Engineer from Lagos, Nigeria who currently works at Lithuanian software company Telesoftas. I connected with her before her presentation at <a href=\"https:\/\/events.codemotion.com\/conferences\/online\/2020\/online-tech-conference-italian-edition\/\" class=\"ek-link\"><em><span id=\"urn:local-annotation-810186\" class=\"textannotation disambiguated\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/codemotion\">Codemotion<\/span>\u2019s online conference: The Italian edition<\/em><\/a> to find out more about functional programming with <span id=\"urn:enhancement-9c1ed5f2\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/javascript\">JavaScript<\/span>.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"263\" height=\"263\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/afriko2020_linked_3.jpg\" alt=\"Jemima Abu will present a talk about functional programming at Codemotion's online conference\" class=\"wp-image-12181\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/afriko2020_linked_3.jpg 263w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/afriko2020_linked_3-150x150.jpg 150w\" sizes=\"auto, (max-width: 263px) 100vw, 263px\" \/><figcaption>Jemima Abu<\/figcaption><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-is-functional-programming\">What is functional programming?&nbsp;<\/h2>\n\n\n\n<p>Jemima defines functional programming as \u201cbasically <a href=\"https:\/\/www.codemotion.com\/magazine\/articles\/events\/lambda-functional-programming\/\" class=\"ek-link\">a way of programming using functions<\/a>. It&#8217;s kind of like a mathematical approach to programming. So you expect answers based on the inputs that you gave &#8211; your input should always be equal to your output. So to do that, you want to make sure that there are no side effects anywhere, you&#8217;re not changing any values that you&#8217;re not supposed to be changing. This is very strict, clean <span id=\"urn:enhancement-c67d539\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/computer_programming\">programming<\/span>.\u201d<\/p>\n\n\n\n<p>Functional programming is also about thinking about construction software differently by creating pure functions. It avoids concepts of shared state and mutable data which are typically observed in <a href=\"https:\/\/www.codemotion.com\/magazine\/Glossary\/object-oriented-programming\/\" class=\"ek-link\">Object-Oriented Programming<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-attraction-of-functional-programming\">The attraction of functional programming&nbsp;<\/h2>\n\n\n\n<p>Jemima\u2019s first interest in functional programming occurred when she started working with <a href=\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/web-developer\/react-project-cra-nextjs-gatsby\/\" class=\"ek-link\">React<\/a>. \u201cWe used to use class components. You have to define everything as a class, and it was a little binding. Then I got into React Hooks where you just define your components as functions. You don&#8217;t need to bind anything to anything because it&#8217;s just a function, and everything exists in that local scope of the <span id=\"urn:enhancement-899499f2\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/subroutine\">function<\/span>.\u201d<\/p>\n\n\n\n<p>Jemima learned that <strong>React Hooks<\/strong> operate using the functional programming method and class components operate using object-oriented programming methods. They let you use state and other React features without writing a class:<\/p>\n\n\n\n<p>\u201cBecause I knew object-oriented programming from my days at school, where we had to learn about things like encapsulation, polymorphism, and inheritance, it was all very jumbled up when it came to the actual theory. But it was really the first time I saw the practical <span id=\"urn:enhancement-7dd406d3\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">application<\/span> and then I realised that Hooks are great.\u201d<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-are-you-using-functional-programming-today\">How are you using functional programming today?&nbsp;<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/bigstock-Functional-Programming-Code-231296137-1024x576.jpg\" alt=\"Functional Programming Code\" class=\"wp-image-7370\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/bigstock-Functional-Programming-Code-231296137-1024x576.jpg 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/bigstock-Functional-Programming-Code-231296137-300x169.jpg 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/bigstock-Functional-Programming-Code-231296137-768x432.jpg 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/bigstock-Functional-Programming-Code-231296137-896x504.jpg 896w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/bigstock-Functional-Programming-Code-231296137-400x225.jpg 400w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/bigstock-Functional-Programming-Code-231296137.jpg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>Jemima is still working with react hooks and notes that <strong>Redux Reducers<\/strong> are also relevant when it comes to the principles of functional programming. She notes that a reducing redux has to be a pure function, meaning that it can only take in inputs, and then return on outputs based on the given input:<\/p>\n\n\n\n<p>\u201cSo if you have a global state method, for example, in your Redux Reducer, your Redux reducer cannot modify that statement. It creates a new instance of the state method that is changed according to the act passed into it. You&#8217;re not trying to modify any global variables, you&#8217;re trying to always create new instances and then modify them, so you don&#8217;t have any side effects. That&#8217;s why we don&#8217;t do things like <span id=\"urn:enhancement-70bea1a9\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/system_console\">console<\/span> logging, or handling synchronous calls because technically, those are side effects.\u201d&nbsp;<\/p>\n\n\n\n<p>Jemima notes that the practical applications of functional programming are particularly interesting relating to middleware when writing code: \u201cYou know you should not be doing this in reducers. But then sometimes you don&#8217;t really know why you&#8217;re not allowed to do that. And reducers are why you need middleware.\u201d<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-thoughts-for-developers-interested-in-learning-more\">Thoughts for developers interested in learning more <\/h2>\n\n\n\n<p>According to Jemima, <strong>a developer may be working with functional programming more than they realise<\/strong>: \u201cSome people think of paradigms as very strict. You have languages where you have to follow specific principles like Haskell or Scala. But JavaScript is like this big bowl of wibbly, wobbly programming, where nothing is fixed. So you can use whatever power that works for you. it&#8217;s just up to you to decide okay, so I <span id=\"urn:enhancement-6153eb4e\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/knowledge\">know<\/span> how to write these <span id=\"urn:enhancement-7d3fb0ab\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/component-based_software_engineering\">components<\/span> in a functional way. But now I want to understand why I need to write them out.\u201d<\/p>\n\n\n\n<p>She suggests that you could use whatever programming language you like depending on what libraries you&#8217;re working with. It\u2019s not like learning a new language as if you&#8217;re working with React, you&#8217;re using React Hooks, you use effects and Reducers and these concepts already exist. It&#8217;s more about <span id=\"urn:enhancement-fbe8c031\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/understanding\">understanding<\/span> why they exist.\u201d&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-why-should-someone-come-along-to-your-talk\">Why should someone come along to your talk?<\/h2>\n\n\n\n<p>Jemima suggests that her presentation will be useful for people who are already working with React or are looking to get into <span id=\"urn:local-annotation-54538\" class=\"textannotation disambiguated\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/react\">React<\/span>, especially anyone who is already working with class <span id=\"urn:enhancement-47eca0c6\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/component-based_software_engineering\">components<\/span>. She suggests:<\/p>\n\n\n\n<p>\u201cIf you make the switch to Hooks, or you work with state management libraries, and you want to understand the concepts behind how state management libraries work, or how you should rely on middleware as the manager applications. If you\u2019re interested in <span id=\"urn:enhancement-9ed6e733\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/learning\">learning<\/span> the hows and whys of the concepts behind these languages, then you could show up to my talk.\u201d It\u2019s also a great talk for anyone looking to <span id=\"urn:enhancement-5289727e\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/learning\">learn<\/span> a&nbsp; new programming paradigm or understand the difference between object-oriented programming and functional programming.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-want-to-learn-more-about-functional-programming\">Want to learn more about functional programming?&nbsp;<\/h2>\n\n\n\n<p>Join Jemima to learn more at our upcoming digital conference where she&#8217;ll properly delve into the concept of functional programming in JavaScript and explore some real life applications of the benefits of writing functional <span id=\"urn:enhancement-7fdce985\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span>.<\/p>\n\n\n\n<p><a href=\"https:\/\/events.codemotion.com\/conferences\/online\/2020\/online-tech-conference-italian-edition\/\"><em>The Codemotion Virtual conference: The Italian Edition<\/em><\/a> is held November 24 &#8211; 26, from 14:00 to 19:00 CET.\u00a0<\/p>\n\n\n\n<p>A single ticket grants you attendance to four conferences spread over the week, offering a deep dive into a plethora of topics relating to Backend, Frontend, Emerging Technologies, and AI \/ ML \/ DL. It\u2019s a fantastic opportunity to learn first-hand about the best state-of-the-art technology, activities, good practices, and case studies for everyone working in tech regardless of your profile or your level of <span id=\"urn:enhancement-980ece2\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/experience\">experience<\/span>.<\/p>\n\n\n","protected":false},"excerpt":{"rendered":"<p>Looking for something new without the need for frameworks and libraries? Do you like maths? You might want to take a look at how you can functionally program with JavaScript and apply functional programming to your application to optimize your code. Jemima Abu is a self-taught Front End Developer and school-taught Systems Engineer from Lagos,&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/learn-functional-programming\/\">Read more<\/a><\/p>\n","protected":false},"author":85,"featured_media":12175,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":4,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[8],"tags":[3412],"collections":[],"class_list":{"0":"post-12174","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-javascript","8":"tag-functional-programming","9":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Why you should learn functional programming - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"Jemima Abu introduces some of the key concepts of functional programing in prepation for her talk at Codemotion conference.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/learn-functional-programming\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Why you should learn functional programming\" \/>\n<meta property=\"og:description\" content=\"Jemima Abu introduces some of the key concepts of functional programing in prepation for her talk at Codemotion conference.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/learn-functional-programming\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-11-18T12:28:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-12-23T10:42:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"853\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Cate Lawrence\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Cate Lawrence\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/javascript\\\/learn-functional-programming\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/javascript\\\/learn-functional-programming\\\/\"},\"author\":{\"name\":\"Cate Lawrence\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/person\\\/df32323fd62dc47fa8892426677a2cc1\"},\"headline\":\"Why you should learn functional programming\",\"datePublished\":\"2020-11-18T12:28:05+00:00\",\"dateModified\":\"2021-12-23T10:42:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/javascript\\\/learn-functional-programming\\\/\"},\"wordCount\":1021,\"publisher\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/javascript\\\/learn-functional-programming\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/woman-3597095_1280.jpg\",\"keywords\":[\"Functional Programming\"],\"articleSection\":[\"JavaScript\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/javascript\\\/learn-functional-programming\\\/\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/javascript\\\/learn-functional-programming\\\/\",\"name\":\"Why you should learn functional programming - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/javascript\\\/learn-functional-programming\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/javascript\\\/learn-functional-programming\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/woman-3597095_1280.jpg\",\"datePublished\":\"2020-11-18T12:28:05+00:00\",\"dateModified\":\"2021-12-23T10:42:01+00:00\",\"description\":\"Jemima Abu introduces some of the key concepts of functional programing in prepation for her talk at Codemotion conference.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/javascript\\\/learn-functional-programming\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/javascript\\\/learn-functional-programming\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/javascript\\\/learn-functional-programming\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/woman-3597095_1280.jpg\",\"contentUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/woman-3597095_1280.jpg\",\"width\":1280,\"height\":853},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/javascript\\\/learn-functional-programming\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dev Life\",\"item\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-life\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Events\",\"item\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/dev-life\\\/events\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Why you should learn functional programming\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#website\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/codemotionlogo.png\",\"contentUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Codemotion.Italy\\\/\",\"https:\\\/\\\/x.com\\\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/person\\\/df32323fd62dc47fa8892426677a2cc1\",\"name\":\"Cate Lawrence\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2dbf9850a6e06e402d71247f79a76d6a5adad553ed6aab558a29a4107e5e83b1?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2dbf9850a6e06e402d71247f79a76d6a5adad553ed6aab558a29a4107e5e83b1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2dbf9850a6e06e402d71247f79a76d6a5adad553ed6aab558a29a4107e5e83b1?s=96&d=mm&r=g\",\"caption\":\"Cate Lawrence\"},\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/author\\\/cate-lawrence\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Why you should learn functional programming - Codemotion Magazine","description":"Jemima Abu introduces some of the key concepts of functional programing in prepation for her talk at Codemotion conference.","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:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/learn-functional-programming\/","og_locale":"en_US","og_type":"article","og_title":"Why you should learn functional programming","og_description":"Jemima Abu introduces some of the key concepts of functional programing in prepation for her talk at Codemotion conference.","og_url":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/learn-functional-programming\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2020-11-18T12:28:05+00:00","article_modified_time":"2021-12-23T10:42:01+00:00","og_image":[{"width":1280,"height":853,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280.jpg","type":"image\/jpeg"}],"author":"Cate Lawrence","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Cate Lawrence","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/learn-functional-programming\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/learn-functional-programming\/"},"author":{"name":"Cate Lawrence","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/df32323fd62dc47fa8892426677a2cc1"},"headline":"Why you should learn functional programming","datePublished":"2020-11-18T12:28:05+00:00","dateModified":"2021-12-23T10:42:01+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/learn-functional-programming\/"},"wordCount":1021,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/learn-functional-programming\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280.jpg","keywords":["Functional Programming"],"articleSection":["JavaScript"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/learn-functional-programming\/","url":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/learn-functional-programming\/","name":"Why you should learn functional programming - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/learn-functional-programming\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/learn-functional-programming\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280.jpg","datePublished":"2020-11-18T12:28:05+00:00","dateModified":"2021-12-23T10:42:01+00:00","description":"Jemima Abu introduces some of the key concepts of functional programing in prepation for her talk at Codemotion conference.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/learn-functional-programming\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/learn-functional-programming\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/learn-functional-programming\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280.jpg","width":1280,"height":853},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/javascript\/learn-functional-programming\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Dev Life","item":"https:\/\/www.codemotion.com\/magazine\/dev-life\/"},{"@type":"ListItem","position":3,"name":"Events","item":"https:\/\/www.codemotion.com\/magazine\/dev-life\/events\/"},{"@type":"ListItem","position":4,"name":"Why you should learn functional programming"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/df32323fd62dc47fa8892426677a2cc1","name":"Cate Lawrence","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2dbf9850a6e06e402d71247f79a76d6a5adad553ed6aab558a29a4107e5e83b1?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2dbf9850a6e06e402d71247f79a76d6a5adad553ed6aab558a29a4107e5e83b1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2dbf9850a6e06e402d71247f79a76d6a5adad553ed6aab558a29a4107e5e83b1?s=96&d=mm&r=g","caption":"Cate Lawrence"},"url":"https:\/\/www.codemotion.com\/magazine\/author\/cate-lawrence\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280-600x600.jpg","author_info":{"display_name":"Cate Lawrence","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/cate-lawrence\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280.jpg",1280,853,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280-300x200.jpg",300,200,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280-768x512.jpg",768,512,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280-1024x682.jpg",1024,682,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280.jpg",1280,853,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280.jpg",1280,853,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280.jpg",100,67,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280-896x504.jpg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/woman-3597095_1280-600x600.jpg",600,600,true]},"uagb_author_info":{"display_name":"Cate Lawrence","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/cate-lawrence\/"},"uagb_comment_info":0,"uagb_excerpt":"Looking for something new without the need for frameworks and libraries? Do you like maths? You might want to take a look at how you can functionally program with JavaScript and apply functional programming to your application to optimize your code. Jemima Abu is a self-taught Front End Developer and school-taught Systems Engineer from Lagos,&#8230;&hellip;","lang":"en","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/12174","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/85"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=12174"}],"version-history":[{"count":8,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/12174\/revisions"}],"predecessor-version":[{"id":14197,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/12174\/revisions\/14197"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/12175"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=12174"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=12174"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=12174"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=12174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}