Skip to content
Striking into F#

Details

Join join us for a talk on F# by Joe Koberg at a new meeting location we're trying out: VersionOne.com (http://www.VersionOne.com)'s downtown location in Ponce Spring Lofts, just minutes from Manuel's Tavern!

http://photos2.meetupstatic.com/photos/event/b/6/c/8/event_151846792.jpegAbout Joe Koberg

Joe Koberg is a developer at VersionOne. He's been exploring F# and other functional languages. His talk will showcase how to build a bowling scorer with F#, while explaining the functional programming mindset. Many concepts may be new to .NET devs first encountering F# and/or the functional programming paradigm.

Joe also participates in Freeside Atlanta (http://wiki.freesideatlanta.org/), which is a "hacker space collective". Check out the Hacker Space Manifesto (http://wiki.freesideatlanta.org/hacker-space-manifesto) to learn more.

http://photos4.meetupstatic.com/photos/event/c/0/1/4/event_151849172.jpeg

Meetup Agenda

7:00 - 7:30 : Arrive, register for prize raffle (30 day Pluralsight giveaway), and munch on free pizza and guzzle beer we'll provide!

7:30 - 7:40 : Announcements

7:40 - 8:30 : Presentation

8:30 - 9:30 : Open discussion, wind down

Source Code for Talk

https://github.com/jkoberg/Bowling-in-FSharp/blob/master/BowlingVS2010/BowlingProject/bowling.fs

Full project: https://github.com/jkoberg/Bowling-in-FSharp

More About F#

http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/

"F# is a succinct, expressive and efficient functional and object-oriented language for .NET which helps you write simple code to solve complex problems."

http://photos1.meetupstatic.com/photos/event/b/8/e/e/event_151847342.jpeg

Try F# In Your Web Browser

http://www.tryfsharp.org/

Joe Koberg's Notes on F#

Major language features:

Type inference - the compiler infers the type of expressions, so you dont have to specify them. Sometimes you need to give it some hints if it doesn't have enough information (polymorphic overrides of a method) Functional features - discriminated unions, partial application, tail recursion, pattern matching, etc... Abstraction of functions and values lead to fun operators, like the pipeline operators http://lorgonblog.wordpress.com/2008/03/30/pipelining-in-f/ Why use F#

Clean representation of clean programming metaphors Concise representation of OO and imperative metaphors First-class status in visual studio / Microsoft world Language convieniences such as tuples, closures, optional and keyword arguments, interactive prompt, etc... Fast, static .NET compiled output Conceptual hurdles

Good to understand side effects and pure functions. Calling functions for side effects may not work out the way you expect (See hello world) "Mutability" mindset should be dropped, where you keep values in "places" and update those "places" with new values. Better to think of a chain of transformations. Resources

MSDN Learning F# http://msdn.microsoft.com/en-us/vstudio/hh386303.aspx Inside F# Blog http://lorgonblog.wordpress.com/2009/11/01/some-quick-f-notes%E2%80%A6/ Microsoft language ref http://msdn.microsoft.com/en-us/library/dd233181 Similar Languages

Scala (Basically like F# if you're a java person) Haskell OCAML (F# is derived from OCAML)

Photo of ALT.NET Atlanta Pragmatic Programmers group
ALT.NET Atlanta Pragmatic Programmers
See more events
VersionOne
620 Glen Iris Dr NE · Atlanta, GA