[Haskell-cafe] Re: Why?
Alberto G. Corona
agocorona at gmail.com
Thu Dec 10 08:57:27 EST 2009
One more advantage that is not frequently cited
Purity permits to pass every parameter of a procedure by reference (giving
the pointer) rather that by value giving a copy, and still be sure that the
data has not been modified. Besides the safety. this is great language
2009/12/10 Alberto G. Corona <agocorona at gmail.com>
> What material benefit does Haskell derive from being a "pure" functional
> language as opposed to an impure one?
> Here is my list of benefits of purity (some of them are enhanced by other
> features like the type system).
> Purity means referential transparency. that means that the programmer has
> no way to modify pure data. That cut the tree of possible programmer
> errors.In particular, since there are no variables, every state change must
> be in the form o a call to a function with new parameters. each function has
> no state change (except when needed and then the type system labels the
> stateful code as such)( This enforcement goes in the righ direction for
> clarity and readability, maintainability, modularity xxxxxbility.
> Purity also eases paralel processing, since no data is modified, each
> process is isolated better. Less opportunities for errors.
> Purity permits lazines because since the execution tree of
> an expression has pure, data, can be evaluated later, since it will not be
> Lazy evaluation eases mathematical reasoning,because mathematics has no
> notion of eager evaluation, but to make use of mathematical equations when
> the calculation is needed. .
> Mathematical reasoning permits the full use of a long tradition of
> mathematical knowledge. This makes code more simple, understandable,
> general, proof guarantted and elegant (for those that know the mathematical
> domain). This also permits high level optimization of code, both by the
> programmer and the compiler.
> for sure there are a few more
> We are superstitious and guided by "nonrational" ideas such is beauty.
> bauauty -> (simplicity -> (less effort to master, less errors)
> , utility ->, solve more problems, solve greater
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe