Many aspects of functional programming are generalisations of what goes
on in imperative languages.

Huh? In which sense is that?

All senses?

examples:
* I would say that let-polymorphic HM style type inference (with type classes) is a generalisation of C/C++/Java style type checking + operator overloading + templates.


* The full laziniess transform is a generalisation of the "lifting things out of loops" optimisation which many imperative compilers do.

* Its funny how imperative programmers get all excited about iterators and rejoice when foreach is added to their favourite language, when FPers have been mapping and folding for decades.

I would say that once you've got higher order, polymorphic, first class functions, and a type system to keep the peace, well ... anything else you add is just icing on the cake :).

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to