I like the idea of a mascot. I like the idea of a lamb called Da, as most of Haskell's strength comes from it's closeness to pure lambda calculus.
A few things I'd like to see in a mascot: - Simple. You should be able to draw it in a few seconds. - Look good in black and white. - Have obvious features so it is identifiable from a distance. - Be a little bit cute. I don't see why ⊥ has to be featured. ⊥ means a computation can terminate without returning a value. That is a flaw, not a strength. If a computation may fail, return a Maybe or Either String. If a computation might not terminate, let it not terminate and I can find out why with my debugger. That covers all the use cases of ⊥. It also undermines the type system as beginners often write functions which return ⊥ where they should either be returning a Maybe or Either String, or expressing the violated precondition in the type system so it can be tested at compile time. What am I missing? On Wed, Nov 16, 2011 at 9:47 PM, Bas van Dijk <v.dijk....@gmail.com> wrote: > On 16 November 2011 11:05, MigMit <miguelim...@yandex.ru> wrote: > > 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? > > Thanks, non-strictness is indeed defined using ⊥ like you mentioned. > > I think I was confusing non-strict evaluation with coinduction. They > have the same advantages but the latter is less powerful but safer > than the former. > > 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