Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Funkcijsko programiranje             F#                Primjeri   Resursi                                          F#     ...
Funkcijsko programiranje            F#                Primjeri            ResursiFunkcijsko programiranje          •   In ...
Funkcijsko programiranje           F#              Primjeri    ResursiPrimjer             [ for x in 1 .. 999 do          ...
Funkcijsko programiranje           F#               Primjeri           ResursiPrimjer             [ for x in 1 .. 999 do  ...
Funkcijsko programiranje            F#                    Primjeri   ResursiPovijest          •   teorijska podloga: A. Ch...
Funkcijsko programiranje               F#                 Primjeri   ResursiPovijest          •   teorijska podloga: A. Ch...
Funkcijsko programiranje               F#                 Primjeri   ResursiPovijest          •   teorijska podloga: A. Ch...
Funkcijsko programiranje                 F#                  Primjeri               ResursiPovijest          •   teorijska...
Funkcijsko programiranje   F#   Primjeri   ResursiFP u drugim jezicima          •   C#: LINQ
Funkcijsko programiranje             F#                 Primjeri         ResursiFP u drugim jezicima          •   C#: LINQ...
Funkcijsko programiranje             F#                 Primjeri         ResursiFP u drugim jezicima          •   C#: LINQ...
Funkcijsko programiranje              F#                  Primjeri         ResursiZa²to funkcijsko programiranje?         ...
Funkcijsko programiranje              F#                  Primjeri         ResursiZa²to funkcijsko programiranje?         ...
Funkcijsko programiranje              F#                  Primjeri         ResursiZa²to funkcijsko programiranje?         ...
Funkcijsko programiranje              F#                  Primjeri         ResursiZa²to funkcijsko programiranje?         ...
Funkcijsko programiranje              F#                  Primjeri         ResursiZa²to funkcijsko programiranje?         ...
Funkcijsko programiranje       F#      Primjeri   ResursiHello, World!             printfn Hello, World!
Funkcijsko programiranje              F#       Primjeri   ResursiF#          •   ML    =⇒     (O)Caml   =⇒   F#
Funkcijsko programiranje              F#            Primjeri       ResursiF#          •   ML    =⇒     (O)Caml   =⇒   F#  ...
Funkcijsko programiranje               F#           Primjeri       ResursiF#          •   ML    =⇒     (O)Caml   =⇒    F# ...
Funkcijsko programiranje                  F#   Primjeri   ResursiF#                                        1          •   ...
Funkcijsko programiranje                  F#       Primjeri   ResursiF#                                        1          ...
Funkcijsko programiranje                  F#           Primjeri   ResursiF#                                        1      ...
Funkcijsko programiranje             F#                Primjeri               ResursiF# i .NET Framework          •   puni...
Funkcijsko programiranje             F#                Primjeri               ResursiF# i .NET Framework          •   puni...
Funkcijsko programiranje             F#                Primjeri               ResursiF# i .NET Framework          •   puni...
Funkcijsko programiranje             F#                Primjeri               ResursiF# i .NET Framework          •   puni...
Funkcijsko programiranje            F#                    Primjeri   ResursiF# na Windowsima          •   Visual Studio 20...
Funkcijsko programiranje                 F#                      Primjeri         ResursiF# na drugim platformama         ...
Funkcijsko programiranje   F#   Primjeri   ResursiPrimjeri
Funkcijsko programiranje            F#              Primjeri       ResursiResursi          •   F# Programming:            ...
Upcoming SlideShare
Loading in …5
×

F#: Funkcijsko programiranje za .NET

1,049 views

Published on

Published in: Technology
  • Be the first to comment

F#: Funkcijsko programiranje za .NET

  1. 1. Funkcijsko programiranje F# Primjeri Resursi F# Funkcijsko programiranje za .NET Nikola Pleji¢ <nikola@plejic.com> Web User Group, studeni 2010.
  2. 2. Funkcijsko programiranje F# Primjeri ResursiFunkcijsko programiranje • In computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data.
  3. 3. Funkcijsko programiranje F# Primjeri ResursiPrimjer [ for x in 1 .. 999 do if x % 3 = 0 or x % 5 = 0 then yield x ] | List.sum
  4. 4. Funkcijsko programiranje F# Primjeri ResursiPrimjer [ for x in 1 .. 999 do if x % 3 = 0 or x % 5 = 0 then yield x ] | List.sum (Project Euler, zadatak 1: suma svih umnoºaka brojeva 3 i 5 manjih od 1000)
  5. 5. Funkcijsko programiranje F# Primjeri ResursiPovijest • teorijska podloga: A. Church - λ ra£un (1930-ih)
  6. 6. Funkcijsko programiranje F# Primjeri ResursiPovijest • teorijska podloga: A. Church - λ ra£un (1930-ih) • po£eci: kasnih 1950-ih • MIT: John McCarthy / LISP
  7. 7. Funkcijsko programiranje F# Primjeri ResursiPovijest • teorijska podloga: A. Church - λ ra£un (1930-ih) • po£eci: kasnih 1950-ih • MIT: John McCarthy / LISP • Scheme, ML
  8. 8. Funkcijsko programiranje F# Primjeri ResursiPovijest • teorijska podloga: A. Church - λ ra£un (1930-ih) • po£eci: kasnih 1950-ih • MIT: John McCarthy / LISP • Scheme, ML • FP danas: • Haskell, Erlang, OCaml, XSLT... • vrlo popularno u akademskoj zajednici i u razvoju visokorizi£nih sustava
  9. 9. Funkcijsko programiranje F# Primjeri ResursiFP u drugim jezicima • C#: LINQ
  10. 10. Funkcijsko programiranje F# Primjeri ResursiFP u drugim jezicima • C#: LINQ • Python: list comprehensions, higher-order functions, ...
  11. 11. Funkcijsko programiranje F# Primjeri ResursiFP u drugim jezicima • C#: LINQ • Python: list comprehensions, higher-order functions, ... • Ruby, JavaScript...
  12. 12. Funkcijsko programiranje F# Primjeri ResursiZa²to funkcijsko programiranje? • asinkronost, paralelizacija i iskori²tavanje vi²ejezgrenih procesora
  13. 13. Funkcijsko programiranje F# Primjeri ResursiZa²to funkcijsko programiranje? • asinkronost, paralelizacija i iskori²tavanje vi²ejezgrenih procesora • druga£iji pristup i izraºajnija sintaksa pogodna za matematiku, DSL-ove...
  14. 14. Funkcijsko programiranje F# Primjeri ResursiZa²to funkcijsko programiranje? • asinkronost, paralelizacija i iskori²tavanje vi²ejezgrenih procesora • druga£iji pristup i izraºajnija sintaksa pogodna za matematiku, DSL-ove... • manje koda = manje bugova
  15. 15. Funkcijsko programiranje F# Primjeri ResursiZa²to funkcijsko programiranje? • asinkronost, paralelizacija i iskori²tavanje vi²ejezgrenih procesora • druga£iji pristup i izraºajnija sintaksa pogodna za matematiku, DSL-ove... • manje koda = manje bugova • osobno prosvjetljenje
  16. 16. Funkcijsko programiranje F# Primjeri ResursiZa²to funkcijsko programiranje? • asinkronost, paralelizacija i iskori²tavanje vi²ejezgrenih procesora • druga£iji pristup i izraºajnija sintaksa pogodna za matematiku, DSL-ove... • manje koda = manje bugova • osobno prosvjetljenje • geekPoints++
  17. 17. Funkcijsko programiranje F# Primjeri ResursiHello, World! printfn Hello, World!
  18. 18. Funkcijsko programiranje F# Primjeri ResursiF# • ML =⇒ (O)Caml =⇒ F#
  19. 19. Funkcijsko programiranje F# Primjeri ResursiF# • ML =⇒ (O)Caml =⇒ F# • Don Syme, Microsoft Research, Cambridge cca. 2002.
  20. 20. Funkcijsko programiranje F# Primjeri ResursiF# • ML =⇒ (O)Caml =⇒ F# • Don Syme, Microsoft Research, Cambridge cca. 2002. • vi²eparadigmatski • funkcijski • objektno-orijentirani • imperativni
  21. 21. Funkcijsko programiranje F# Primjeri ResursiF# 1 • stati£no i jako tipiziran 1 statically strongly typed 2 Hindley-Milner
  22. 22. Funkcijsko programiranje F# Primjeri ResursiF# 1 • stati£no i jako tipiziran 2 • pogaža tipove: type inference 1 statically strongly typed 2 Hindley-Milner
  23. 23. Funkcijsko programiranje F# Primjeri ResursiF# 1 • stati£no i jako tipiziran 2 • pogaža tipove: type inference • eksplicitna promjenjivost (keyword mutable) 1 statically strongly typed 2 Hindley-Milner
  24. 24. Funkcijsko programiranje F# Primjeri ResursiF# i .NET Framework • puni pristup Base Class Libraryju + libraryji speci£ni za F# (Microsoft.FSharp)
  25. 25. Funkcijsko programiranje F# Primjeri ResursiF# i .NET Framework • puni pristup Base Class Libraryju + libraryji speci£ni za F# (Microsoft.FSharp) • referenca na DLL + open [namespace]
  26. 26. Funkcijsko programiranje F# Primjeri ResursiF# i .NET Framework • puni pristup Base Class Libraryju + libraryji speci£ni za F# (Microsoft.FSharp) • referenca na DLL + open [namespace] • C# library → F#
  27. 27. Funkcijsko programiranje F# Primjeri ResursiF# i .NET Framework • puni pristup Base Class Libraryju + libraryji speci£ni za F# (Microsoft.FSharp) • referenca na DLL + open [namespace] • C# library → F# • F# library → C#
  28. 28. Funkcijsko programiranje F# Primjeri ResursiF# na Windowsima • Visual Studio 2010 • Visual Studio 2008 uz zasebnu instalaciju
  29. 29. Funkcijsko programiranje F# Primjeri ResursiF# na drugim platformama 3 • GNU/Linux i MacOS X: Mono 4 • editori: MonoDevelop 2.4 , Emacs, Vim... 3 http://fsxplat.codeplex.com/ 4 http://functional-variations.net/screencasts/linux-monodevelop.aspx
  30. 30. Funkcijsko programiranje F# Primjeri ResursiPrimjeri
  31. 31. Funkcijsko programiranje F# Primjeri ResursiResursi • F# Programming: http://en.wikibooks.org/wiki/F_Sharp_Programming • F# PowerPack: http://fsharppowerpack.codeplex.com/ • hubFS: http://cs.hubfs.net/ • F# Developer Center: http://fsharp.net/ • Don Syme: http://blogs.msdn.com/b/dsyme/ • Tomas Petricek: http://tomasp.net/

×