22 Jan
2012
22 Jan
'12
3:22 a.m.
* David Barbour <dmbarbour@gmail.com> [2012-01-21 11:09:43-0800]
Logically only has meaning when `=` applies to values in the domain. `undefined` is not a value in the domain.
We can define monads - which meet monad laws - even in strict languages.
In strict languages 'undefined' is not a value in the domain indeed, but it is in non-strict languages, exactly because they are non-strict. I think that's what Robert Harper meant by saying that Haskell doesn't have a type of lists, while ML has one [1]. [1]: http://existentialtype.wordpress.com/2011/04/24/the-real-point-of-laziness/ -- Roman I. Cheplyaka :: http://ro-che.info/