Maybe it's just me, but I've thought that being non-strict just means that it's possible for a function to produce some value even if it's argument doesn't; in other words, that it's possible to have "f (_|_) ≠ (_|_)". If there was no such thing as (_|_), what would non-strictness mean?
On 16 Nov 2011, at 13:46, Bas van Dijk wrote: > On 16 November 2011 05:18, John Meacham <j...@repetae.net> wrote: >> Not nearly enough >> attention is paid to the other striking feature, the laziness. The >> 'bottom' symbol _|_ should feature prominently. The two most defining >> features of haskell are that it is purely functional and _|_ inhabits >> every type. The combination of which is very powerful. > > Is ⊥ the right symbol to express the non-strict evaluation of the > language? Is it true that non-strict evaluation requires that ⊥ > inhabits every type? In other words: why can't there exist a > non-strict total language (probably having some form of coinductive > types)? > > Cheers, > > Bas > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe