[Swift-devel] file declaration inside foreach
Mihael Hategan
hategan at mcs.anl.gov
Wed Apr 25 10:08:22 CDT 2007
On Wed, 2007-04-25 at 10:04 -0500, Mihael Hategan wrote:
> That with the assumption that k[i-1] would work.
> It seems that k[i] = k[i-1] + i gets translated into this:
> assign(dpath="[i]", dvar=k,
> svar = sum(getFieldValue(var=k, path=concat("[]")), getFieldValue(i))
> )
>
> Seems like k[i-1] is translated into the wrong thing there
> (path=concat("[]")).
It could, instead, be translated into: concat("[", subtraction(i, 1),
"]"). My guess is that would work.
> This comes from the fact that paths like [i] are passed directly instead
> of the value being extracted.
>
> Yong, do you remember why we did this?
>
>
> On Wed, 2007-04-25 at 07:35 +0000, Ben Clifford wrote:
> >
> > On Tue, 24 Apr 2007, Mihael Hategan wrote:
> >
> > > Because the jobs are independent. You are creating iteratiion-local
> > > variables between which there is no dependency.
> > >
> > > What you want is something like this:
> > > file[] lattice <...>;
> > > lattice[0] = initialLattice;
> > > for i in 1...2 {
> > > lattice[i] = app(lattice[i-1]);
> > > }
> >
> > I just tried this:
> >
> > int r[] = [1:2:1];
> > int k[];
> >
> > k[0]=100;
> >
> > foreach i in r {
> > k[i] = k[i-1] + i;
> > }
> >
> > and I get this:
> >
> > $ swift for.swift
> > Swift V 0.0405
> > RunID: 2hp99svgoyjd2
> > Execution failed:
> > String index out of range: 0
> >
> >
> > :-(
> >
>
> _______________________________________________
> Swift-devel mailing list
> Swift-devel at ci.uchicago.edu
> http://mail.ci.uchicago.edu/mailman/listinfo/swift-devel
>
More information about the Swift-devel
mailing list