Lennart Augustsson <[EMAIL PROTECTED]> writes:

> Should Haskell also provide unrestricted side effects, setjmp/
> longjmp, missile launching functions, etc?  After all, people who
> don't want to use them can just avoid them. :)

Yes.

It is indeed a common problem that programs have unintended behavior,
and partial functions are only the tip of the iceberg.  We can keep
patching things up. For instance, 'head' can be made to never fail
simply by requiring all lists to be infinite. Similarly, fromJust can
be fixed by having 'data Maybe a = Just a', and doing away with
'Nothing', which is hardly useful for anything anyway.

But this is only superficial patchwork that glosses over the deeper
problem.  I therefore propose that all functions should either be of
type '() -> ()', or non-terminating.  That should avoid most error
messages, I think, and make it very easy to avoid any unintended
consequences - and the programmer is relieved of the burden of
actively avoiding dangerous stuff.

Is it possible to implement this for Haskell'?

-k
-- 
If I haven't seen further, it is by standing in the footprints of giants
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to