1 / 19

Cody Coleman, Matt Davis, and Mel Green

F#. Cody Coleman, Matt Davis, and Mel Green. History of F#. Started in 2002 Created by Don Syme , and backed by Microsoft Research Group. Sought to combine the power of typed functional programming with the strengths of .Net. Influenced By.

armine
Download Presentation

Cody Coleman, Matt Davis, and Mel Green

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. F# Cody Coleman, Matt Davis, and Mel Green

  2. History of F# • Started in 2002 • Created by Don Syme, and backed by Microsoft Research Group. • Sought to combine the power of typed functional programming with the strengths of .Net

  3. Influenced By • It’s predecessors include, OCaml, ML, Haskell, and .Net languages. • It’s considered OCaml for .Net. • F# has encapsulated and build upon many of OCaml’s strengths • Haskell influenced Sequence Expressions and Workflows. • F# inherited hundreds of important and major implementation stack libraries like LINQ.

  4. Syntax • Shares syntax with ancestors: ML, Ocaml

  5. Types

  6. Functions let rec fib n = match n with | 1 | 2 -> 1 | _ -> fib(n-2) + fib(n-1) • Lambda fun x -> x + 1 • Currying let add x y = x + y

  7. Asynchronous Workflows

  8. Piping let algorithm n = n |> (fun x -> x + 5) |> (fun x -> x * x) |> (fun x -> x.ToString()) let result = algorithm 3 result: “64”

  9. Pattern Matching

  10. Binding

  11. Scope

  12. Interactive Scripting

  13. .Net Integration

  14. Examples: Currying • Simple Curried Function the 2001 Space odyssey could have used to track it’s HAL 9000 Computer Automated System.

  15. Examples: IsPrime • Simple yet effective • Takes a grand total of about 20 seconds

  16. Examples: IsPrime(optimized) • The largest factor of a number is its square root. So we only need the numbers from 2 to sqrt n. • Takes only .20 seconds

  17. Examples: The OptimusPrime • Who needs evens? 2 is the only even prime, so why test all the rest. Yield to the rescue. • This one takes a mind numbing, earth shattering .11 seconds.

  18. Examples: SumOfSquares • Sum of Squares

  19. Benchmarks

More Related