190 likes | 319 Vues
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.
E N D
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 • 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.
Syntax • Shares syntax with ancestors: ML, Ocaml
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
Piping let algorithm n = n |> (fun x -> x + 5) |> (fun x -> x * x) |> (fun x -> x.ToString()) let result = algorithm 3 result: “64”
Examples: Currying • Simple Curried Function the 2001 Space odyssey could have used to track it’s HAL 9000 Computer Automated System.
Examples: IsPrime • Simple yet effective • Takes a grand total of about 20 seconds
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
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.
Examples: SumOfSquares • Sum of Squares