Advertisement
Advertisement

More Related Content

Advertisement

FSharp On The Desktop - Birmingham FP 2015

  1. F# ON THE DESKTOP Phillip Trelford Birmingham FP Meetup, 2015
  2. F#UNCTIONAL LONDONERS Founded Feb 2010 990+ Members Meets every 2 weeks Topics include  Machine Learning  Finance  Games  Web http://meetup.com/fsharplondon
  3. F# Statically Typed Functional First Object Oriented Open Source Cross Platform .Net language In Xamarin & Visual Studio
  4. TESTIMONIALS Phillip Trelford Birmingham FP Meetup, 2015
  5. GAMESYS ..our social slots games which by now serve over 700,000 unique playersand 150,000,000 requests per day at peaks of several thousand requests per second. The F# solution offers us an order of magnitude increase in productivity....
  6. LONDON ASSET MANAGEMENT COMPANY We have set up a complete risk management system that combines several data sources, presents them in a … WPF user interface, and does a LOT of calculation behind the scenes. When the calculation requires a proper algorithm (i.e. anything that is more complex than a simple for loop), our choice has been F#.
  7. HALO 3 & 4 Halo 3 – Matchmaking Halo 4 – Dispatcher frontend
  8. DESKTOP Phillip Trelford Birmingham FP Meetup, 2015
  9. DESKTOPS
  10. UI LIBRARIES Native XAML (WPF, Windows Store) WinForms DirectX (MonoGame, SharpDX, etc.) Excel (ExcelDNA, FCell) Browser ASP.Net MVC Suave NancyFX WebSharper/FunScript (F# to JS) .. or host your Web app as a Native app via Node.js…
  11. ANATOMY OF A DESKTOP APP Data extraction  Database / Web services  Configuration files Data manipulation  Domain models  Business rules Visualization  Forms/Grids  Charts
  12. F# DATA Phillip Trelford Birmingham FP Meetup, 2015
  13. TYPE PROVIDERS: JSON open FSharp.Data type Person = JsonProvider<""" { "name":"Name", "age":64 } """> let thomas = Person.Parse(""" { "name":"Thomas", "age":12 } """) person.Age
  14. SQL TYPE PROVIDER
  15. WORLD BANK DATA WITH FUNSCRIPT
  16. GRIDS, FORMS & BUTTONS Phillip Trelford Birmingham FP Meetup, 2015
  17. WINFORMS open System.IO open System.Windows.Forms [<System.STAThread>] do let form = new Form() let grid = new DataGridView() grid.Dock <- DockStyle.Fill form.Controls.Add(grid) form.Load.Add(fun _ -> let files = Directory.GetFiles(".") grid.DataSource <- [|for file in files -> FileInfo(file)|] ) Application.Run(form)
  18. XAML/WPF
  19. F# FOR SPREADSHEETS Phillip Trelford Birmingham FP Meetup, 2015
  20. FCELL = F# IN EXCEL
  21. CELLZ: UNITS IN CELLS type formula = | Neg of formula | Exp of formula * formula | ArithmeticOp of formula * arithmetic * formula | LogicalOp of formula * logical * formula | Num of UnitValue | Ref of int * int | Range of int * int * int * int | Fun of string * formula list
  22. CROSS PLATFORM F#
  23. MONO XWT Windows + WPF Windows + Gtk Linux + Gtk Mac + Gtk Mac + Cocoa
  24. MOBILE Xamarin Studio  iOS  Android  Windows mobile JS  PhoneGap  Apache Cordova
  25. EXAMPLE APPS Learn on the Go | WP Pissed off Owls| iOS Pool | WebGL
  26. http://tinyurl.com/funbasi c FUN BASIC - WINDOWS STORE APP
  27. RESOURCES Phillip Trelford Birmingham FP Meetup, 2015
  28. F# Software Foundation http://www.fsharp.org software stacks trainings teaching F# user groups snippets mac and linux cross-platform books and tutorials F# community open-source MonoDevelop contributions research support consultancy mailing list
  29. F# KOANS //--------------------------------------------------------------- // About Let // // The let keyword is one of the most fundamental parts of F#. // You'll use it in almost every line of F# code you write, so // let's get to know it well! (no pun intended) //--------------------------------------------------------------- [<Koan(Sort = 2)>] module ``about let`` = [<Koan>] let LetBindsANameToAValue() = let x = 50 AssertEquality x __
  30. TRYFSHARP.ORG
  31. BUY THE BOOK
  32. QUESTIONS? Twitter  @ptrelford Blog  http://trelford.com/blog F# Koans:  http://tinyurl.com/fsharpkoans

Editor's Notes

  1. http://www.meetup.com/Birmingham-Functional-Programmers-Meetup/events/224674962/
  2. https://twitter.com/migueldeicaza/status/631924642966540288
Advertisement