{"id":9888,"date":"2020-08-14T19:18:48","date_gmt":"2020-08-15T02:18:48","guid":{"rendered":"https:\/\/careerkarma.com\/blog\/?p=9888"},"modified":"2022-11-05T18:30:34","modified_gmt":"2022-11-06T01:30:34","slug":"functional-programming-languages","status":"publish","type":"post","link":"https:\/\/careerkarma.com\/blog\/functional-programming-languages\/","title":{"rendered":"Functional Programming Languages: Complete Guide"},"content":{"rendered":"\n<p><em>Functional style programming focuses on pure math functions, immutable data, logic flow, and strong data typing. Functional programming languages are the opposite of object-oriented ones, which focuses on mutable data and changeable states. <\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>Functional programming languages are everywhere, and the vast majority of the internet uses them. In fact, I\u2019m using a functional programming language right now to type this article.&nbsp;<\/p>\n\n\n\n<p>Learning what a functional programming language is and knowing its advantages and disadvantages is useful for anyone entering into a field in computers or programming.&nbsp;<\/p>\n\n\n\n<p>Let\u2019s take a moment to define this programming paradigm (and paradigms in general) and then look at some of the pros and cons of functional programming.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-is-a-programming-paradigm\"> What is a Programming Paradigm? <\/h2>\n\n\n\n<p>Since computers are, at their core, machines, we need a good way to communicate with them. However, the more abstracted from ones and zeros that we get, the more specialized a language becomes. This is why we have so many high-level languages, because they all function a little differently and are all well suited for different tasks.&nbsp;<\/p>\n\n\n\n<p>Enter the programming paradigm, which is a way to categorize programming languages by their central theory or methodology for handling data. Languages qualify for a paradigm by having a number of defining principles. There are many programming paradigms, many of which overlap or contain other paradigms. The two major paradigms are functional and object- oriented, but there are plenty more ways of handling data not considered by these two paradigms. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-is-functional-programming\">What is Functional Programming?<\/h2>\n\n\n\n<p>Functional programming is one of the two most well-known programming paradigms, with object-oriented programming being the other. In short, functional programming focuses on pure mathematical functions and immutable data, which is data that cannot be changed after it\u2019s created. It doesn\u2019t have state, which means that the only thing that changes in a functional program is the input.<\/p>\n\n\n\n<p>Because there are no changing states with objects, in functional programming you could conceptually change around the order of the code and still have the same output. It\u2019s as if you were multiplying eight numbers together, it wouldn\u2019t matter what order you multiply them in, you would still achieve the same result.&nbsp;<\/p>\n\n\n\n<p>In this sense, functional programming is all about flow. Inputs come in the top and results fall out of the bottom. This contrasts with object-oriented programming, which is more of a changing state machine, with unique and mutable objects.&nbsp;<\/p>\n\n\n\n<p>Functional programming falls under the imperative programming paradigm umbrella, the opposite of declarative programming where object-oriented programming resides.<\/p>\n\n\n\n<p>Functional programming has been around quite a bit longer than object-oriented programming, going as far back as the Turing machine. It had seen a decline in the past couple of generations, but it\u2019s made a rather large comeback recently in<a href=\"https:\/\/careerkarma.com\/blog\/what-can-i-make-with-javascript\/\"> JavaScript<\/a>, which is paradigm-agnostic but has been considered a more functional language than an object-oriented one.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-defining-principles-of-functional-programming\">Defining Principles of Functional Programming<\/h3>\n\n\n\n<p>Functional programming rests on a few defining principles, which all languages that subscribe to this methodology rest on as well. They are:<br><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Pure Functions<\/strong> &#8211; Functional programming uses pure functions. These are functions that do not change, produce reliable results, and always produce the same result for the same input. They do not produce unexpected results or side effects and are absolutely predictable, regardless of outside code.&nbsp;<\/li><li><strong>Immutability<\/strong> &#8211; This is the principle that once you set a value for something, that value won\u2019t change. This eliminates side effects or unexpected results because the program isn\u2019t reliant on state. Thus, functions always work the same way every time they are run; they are pure functions.&nbsp;<\/li><li><strong>Disciplined State<\/strong> &#8211; New values can be created, so there are some states that can change in that sense, but it\u2019s a deeply controlled process. Functional programming strives to avoid shared state and mutability. If the state is tightly controlled, it\u2019s easier to scale and debug, and you get less unexpected results if something mutable changes in a way that is unexpected.<\/li><li><strong>Referential Transparency<\/strong> &#8211; This principle comes from a combination of pure functions and immutability. Because our functions are pure and predictable, we can use them to replace variables, and therefore reduce the number of assignments we make. If the result of a function would equal a variable, since our results are predictable, we can just replace the variable with that function.&nbsp;<\/li><li><strong>First Class Functions<\/strong> &#8211; This principle is simple. Functional programming values certain functions, first class functions, very highly. Therefore it has support to pass whole functions between itself as easily as other languages might with variables. These functions can be treated like values or data in functional programming.&nbsp;<\/li><li><strong>Type Systems <\/strong>&#8211; Since functional programming is so focused on precision and preventing errors, having a statically typed system makes sense. This is to make sure that every data type is assigned correctly, strings are strings and floats are floats, and prevents you from using unpredictable variables. This helps out our pure, error-free functions that may require a certain data type to work properly. <\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-functional-programming-pros-and-cons\">Functional Programming Pros and Cons<\/h2>\n\n\n\n<p>As with all programming paradigms, functional programming has its advantages and disadvantages. Let\u2019s take a look at them to figure out our best use case for functional programming.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-pros\">Pros<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Readability<\/strong> &#8211; Because we\u2019ve kept almost everything to a function level, our code is easy to read. What you see is what you get, the states don\u2019t change unexpectedly, and most of the data is immutable. There is no need to search for what is controlling our variables, or throwing out an odd error, or changing our code from other functions. All of our code is in front of us with functional programming.&nbsp;<\/li><li><strong>Stability<\/strong> &#8211; Because we\u2019ve so strictly controlled our code there are no loose ends, no wild or errant variables, and no side effects. Everything tends to happen as planned because that is how the code is designed. Rather than being an unpredictable state machine that has too many moving parts to keep track of or fully understand, functional programming is more like static objects data bounces off as it makes its way downstream.&nbsp;<\/li><li><strong>Easier to build<\/strong> &#8211; Because functional programming is so stable it\u2019s easy to keep building on it, trusting that your foundation is secure. It\u2019s also easier to achieve high levels of abstraction, with functions on functions, that allows you to neatly tuck away most of your more routine code, like iterative programs and code, and makes for shorter and more stable code.&nbsp;<\/li><li><strong>Easier to debug<\/strong> &#8211; Because the code is readable, the flow of data has a clear path through the code, and our functions are holy and pure, debugging is a lot easier. You will spend less time chasing down errant bugs, side effects, and unpredictable states if there are no states or mutability.&nbsp;<\/li><li><strong>Focus on what, not how<\/strong> &#8211; Functional programming falls under the declarative umbrella paradigm, which means the focus when programming is on what you want to happen, while functions will take care of the how.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-cons\">Cons<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Less readable<\/strong> &#8211; For some of the same reasons functional programming can be easily read, it can also be difficult to read. Many of the features in functional programming can be easily abused to create teetering towers of abstraction, where a short line can contain volumes and one must dig through piles of functions to find what it really does.&nbsp;<\/li><li><strong>Hard to learn<\/strong> &#8211; Functional programming is more academic and strict than object-oriented programming. It also requires a better understanding of algebra, lambda calculus, and category theory, which it relies on heavily. There are less accessible learning materials for functional programming, and functional programming requires a different kind of logic than we are typically used to.&nbsp;<\/li><li><strong>Hard to use<\/strong> &#8211; Upholding the above principles is difficult, especially when having mutable states makes programming so much easier. Functional programming often makes you take the long way around, so while writing an individual function is easy, creating a complete program is difficult.&nbsp;<\/li><li><strong>Performance<\/strong> &#8211; Using a lot of immutable values means using more memory or more processing power, because to change a value one must either create a new piece of information or run a function to get the result every time it\u2019s called.<\/li><li><strong>Input\/Output<\/strong> &#8211; IO relies on side effects, which functional programming is designed to avoid. While IO can be integrated into functional programs, it goes against the flow by nature and requires special consideration.&nbsp;<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-functional-programming-languages\">Functional Programming Languages<\/h2>\n\n\n\n<p>Functional programming is a lot older than object-oriented programming, and it\u2019s made a bit of a comeback in recent years. That comeback is mostly due to the <a href=\"http:\/\/Functional Programming Languages: Complete Guide\" target=\"_blank\" rel=\"noopener\" rel=\"nofollow\">programming languages on this list<\/a>.<br><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>JavaScript<\/strong> &#8211; While JavaScript isn\u2019t a purely functional language, it does have a lot of functional programming features. Because of this, programmers have been using functional programming in JavaScript more often than before because it can be more useful and stable in certain scripting situations over object-oriented languages.&nbsp;<\/li><li><strong>Clojure<\/strong> &#8211; This one isn\u2019t quite the household name that JavaScript is, but it\u2019s a solid functional programming language built on top of Lsip, which has been around since the 1950\u2019s. This means it\u2019s functional down to its roots. It runs on the Java platform and is compiled to JVM bytecode.<\/li><li><strong>Haskell<\/strong> &#8211; Haskell is another pure functional language, and it\u2019s designed around solving real world problems, rather than academic ones. It\u2019s not as old as Lisp; it was created in the 1990s. It\u2019s been used for a few popular projects, like Xmonad window manager.<\/li><\/ul>\n\n\n\n<p>While functional programming fills a more particular spot over object-oriented languages, its rise in popularity means a demand for more functional programmers in a field where there are very few. Learning functional programming would put you in a unique job market, one that is rewarding and enjoyable in its own right.&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"Functional style programming focuses on pure math functions, immutable data, logic flow, and strong data typing. Functional programming languages are the opposite of object-oriented ones, which focuses on mutable data and changeable states. Functional programming languages are everywhere, and the vast majority of the internet uses them. In fact, I\u2019m using a functional programming language&hellip;","protected":false},"author":45,"featured_media":9241,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[18070],"tags":[],"class_list":{"0":"post-9888","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-software-engineering-skills"},"acf":{"post_sub_title":"","sprint_id":"","query_class":"Software Engineering","school_sft":"","parent_sft":"","school_privacy_policy":"","has_review":"","is_sponser_post":"","is_guest_post":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.4 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Functional Programming Languages: Complete Guide | Career Karma<\/title>\n<meta name=\"description\" content=\"Learn all about the major functional programming languages and how they are used in software engineering.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/careerkarma.com\/blog\/functional-programming-languages\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Functional Programming Languages: Complete Guide\" \/>\n<meta property=\"og:description\" content=\"Learn all about the major functional programming languages and how they are used in software engineering.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/careerkarma.com\/blog\/functional-programming-languages\/\" \/>\n<meta property=\"og:site_name\" content=\"Career Karma\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/facebook.com\/careerkarmaapp\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-15T02:18:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-06T01:30:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2019\/12\/nesa-by-makers-uAcoCc1dKiA-unsplash-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"667\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ethan Scully\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@career_karma\" \/>\n<meta name=\"twitter:site\" content=\"@career_karma\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ethan Scully\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/functional-programming-languages\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/functional-programming-languages\\\/\"},\"author\":{\"name\":\"Ethan Scully\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/#\\\/schema\\\/person\\\/ef903a75c71f406d67080c5947efdf69\"},\"headline\":\"Functional Programming Languages: Complete Guide\",\"datePublished\":\"2020-08-15T02:18:48+00:00\",\"dateModified\":\"2022-11-06T01:30:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/functional-programming-languages\\\/\"},\"wordCount\":1675,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/functional-programming-languages\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/nesa-by-makers-uAcoCc1dKiA-unsplash-1.jpg\",\"articleSection\":[\"Software Engineering\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/careerkarma.com\\\/blog\\\/functional-programming-languages\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/functional-programming-languages\\\/\",\"url\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/functional-programming-languages\\\/\",\"name\":\"Functional Programming Languages: Complete Guide | Career Karma\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/functional-programming-languages\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/functional-programming-languages\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/nesa-by-makers-uAcoCc1dKiA-unsplash-1.jpg\",\"datePublished\":\"2020-08-15T02:18:48+00:00\",\"dateModified\":\"2022-11-06T01:30:34+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/#\\\/schema\\\/person\\\/ef903a75c71f406d67080c5947efdf69\"},\"description\":\"Learn all about the major functional programming languages and how they are used in software engineering.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/functional-programming-languages\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/careerkarma.com\\\/blog\\\/functional-programming-languages\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/functional-programming-languages\\\/#primaryimage\",\"url\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/nesa-by-makers-uAcoCc1dKiA-unsplash-1.jpg\",\"contentUrl\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/12\\\/nesa-by-makers-uAcoCc1dKiA-unsplash-1.jpg\",\"width\":1000,\"height\":667},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/functional-programming-languages\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Software Engineering\",\"item\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/software-engineering-skills\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Functional Programming Languages: Complete Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/\",\"name\":\"Career Karma\",\"description\":\"Latest Coding Bootcamp News &amp; Career Hacks from Industry Insiders\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/#\\\/schema\\\/person\\\/ef903a75c71f406d67080c5947efdf69\",\"name\":\"Ethan Scully\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/ethan-scully-150x150.jpg\",\"url\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/ethan-scully-150x150.jpg\",\"contentUrl\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/ethan-scully-150x150.jpg\",\"caption\":\"Ethan Scully\"},\"description\":\"Ethan Scully is a writer, editor, and game developer who manages Career Karma's content partnership initiatives and is currently based in Istanbul. His relationships with coding bootcamps give him particular insight into these new job training programs. Before joining the Career Karma team, Scully worked in IT support, graphic design, and as an editor for Cambodia's Khmer Times.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/ethanscully\\\/\"],\"url\":\"https:\\\/\\\/careerkarma.com\\\/blog\\\/author\\\/ethan-scully\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Functional Programming Languages: Complete Guide | Career Karma","description":"Learn all about the major functional programming languages and how they are used in software engineering.","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:\/\/careerkarma.com\/blog\/functional-programming-languages\/","og_locale":"en_US","og_type":"article","og_title":"Functional Programming Languages: Complete Guide","og_description":"Learn all about the major functional programming languages and how they are used in software engineering.","og_url":"https:\/\/careerkarma.com\/blog\/functional-programming-languages\/","og_site_name":"Career Karma","article_publisher":"http:\/\/facebook.com\/careerkarmaapp","article_published_time":"2020-08-15T02:18:48+00:00","article_modified_time":"2022-11-06T01:30:34+00:00","og_image":[{"width":1000,"height":667,"url":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2019\/12\/nesa-by-makers-uAcoCc1dKiA-unsplash-1.jpg","type":"image\/jpeg"}],"author":"Ethan Scully","twitter_card":"summary_large_image","twitter_creator":"@career_karma","twitter_site":"@career_karma","twitter_misc":{"Written by":"Ethan Scully","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/careerkarma.com\/blog\/functional-programming-languages\/#article","isPartOf":{"@id":"https:\/\/careerkarma.com\/blog\/functional-programming-languages\/"},"author":{"name":"Ethan Scully","@id":"https:\/\/careerkarma.com\/blog\/#\/schema\/person\/ef903a75c71f406d67080c5947efdf69"},"headline":"Functional Programming Languages: Complete Guide","datePublished":"2020-08-15T02:18:48+00:00","dateModified":"2022-11-06T01:30:34+00:00","mainEntityOfPage":{"@id":"https:\/\/careerkarma.com\/blog\/functional-programming-languages\/"},"wordCount":1675,"commentCount":0,"image":{"@id":"https:\/\/careerkarma.com\/blog\/functional-programming-languages\/#primaryimage"},"thumbnailUrl":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2019\/12\/nesa-by-makers-uAcoCc1dKiA-unsplash-1.jpg","articleSection":["Software Engineering"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/careerkarma.com\/blog\/functional-programming-languages\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/careerkarma.com\/blog\/functional-programming-languages\/","url":"https:\/\/careerkarma.com\/blog\/functional-programming-languages\/","name":"Functional Programming Languages: Complete Guide | Career Karma","isPartOf":{"@id":"https:\/\/careerkarma.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/careerkarma.com\/blog\/functional-programming-languages\/#primaryimage"},"image":{"@id":"https:\/\/careerkarma.com\/blog\/functional-programming-languages\/#primaryimage"},"thumbnailUrl":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2019\/12\/nesa-by-makers-uAcoCc1dKiA-unsplash-1.jpg","datePublished":"2020-08-15T02:18:48+00:00","dateModified":"2022-11-06T01:30:34+00:00","author":{"@id":"https:\/\/careerkarma.com\/blog\/#\/schema\/person\/ef903a75c71f406d67080c5947efdf69"},"description":"Learn all about the major functional programming languages and how they are used in software engineering.","breadcrumb":{"@id":"https:\/\/careerkarma.com\/blog\/functional-programming-languages\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/careerkarma.com\/blog\/functional-programming-languages\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/careerkarma.com\/blog\/functional-programming-languages\/#primaryimage","url":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2019\/12\/nesa-by-makers-uAcoCc1dKiA-unsplash-1.jpg","contentUrl":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2019\/12\/nesa-by-makers-uAcoCc1dKiA-unsplash-1.jpg","width":1000,"height":667},{"@type":"BreadcrumbList","@id":"https:\/\/careerkarma.com\/blog\/functional-programming-languages\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/careerkarma.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Software Engineering","item":"https:\/\/careerkarma.com\/blog\/software-engineering-skills\/"},{"@type":"ListItem","position":3,"name":"Functional Programming Languages: Complete Guide"}]},{"@type":"WebSite","@id":"https:\/\/careerkarma.com\/blog\/#website","url":"https:\/\/careerkarma.com\/blog\/","name":"Career Karma","description":"Latest Coding Bootcamp News &amp; Career Hacks from Industry Insiders","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/careerkarma.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/careerkarma.com\/blog\/#\/schema\/person\/ef903a75c71f406d67080c5947efdf69","name":"Ethan Scully","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/11\/ethan-scully-150x150.jpg","url":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/11\/ethan-scully-150x150.jpg","contentUrl":"https:\/\/careerkarma.com\/blog\/wp-content\/uploads\/2020\/11\/ethan-scully-150x150.jpg","caption":"Ethan Scully"},"description":"Ethan Scully is a writer, editor, and game developer who manages Career Karma's content partnership initiatives and is currently based in Istanbul. His relationships with coding bootcamps give him particular insight into these new job training programs. Before joining the Career Karma team, Scully worked in IT support, graphic design, and as an editor for Cambodia's Khmer Times.","sameAs":["https:\/\/www.linkedin.com\/in\/ethanscully\/"],"url":"https:\/\/careerkarma.com\/blog\/author\/ethan-scully\/"}]}},"_links":{"self":[{"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/posts\/9888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/users\/45"}],"replies":[{"embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/comments?post=9888"}],"version-history":[{"count":0,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/posts\/9888\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/media\/9241"}],"wp:attachment":[{"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/media?parent=9888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/categories?post=9888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/careerkarma.com\/blog\/wp-json\/wp\/v2\/tags?post=9888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}