C# 3.0 has many features well-known to functional programmers
- Parameterized types and polymorphic functions (generics)
- First-class functions (delegates)
- Lightweight lambda expressions & closure conversion
- Type inference (for locals and lambdas)
- Streams (iterators)
- A library of higher-order functions for collections & iterators
- And even:GADTs (polymorphic inheritance)
A brief history of fun in C#
C# 1.0:
- First-class functions (delegates),created only from named methods.Environment=object,code=method.
C# 2.0:
- Parameterized types and polymorphic methods (generics)
- Anonymous methods: creation of delegate objects from code bodies,closure-converted by C# compiler
- Iterators:stream abstraction,like generators from Clu
C# 3.0:
- Lambda expressions:lightweight syntax for anonymous methods whose bodies are expressions
- Type inference for locals and lambdas
- (Also,not discussed:expression trees for lambdas)
Download pdf C# is a functional programming language
Related Searches: functional programming language, lambda expressions, closure conversion, functional programmers, expression trees
RSS feed for comments on this post · TrackBack URI
Leave a reply