{"id":23,"date":"2009-11-19T16:19:25","date_gmt":"2009-11-19T16:19:25","guid":{"rendered":"\/blogs\/benbarefield\/archive\/2009\/11\/19\/study-group-f.aspx"},"modified":"2009-11-19T16:19:25","modified_gmt":"2009-11-19T16:19:25","slug":"study-group-f","status":"publish","type":"post","link":"https:\/\/www.benbarefield.com\/blog\/2009\/11\/19\/study-group-f\/","title":{"rendered":"Study Group &#8211; F#"},"content":{"rendered":"<p><a href=\"http:\/\/srtsolutions.com\/blogs\/chrismarinos\/default.aspx\" target=\"_blank\">Chris Marinos<\/a> led study group this week on F#. F# is Microsoft&#8217;s foray into functional programming; it isn&#8217;t strictly functional, but it is clearly designed with that purpose in mind. I thought I had gotten some of experience with functional concepts using LINQ in C# and in some of my Ruby experience, but Chris showed us some really cool ways of doing things.<\/p>\n<p>Chris started by presenting some of the language elements; one of the main points he talked on was side effects. Methods in imperative languages like C# can mutate the input arguments, so that if you pass the same reference into the method multiple times, you won&#8217;t get the same result each time. The input data will have changed. In F#, and other functional languages, methods are written without side effects, which makes them concentrate much more on what you are trying to accomplish.<\/p>\n<p>Next, we solved a couple <a href=\"http:\/\/projecteuler.net\/\" target=\"_blank\">Euler problems<\/a> in an imperative and functional way to see the differences in style and execution. It was a really interesting exercise.<\/p>\n<p>I&#8217;ve been interested in the idea of functional languages for sometime, so going over what we did was really interesting. I think it would be very cool to build an entire application in F#.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Chris Marinos led study group this week on F#. F# is Microsoft&#8217;s foray into functional programming; it isn&#8217;t strictly functional, but it is clearly designed with that purpose in mind. I thought I had gotten some of experience with functional &hellip; <a href=\"https:\/\/www.benbarefield.com\/blog\/2009\/11\/19\/study-group-f\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,11,16],"tags":[],"class_list":["post-23","post","type-post","status-publish","format-standard","hentry","category-net","category-f","category-study-group"],"_links":{"self":[{"href":"https:\/\/www.benbarefield.com\/blog\/wp-json\/wp\/v2\/posts\/23","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.benbarefield.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.benbarefield.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.benbarefield.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.benbarefield.com\/blog\/wp-json\/wp\/v2\/comments?post=23"}],"version-history":[{"count":0,"href":"https:\/\/www.benbarefield.com\/blog\/wp-json\/wp\/v2\/posts\/23\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.benbarefield.com\/blog\/wp-json\/wp\/v2\/media?parent=23"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.benbarefield.com\/blog\/wp-json\/wp\/v2\/categories?post=23"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.benbarefield.com\/blog\/wp-json\/wp\/v2\/tags?post=23"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}