As software becomes more and more complex, it is more and more important to structure it well. Well structured software is easy to write, easy to debug, and provides a collection of modules that can be reused to reduce future programming costs. Conventional languages place conceptual limits on the way problems can be modularized. Functional languages push those limits back. Writing large software systems that work is difficult and expensive. Maintaining those systems is even more difficult and expensive. Functional programming languages, such as Haskell, can make it easier and cheaper.
Haskell is an advanced purely functional programming language. The product of more than twenty years of cutting edge research, it allows rapid development of robust, concise, correct software. With strong support for integration with other languages, builtin concurrency and parallelism, debuggers, profilers, rich libraries and an active community, Haskell makes it easier to produce flexible, maintainable highquality software.
2. FUNCTIONAL vs. IMPERATIVE PROGRAMMING
3. FEATURES OF HASKELL
- 3.1 PURE
3.2 STRONGLY TYPED
3.3 STATICALLY TYPED
3.6 LIST COMPREHENSIONS
3.7 LAZY EVALUATION
3.9 HIGHER ORDER FUNCTIONS
- 4.1 NATURAL LANGUAGE INTERFACES
4.2 PARALLEL PROGRAMMING
5. HASKELL IN PRACTICE
Functional Programming in Haskell