3. In this talk
• Local inversion of control
• Maybe monad
• Dynamic prototyping
• Functional animation
4. Local Inversion of Control
• myList.Add(1)
“myList should add to itself the value 1”
• 1.AddTo(myList)
“take 1 and add to my list”
• op == “AND” || op == “OR” || op == “XOR”
“op is AND or op is OR or …”
• new[]{“AND”,”XOR”,”OR”}.Contains(z)
“a list of elements containing AND, OR, XOR contains…”
• z.IsOneOf(“AND”, “OR”, “XOR”)
self-descriptive
5. Maybe
• Monads are functional programming paradigms
• “Maybe” implies presence/absence of a value
• Typically we use `null` to indicate this
• Monadic application can make null checks implicit
• In F#, this is done with workflows
• Redefinition of certain operators within a scope
• How to do it in C#?
6. Dynamic Prototyping
• Typical development cycle
• Build
• Run
• Realize you need more functionality
• Stop program
• Rebuild, run again
• Dynamic prototyping
• Build
• Run
• Realize you need more functionality
• Edit the program without stopping it
• Program fixed at execution time!
• Sources are up to date when you exit
7. That’s all folks!
• Watch my TechDays videos!
• Questions?
• dmitrinesteruk@gmail.com
• @dnesteruk