Domain-Specific Languages          Phillip Trelford          Tomas Petricek Progressive F# Tutorials NYC 2012
Thoughtworks Tech Radar 2012F#                              Languages“F# is excellent at concisely  expressing business an...
UML Sequence Diagramslet fred = Object("FredrnPatron")let bob = Object("BobrnWaiter")let hank = Object("HankrnCook")let re...
TypesF#                                    UML Class Diagramtype Object(name) = member this.Name = nametype Action = | Cal...
Functional Program Layout          Types         Functions           API
DSLs for TestingInternal DSL (NaturalSpec)              External DSL (Gherkin)• [<Scenario>]                          • Gi...
Learn More• FParsec: http://www.quanttec.com/fparsec/• FSLex /FsYacc:  http://fsharppowerpack.codeplex.com/
Upcoming SlideShare
Loading in …5
×

Domain specific languages - progressive f sharp tutorials nyc 2012

2,803 views

Published on

Slides from DSL tutorial at Progressive F# Tutorials in NYC June 2012

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

  • Be the first to like this

No Downloads
Views
Total views
2,803
On SlideShare
0
From Embeds
0
Number of Embeds
1,269
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Lightweight types with correct defaultsImmutabilityCompositionSeparation of concernsLightweight functions with correct defaultsIdempotentTestableType signatures
  • Domain specific languages - progressive f sharp tutorials nyc 2012

    1. 1. Domain-Specific Languages Phillip Trelford Tomas Petricek Progressive F# Tutorials NYC 2012
    2. 2. Thoughtworks Tech Radar 2012F# Languages“F# is excellent at concisely expressing business and domain logic.”
    3. 3. UML Sequence Diagramslet fred = Object("FredrnPatron")let bob = Object("BobrnWaiter")let hank = Object("HankrnCook")let renee = Object("ReneernCashier")
    4. 4. TypesF# UML Class Diagramtype Object(name) = member this.Name = nametype Action = | Call of Object * string *Object | Async of Object * string *Object
    5. 5. Functional Program Layout Types Functions API
    6. 6. DSLs for TestingInternal DSL (NaturalSpec) External DSL (Gherkin)• [<Scenario>] • Given I input 5• let ``When calculating factorial of • When calculating the factorial 5 it should equal 120``() = • Then the result is 120• Given 5• |> When calculating factorial• |> It should equal 120• |> Verify
    7. 7. Learn More• FParsec: http://www.quanttec.com/fparsec/• FSLex /FsYacc: http://fsharppowerpack.codeplex.com/

    ×