[Haskell-cafe] A Mascot
jesseschalken at gmail.com
Wed Nov 16 12:31:25 CET 2011
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.bas at gmail.com> wrote:
> On 16 November 2011 11:05, MigMit <miguelimo38 at 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.
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe