tabulators

Stephen Weeks MLton@sourcelight.com
Fri, 25 Jan 2002 13:28:26 -0800


> > You don't.  It's just that CONSTRUCT2 and ITERATE2 can be implemented
> > purely functionally, while CONSTRUCT1 and ITERATE1 can't.
> 
> ???  Again, what's the definition of "purely functinally"?  I thought we
> established a purely functional VectorConstruct (and I've got
> ListConstruct, ListIterate, and VectorIterate), all with *1 signatures.

I think there is some confusion about what ITERATE1 and CONSTRUCT1
are.  I have them as 

signature CONSTRUCT1 =
   sig
      type 'a t
      val construct: int * (('a -> unit) -> unit) -> 'a t
   end

signature ITERATE1 =
   sig
      type 'a t
      val iterate: 'a t -> 'a -> unit
   end

Both of which are clearly not functional.  I agree that ITERATE (not
ITERATE1) is implementable functionally.