Based on the nice iterator concept,
but extending the variable to a pattern:
///
match ?i,?j in list( (1,2), (2,3), (3,4)) do
println$ i,j;
done
union X = | A of int | B of double;
match A ?i in list (A 1, B 1.2, A 22) do
println$ i;
done
///
Suggestions on syntax welcome. We could use
for let ... in ...
instead of match, since "match" doesn't really suggest a loop.
Unfortunately we can't use
for pattern in ...
unless we change so you have to write:
for ?i in lst do ...
instead of
for i in lst do ..
since, in a pattern, a simple name is always a constructor name,
and you have to use a ?x for a variable x.
My next trick is to trash Perl. With something like
for "(\\w)" in "some words here" do
println _1;
done
which will be a typical string search for a regexp.
To use a regular definition one might have to say
for regdef group(identifier) in "some words here" do
println _1;
done
It is now becoming the case in Felix that the semantics are
strong enough to do just about anything really nice.. the big
problem is now finding cute syntax.
The "match .. in .. " construction above took all of 5 minutes to
implement.
--
john skaller
[email protected]
http://felix-lang.org
------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language