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

705

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
705
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×