[Swift-devel] Re: folding/sequential-while/whatever and accessing data in files
Mihael Hategan
hategan at mcs.anl.gov
Fri Sep 7 18:33:59 CDT 2007
On Fri, 2007-09-07 at 17:12 -0500, Mihael Hategan wrote:
> On Fri, 2007-09-07 at 22:04 +0000, Ben Clifford wrote:
> > 'v in a' doesn't get used at all... more complicated
Maybe this should be approached differently:
for k in a.keys {}
for v in a.values {}
for kv in a.entries {print(kv.key); print(kv.value);}
> >
> >
> >
> > >
> > > On Fri, 2007-09-07 at 20:48 +0000, Ben Clifford wrote:
> > > > So I fiddled a little and have this code that works ok:
> > > >
> > > > iterate {
> > > > a[foo+1] = countstep(a[foo]);
> > > > print("extract int value ", at extractint(a[foo+1]));
> > > > } until (@extractint(a[foo+1]) <= 2);
> > > >
> > > > (fully program at the end of this message)
> > > >
> > > > which runs countstep in sequence until a convergence criteria is met.
> > > >
> > > > countstep is simple app which counts the number of bytes in its input file
> > > > and outputs that count to its output file (thus converges rapidly to 1)
> > > >
> > > > What is different about this over previous repeat/while statements is
> > > > that:
> > > >
> > > > there's an implicitly defined variable 'foo' that iterate{} makes
> > > > available for each iteration. In the first iteration, the value of foo is
> > > > 0, and the value is increased with each subsequent iteration, up to
> > > > (Swift's version of) infinity.
> > > >
> > > > there's a function to move from file-content-space to
> > > > swift-expression-space (the previously discussed @extractint)
> > > >
> > > > This seems to be the right direction to be going for
> > > > fold-like/iteration-like structures.
> > > >
> > > > Full files follow:
> > > >
> > > > $ cat fold2.swift:
> > > >
> > > > type counterfile {}
> > > >
> > > > (counterfile t) greeting(string m) {
> > > > app {
> > > > echo m stdout=@filename(t);
> > > > }
> > > > }
> > > >
> > > > (counterfile t) countstep(counterfile i) {
> > > > app {
> > > > wcl @filename(i) @filename(t);
> > > > }
> > > > }
> > > >
> > > > counterfile startfile <"longstartint.txt">;
> > > >
> > > > counterfile a[] <fixed_array_mapper;files="a b c d e f g h i j k l m n o
> > > > p q r
> > > > s t u v w x y z">;
> > > >
> > > > a[0] = greeting("793578934574893");
> > > >
> > > > iterate {
> > > > a[foo+1] = countstep(a[foo]);
> > > > print("extract int value ", at extractint(a[foo+1]));
> > > > } until (@extractint(a[foo+1]) <= 2);
> > > >
> > > >
> > > > $ cat wcl
> > > > #!/bin/bash
> > > >
> > > > echo $(wc -c < $1) > $2
> > > >
> > > > _______________________________________________
> > > > Swift-devel mailing list
> > > > Swift-devel at ci.uchicago.edu
> > > > http://mail.ci.uchicago.edu/mailman/listinfo/swift-devel
> > > >
> > >
> > >
> >
>
> _______________________________________________
> 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