SlideShare a Scribd company logo
C#(VB)プログラマのためのF#入門
id:bleis-tift / @bleis
id:bleis-tift / @bleis
id:bleis-tift / @bleis

                   C#
id:bleis-tift / @bleis

                   C#
F#       Scala
id:bleis-tift / @bleis

                   C#
F#       Scala
Git      Hudson          Jenkins
C#(VB)プログラマのためのF#入門
F#
F#
F#
F#
F#
F#
F#
F#
F#
     F#
F#
F#
F#
     F#

          F#
F#
F#

Microsoft
F#

Microsoft

OCaml
F#

Microsoft

OCaml

         .NET Framework
 C#     VB
F#

Microsoft

OCaml

         .NET Framework
 C#     VB

.NET
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
LISP
    etc...


C
LISP
    etc...


C
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C# VB
LINQ
C# VB
LINQ
C# VB
LINQ


C#
C# VB
LINQ


C#
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#   VB
C#   VB
C#   VB
C#   VB
C#   VB




C#   VB
F#
F#
F#
F#




F#
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
0   ”hoge”
0   ”hoge”
0   ”hoge”
0   ”hoge”
0   ”hoge”
0   ”hoge”
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
Func
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
F#
F#




F#
F#
F#
F#
F#
F#
F#


    1        fsi
.   2


    3


.   4


    5              F#
.

.

.
F#


    1        fsi
.   2


    3


.   4


    5              F#
.

.

.
fsi
fsi



F#
fsi



F#

VS
fsi



F#

VS
F#


    1        fsi
.   2


    3


.   4


    5              F#
.

.

.
C#   VB
C#   VB
C#    VB


                      vs. switch Select
     option vs. null Nothing
C#    VB


                      vs. switch Select
     option vs. null Nothing
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
vs.
vs.




     1    ”one” 2   ”two”
”other”
C# VB
F#
F#




function
F#




function
F#




function
C#(VB)プログラマのためのF#入門
’0’
’0’
C#(VB)プログラマのためのF#入門
FizzBuzz
FizzBuzz

FizzBuzz(1)    1
FizzBuzz(2)    2
FizzBuzz(3)    Fizz
FizzBuzz(4)    4
FizzBuzz(5)    Buzz

FizzBuzz(14)   14
FizzBuzz(15)   Fizz Buzz
FizzBuzz(16)   16
FizzBuzz

FizzBuzz(1)    1
FizzBuzz(2)    2
FizzBuzz(3)    Fizz     3        Fizz
FizzBuzz(4)    4
FizzBuzz(5)    Buzz

FizzBuzz(14)   14
FizzBuzz(15)   Fizz Buzz
FizzBuzz(16)   16
FizzBuzz

FizzBuzz(1)    1
FizzBuzz(2)    2
FizzBuzz(3)    Fizz     3        Fizz
FizzBuzz(4)    4
FizzBuzz(5)    Buzz     5        Buzz

FizzBuzz(14)   14
FizzBuzz(15)   Fizz Buzz
FizzBuzz(16)   16
FizzBuzz

FizzBuzz(1)    1
FizzBuzz(2)    2
FizzBuzz(3)    Fizz     3            Fizz
FizzBuzz(4)    4
FizzBuzz(5)    Buzz     5            Buzz

FizzBuzz(14)   14
FizzBuzz(15)   Fizz Buzz         FizzBuzz
FizzBuzz(16)   16
FizzBuzz

FizzBuzz(1)    1
FizzBuzz(2)    2
FizzBuzz(3)    Fizz     3            Fizz
FizzBuzz(4)    4
FizzBuzz(5)    Buzz     5            Buzz

FizzBuzz(14)   14
FizzBuzz(15)   Fizz Buzz         FizzBuzz
FizzBuzz(16)   16
FizzBuzz C# VB
FizzBuzz F#
FizzBuzz F#




  | 0, 0 -> "Fizz Buzz"
----^^^^
FizzBuzz F#




  | 0, 0 -> "Fizz Buzz"
----^^^^
FizzBuzz F#




  | 0, 0 -> "Fizz Buzz"
----^^^^
option vs. null




option   null
option vs. null




option   null
null
null
null
null




API
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
null



null
null



null
null



null

              NullReferenceException
null



null

              NullReferenceException
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
option
option
option
option
option
option
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
mzp
 F#                   Maybe

http://d.hatena.ne.jp/mzp/20110205/monad
option
option
option


A option   A
option


A option   A

               NullReferenceException
option


A option   A

               NullReferenceException
option


A option   A

               NullReferenceException


    None
option


A option   A

               NullReferenceException


    None
option


A option   A

                  NullReferenceException


    None




           null
F#


    1        fsi
.   2


    3


.   4


    5              F#
.

.

.
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#   VB
C#
VB
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
UML
UML
C#(VB)プログラマのためのF#入門
F#
F#
F#
C#(VB)プログラマのためのF#入門
UML
UML
Equals   GetHashCode
UML
Equals   GetHashCode

                       type   of   2
UML
Equals   GetHashCode

                       type   of   2



   F#     C#     VB
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#   VB

          Visitor
F#


    1        fsi
.   2


    3


.   4


    5              F#
.

.

.
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
Schedule
C#
C#
C#
C#
C#
C#




F#
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
F#


    1        fsi
.   2


    3


.   4


    5              F#
.

.

.
F#
F#




F#
 F#        C#   VB
F#




F#
 F#        C#   VB
|>




F#
|>




F#

     F#   F#
                |>
|>




|>
|>




|>
|>
|>




|>
|>




|>
|>
|>
|>
|>
|>
using

C#   VB
          using
using

C#   VB
           using
      F#
using

C#   VB
           using
      F#
using

C#   VB
           using
      F#
using

C#   VB
           using
      F#
use
use
use




      let
use
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
F#
F#




    1   IDE
    2         Express Edition
.   3




.

.
F#




    1   IDE
    2         Express Edition
.   3




.

.
IDE
IDE
C#(VB)プログラマのためのF#入門
F#Depth Colorizer
F#Project Extender
F#Depth Colorizer
    F#Project Extender
2
F#Depth Colorizer
F#Depth Colorizer




F#
F#Depth Colorizer




F#
C#(VB)プログラマのためのF#入門
F#Project Extender
F#Project Extender



F#
F#Project Extender



F#
F#Project Extender



F#
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
F#




    1   IDE
    2         Express Edition
.   3




.

.
Express Edition
Express Edition
Express Edition




Win   F#CTP   Visual Studio 2010 Shell
Express Edition




Win   F#CTP    Visual Studio 2010 Shell


Mac   mono
Express Edition




Win   F#CTP     Visual Studio 2010 Shell


Mac   mono
      Mac
      MBA13
F#




    1   IDE
    2         Express Edition
.   3




.

.
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
Twitter   F# User Group
Twitter F# User Group
Visual Studio F#
   1
Twitter F# User Group
Visual Studio F#
   1
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
C#(VB)プログラマのためのF#入門
2
C#(VB)プログラマのためのF#入門
F#
F#

     F#
F#

     F#
F#
F#
F#




VS        C#   VB
F#




VS        C#   VB
     F#
F#




VS         C#   VB
      F#
F#   F#
F#




VS                C#   VB
        F#
F#     F#
     NUnit
F#




VS                                 C#   VB
                F#
F#             F#
             NUnit
     NUnit                FsUnit
C#(VB)プログラマのためのF#入門
F# .NET
F# .NET
F#
F# .NET
F#
F#
F# .NET
F#
F#
          F#
F# .NET
F#
F#
       F#
      F#
special thanks
PowerShell sort
          @mzp
            @otf
        @rf0444
        @RKTM
  @wof moriguchi

More Related Content

C#(VB)プログラマのためのF#入門