On Wed, Aug 12, 2009 at 11:34 AM, David Menendez<[email protected]> wrote:
> On Wed, Aug 12, 2009 at 9:16 AM, John Van Enk<[email protected]> wrote:
>> On Wed, Aug 12, 2009 at 2:09 AM, Ketil Malde<[email protected]> wrote:
>>>
>>> And perhaps also note that you will get exceptions for values outside
>>> the Enum range.
>>>
>>
>> I'd think that part is obvious.
>
> That depends on what "outside the Enum range" means. You'll get an
> exception if you somehow get an Int key in the map which doesn't
> correspond to any value in the enum...

We should be protected by the type system against unmatched Int's in
the map as long as you have sane Enum instances.

> ... but you don't get an exception if
> you try to pass in, say, a large Integer.
> Prelude> fromEnum (2^32)
> 0
>
> In essence, you're using Enum as a hash function, but not making any
> provision for hash collisions.
>

Unless I'm mistaken, the Enum typeclass _is_ a hash function who's
keyspace is the range of Int that doesn't make any provisions for
collisions.
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to