{"id":8602,"date":"2021-05-20T14:36:38","date_gmt":"2021-05-20T14:36:38","guid":{"rendered":"https:\/\/prwatech.in\/blog\/?p=8602"},"modified":"2024-04-13T10:15:03","modified_gmt":"2024-04-13T10:15:03","slug":"first-class-functions-scala-first-class-function","status":"publish","type":"post","link":"https:\/\/prwatech.in\/blog\/scala\/scala-modules-scala\/first-class-functions-scala-first-class-function\/","title":{"rendered":"Scala &#8211; First Class Functions"},"content":{"rendered":"\r\n<h2><span data-sheets-root=\"1\" data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;scala First class function example Archives&quot;}\" data-sheets-userformat=\"{&quot;2&quot;:6145,&quot;3&quot;:{&quot;1&quot;:0,&quot;3&quot;:1},&quot;14&quot;:{&quot;1&quot;:3,&quot;3&quot;:1},&quot;15&quot;:&quot;Arial&quot;}\">scala First class function\u00a0<\/span><\/h2>\r\n<p>&nbsp;<\/p>\r\n<p>In functional programming, <a href=\"https:\/\/prwatech.in\/blog\/#\">functions<\/a> are <a href=\"http:\/\/scala-lang.org\">assign<\/a> to variables, pass to other functions as parameters, and return as values from other functions. Such functions are as First Class Functions.<\/p>\r\n<p>In Scala, functions are consider first-class citizens, which means they can be treat just like any other value, such as integers or strings. This powerful feature enables functional programming paradigms where functions can be pass as arguments to other functions, return from functions as results, and assign to variables.<\/p>\r\n<p>Scala&#8217;s support for first-class functions allows for concise and expressive code, promoting modular and reusable patterns. Functions can be defined using function literals (<code>(parameters) =&gt; expression<\/code>) or as named functions using the <code>def<\/code> keyword.<\/p>\r\n<p>First-class functions enable higher-order functions, which are functions that take other functions as parameters or return functions as results. This higher-order function capability facilitates common functional programming patterns such as map, filter, reduce, and more.<\/p>\r\n<p>Scala&#8217;s support for first-class functions is integral to its functional programming capabilities, enabling developers to write elegant and composable code. By leveraging first-class functions, developers can design more flexible and maintainable systems that embrace functional programming principles. This feature is particularly useful for asynchronous programming, event handling, and concurrency patterns in Scala applications. scala First class function<\/p>\r\n\r\n\r\n\r\n<h4><strong>Use case 1:<\/strong><\/h4>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>Assign function as Variable\r\nscala&gt;(i:Int) =&gt; {i*2}\r\nscala&gt;val doubler = (i:Int) =&gt; {i*2}\r\nscala&gt;doubler(5)<\/code><\/pre>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"559\" height=\"145\" class=\"wp-image-8604\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-44.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-44.png 559w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-44-300x78.png 300w\" sizes=\"auto, (max-width: 559px) 100vw, 559px\" \/><\/figure>\r\n\r\n\r\n\r\n<p><strong>2Use case 2:<\/strong><\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>Pass function as Parameter\r\nscala&gt;def operation(functionparam:(Int, Int) =&gt; Int){\r\n       println(functionparam(10,5))\r\n      }\r\nscala&gt; val sum = (x:Int, y:Int)=&gt; x+y\r\nscala&gt;operation(sum);\r\nscala&gt;val diff = (x:Int, y:Int)=&gt; x-y\r\nscala&gt;operation(diff);<\/code><\/pre>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"606\" height=\"289\" class=\"wp-image-8605\" src=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-45.png\" alt=\"\" srcset=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-45.png 606w, https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-45-300x143.png 300w\" sizes=\"auto, (max-width: 606px) 100vw, 606px\" \/><\/figure>\r\n\r\n\r\n\r\n<p><strong>Use case 3:<\/strong><\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>Return a Function\r\nobject prwatech {\r\n   def main(args: Array[String]) {\r\n\r\n    val doubleValue = doubler();\r\n    print(\"Double of 2 = \" + doubleValue(2));\r\n  }\r\n\r\n  def doubler() = (num: Int) =&gt; num * 2;\r\n}\r\n<\/code><\/pre>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>Output\r\nDouble of 2 = 4\r\n<\/code><\/pre>\r\n","protected":false},"excerpt":{"rendered":"<p>scala First class function\u00a0 &nbsp; In functional programming, functions are assign to variables, pass to other functions as parameters, and return as values from other functions. Such functions are as First Class Functions. In Scala, functions are consider first-class citizens, which means they can be treat just like any other value, such as integers or [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[565,1698],"tags":[1322,1321,1314,1319,1323,1320,1315,1317,1318,1316],"class_list":["post-8602","post","type-post","status-publish","format-standard","hentry","category-scala","category-scala-modules-scala","tag-define-first-class-function-in-scala","tag-explain-first-class-functons-scala","tag-first-class-function","tag-first-class-functions","tag-first-class-functions-examples","tag-first-class-functions-scala","tag-scala-first-class-function","tag-scala-first-class-function-example","tag-scala-first-class-function-use-cases","tag-what-is-first-class-function-in-scala"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>scala First class function - Prwatech<\/title>\n<meta name=\"description\" content=\"Master scala First class function - Dive deep with our expert instructors and comprehensive curriculum.User\" \/>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"scala First class function - Prwatech\" \/>\n<meta property=\"og:description\" content=\"Master scala First class function - Dive deep with our expert instructors and comprehensive curriculum.User\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prwatech.in\/blog\/scala\/scala-modules-scala\/first-class-functions-scala-first-class-function\/\" \/>\n<meta property=\"og:site_name\" content=\"Prwatech\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prwatech.in\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-05-20T14:36:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-13T10:15:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-44.png\" \/>\n<meta name=\"author\" content=\"Prwatech\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Eduprwatech\" \/>\n<meta name=\"twitter:site\" content=\"@Eduprwatech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prwatech\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\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:\/\/prwatech.in\/blog\/scala\/scala-modules-scala\/first-class-functions-scala-first-class-function\/\",\"url\":\"https:\/\/prwatech.in\/blog\/scala\/scala-modules-scala\/first-class-functions-scala-first-class-function\/\",\"name\":\"scala First class function - Prwatech\",\"isPartOf\":{\"@id\":\"https:\/\/prwatech.in\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prwatech.in\/blog\/scala\/scala-modules-scala\/first-class-functions-scala-first-class-function\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prwatech.in\/blog\/scala\/scala-modules-scala\/first-class-functions-scala-first-class-function\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-44.png\",\"datePublished\":\"2021-05-20T14:36:38+00:00\",\"dateModified\":\"2024-04-13T10:15:03+00:00\",\"author\":{\"@id\":\"https:\/\/prwatech.in\/blog\/#\/schema\/person\/db90baff7744090b2288bbc98fea87f3\"},\"description\":\"Master scala First class function - Dive deep with our expert instructors and comprehensive curriculum.User\",\"breadcrumb\":{\"@id\":\"https:\/\/prwatech.in\/blog\/scala\/scala-modules-scala\/first-class-functions-scala-first-class-function\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prwatech.in\/blog\/scala\/scala-modules-scala\/first-class-functions-scala-first-class-function\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prwatech.in\/blog\/scala\/scala-modules-scala\/first-class-functions-scala-first-class-function\/#primaryimage\",\"url\":\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-44.png\",\"contentUrl\":\"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-44.png\",\"width\":559,\"height\":145},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prwatech.in\/blog\/scala\/scala-modules-scala\/first-class-functions-scala-first-class-function\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/prwatech.in\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Scala &#8211; First Class Functions\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/prwatech.in\/blog\/#website\",\"url\":\"https:\/\/prwatech.in\/blog\/\",\"name\":\"Prwatech\",\"description\":\"Share Ideas, Start Something Good.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/prwatech.in\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/prwatech.in\/blog\/#\/schema\/person\/db90baff7744090b2288bbc98fea87f3\",\"name\":\"Prwatech\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prwatech.in\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c00bafc1b04045f31eda917de39891456c44fa47c092b9bb6be0f860a3a30a2f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c00bafc1b04045f31eda917de39891456c44fa47c092b9bb6be0f860a3a30a2f?s=96&d=mm&r=g\",\"caption\":\"Prwatech\"},\"url\":\"https:\/\/prwatech.in\/blog\/author\/prwatech123\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"scala First class function - Prwatech","description":"Master scala First class function - Dive deep with our expert instructors and comprehensive curriculum.User","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"scala First class function - Prwatech","og_description":"Master scala First class function - Dive deep with our expert instructors and comprehensive curriculum.User","og_url":"https:\/\/prwatech.in\/blog\/scala\/scala-modules-scala\/first-class-functions-scala-first-class-function\/","og_site_name":"Prwatech","article_publisher":"https:\/\/www.facebook.com\/prwatech.in\/","article_published_time":"2021-05-20T14:36:38+00:00","article_modified_time":"2024-04-13T10:15:03+00:00","og_image":[{"url":"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-44.png","type":"","width":"","height":""}],"author":"Prwatech","twitter_card":"summary_large_image","twitter_creator":"@Eduprwatech","twitter_site":"@Eduprwatech","twitter_misc":{"Written by":"Prwatech","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/prwatech.in\/blog\/scala\/scala-modules-scala\/first-class-functions-scala-first-class-function\/","url":"https:\/\/prwatech.in\/blog\/scala\/scala-modules-scala\/first-class-functions-scala-first-class-function\/","name":"scala First class function - Prwatech","isPartOf":{"@id":"https:\/\/prwatech.in\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prwatech.in\/blog\/scala\/scala-modules-scala\/first-class-functions-scala-first-class-function\/#primaryimage"},"image":{"@id":"https:\/\/prwatech.in\/blog\/scala\/scala-modules-scala\/first-class-functions-scala-first-class-function\/#primaryimage"},"thumbnailUrl":"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-44.png","datePublished":"2021-05-20T14:36:38+00:00","dateModified":"2024-04-13T10:15:03+00:00","author":{"@id":"https:\/\/prwatech.in\/blog\/#\/schema\/person\/db90baff7744090b2288bbc98fea87f3"},"description":"Master scala First class function - Dive deep with our expert instructors and comprehensive curriculum.User","breadcrumb":{"@id":"https:\/\/prwatech.in\/blog\/scala\/scala-modules-scala\/first-class-functions-scala-first-class-function\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prwatech.in\/blog\/scala\/scala-modules-scala\/first-class-functions-scala-first-class-function\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prwatech.in\/blog\/scala\/scala-modules-scala\/first-class-functions-scala-first-class-function\/#primaryimage","url":"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-44.png","contentUrl":"https:\/\/prwatech.in\/blog\/wp-content\/uploads\/2021\/05\/image-44.png","width":559,"height":145},{"@type":"BreadcrumbList","@id":"https:\/\/prwatech.in\/blog\/scala\/scala-modules-scala\/first-class-functions-scala-first-class-function\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/prwatech.in\/blog\/"},{"@type":"ListItem","position":2,"name":"Scala &#8211; First Class Functions"}]},{"@type":"WebSite","@id":"https:\/\/prwatech.in\/blog\/#website","url":"https:\/\/prwatech.in\/blog\/","name":"Prwatech","description":"Share Ideas, Start Something Good.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/prwatech.in\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/prwatech.in\/blog\/#\/schema\/person\/db90baff7744090b2288bbc98fea87f3","name":"Prwatech","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prwatech.in\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c00bafc1b04045f31eda917de39891456c44fa47c092b9bb6be0f860a3a30a2f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c00bafc1b04045f31eda917de39891456c44fa47c092b9bb6be0f860a3a30a2f?s=96&d=mm&r=g","caption":"Prwatech"},"url":"https:\/\/prwatech.in\/blog\/author\/prwatech123\/"}]}},"_links":{"self":[{"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/posts\/8602","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/comments?post=8602"}],"version-history":[{"count":7,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/posts\/8602\/revisions"}],"predecessor-version":[{"id":11449,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/posts\/8602\/revisions\/11449"}],"wp:attachment":[{"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/media?parent=8602"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/categories?post=8602"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prwatech.in\/blog\/wp-json\/wp\/v2\/tags?post=8602"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}