On Fri, Jan 27, 2012 at 03:05, Josh Cheek <josh.cheek / gmail.com> wrote:

> They are unsuitable for more uses than they are suitable for, and they
> contradict
> the idea that abstractions shouldn't leak implementation.
>

I think I understand what you're getting at here, but it's potentially
misleading. There's not an abstraction leak when you keep in mind that the
framework you're in is that 1.1 is a float, and therefore has a certain
representation within the machine and is subject to manipulations within
some specified system.

If you're viewing things as: 1.1 is a concrete realisation, within the
machine, of the abstract mathematical notion of the precise rational number
11/10, then yes there is a leak across the mathematics-machine boundary,
because dealing with the float 1.1 is not the same as symbolically dealing
with 11/10 in standard mathematics. Treating the former as the latter will
cause you problems. Much like there are instances where dealing with a Hash
as an abstract *map* will cause problems when you encounter things like
hash collisions. (Incidentally, that's why I think it's probably better
that a Hash is a Hash and not a Map.)

Apologies if this isn't too relevant to you personally, Josh, I just think
this hasn't been all that clear so far. (Perhaps I'm off the mark, too!)