
21 Jan
2012
21 Jan
'12
2:22 p.m.
* David Barbour
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/