[Swift-devel] Problem with iterate

Mihael Hategan hategan at mcs.anl.gov
Sat Feb 20 13:55:34 CST 2010


On Sat, 2010-02-20 at 19:27 +0000, Ben Clifford wrote:
> > 
> > > So what would that do to SwiftScript? Well you could get rid of any 
> > > partial assignment to arrays and say the equivalent of:
> > 
> > I think that convergence loops (i.e. "do this repeatedly until some
> > non-trivial condition becomes true") would not be possible then unless
> > recursion was used.
> 
> I was imagining having a high level construct to replace "iterate" that 
> looks quite like iterate but is more restricted in its use eg takes a 
> some (laststate -> newstate) operation (the iterate body now) and takes 
> some (newstate -> boolean) operation (the until clause now).

That would probably be better for most cases. Though I'm not sure how
exactly this would be expressed.

I think, in a sense, the choice of foreach (and array indices) instead
of map (and lists) was due to a desire to make this close to C because
of the belief that our target audience would then have an easier time
adapting to it.

Which is funny because the non-restrictive nature of C is, I think, what
makes it easy to write the wrong program which is what you are trying to
get rid of.

> 
> Having provided that construct as part of SwiftScript, you wouldn't need 
> recursion.

Right. Loops and recursion are equivalent.

> 
> Thats a way to do things that keeps it fairly like it is now. A further 
> departure from where it is now is to say "well it should be a proper 
> language, and recursion shouldn't hurt".
> 




More information about the Swift-devel mailing list