Hello again Fergus,

For some reason you have sent this message to me despite the fact that
all the words you appear to disagree with are those of Michael Hobbs:-)

However, I assume you also disagree with my words so I'll try to respond.
Unfortunately we've been over this ground before on another list so I
doubt we'll see eye to eye, but here goes anyway..

> > > The problem is a function like `getChar' that is declared `IO Char'. If
> > > the user has not typed a character when this monad is invoked, it will
> > > sit and wait for the event. That is, the current StateOfUniverse that is
> > > passed to getChar has absolutely nothing in it to indicate what
> > > character will be returned, unless it also contains future events.
> 
> Fine, so let it contain future events, or at least sufficient information
> to determine those future events.  What's the problem?

Apart from the fact that this just isn't reality, no problem at all :-)

I also object to this argument because I don't think it's sufficient
that the state of the universe contains sufficient information to
determine those future events. If we are to legitimise our claim that
the behaviour of the universe is deterministic and computable then I think
we also need a function which can observe the current state of the universe
and predict all future events.

Of course this function also needs to account for the effect of it's
own observations. But that shouldn't be a problem, because we can always
use Haskell to model it if necessary. Thats why monadic IO is purely
functional and referential transparency is guaranteed. Right? 

Otherwise I can see no difference in the predictive power of a deterministic
(but indeterminable) model of the universe and one which simply says the
results of IO actions may be subject to unknown side effects.

So aren't we just really arguing about words, not facts?
 
Regards 
-- 
Adrian Hey




Reply via email to