Asynchronous servers:
- Asynchronous workflows for the asynchronous IO.
- MailboxProcessor for the thread-safe message passing.
- Algebraic datatypes for server state and message catalogue.
- Pattern matching and tail recursion for the state machines.
- Parser generators like fslex and fsyacc.
- Parser combinators like FParsec.
- Active patterns for elegant hand-rolled parsers.
- Algebraic datatypes to represent parse trees.
- Pattern matching to manipulate trees, e.g. apply optimization stages.
- Reflection for run-time generation of fast code.
- Higher-order functions for elegant and fast algorithmic code.
- Algebraic datatypes and pattern matching for symbolic manipulation.
- Interoperability for wealth of .NET libraries.
- Interactivity using F# interactive.
- Computation expressions for massaging data.
- Units of measure for improved correctness.
- Model as asynchronous message passing between user interface code and application logic code.
- Higher-order functions let you define user interfaces declaratively.
- Persistent collections for easy backtracking.
- Tail calls for reliability.
- Automatic generalization for easy generic programming.
- Run unit tests interactively.
- BDD means writing an interpreter.
- Good scripting language for writing test harnesses and visualizing results.
- inline for cost-free higher-order abstraction.
- Tail calls for fast state machines.
- Purely functional data structures for low latency.
- Metaprogramming for generation of optimized code.
0 comments:
Post a Comment