[m-dev.] Adding Loops to Mercury

Paul Bone paul at bone.id.au
Thu Jan 2 19:28:03 AEDT 2014


On Thu, Jan 02, 2014 at 07:26:39PM +1100, Paul Bone wrote:
> On Thu, Jan 02, 2014 at 06:20:27PM +1100, Julien Fischer wrote:
> > On Thu, Jan 2, 2014 at 5:50 PM, Michael Day <mikeday at yeslogic.com> wrote:
> > 
> > > Hi Paul,
> > >
> > >
> > >  foreach I=std::fromTo(1,1000) do
> > >>>     %...whatever
> > >>> end foreach.
> > >>>
> > >>
> > >> I think that such a feature would be considered "not in the spirit of
> > >> Mercury" by most developers.
> > >>
> > >
> > > Light syntax and efficient compilation for lambdas is enough:
> > >
> > >     foreach(1 `..` 100, func(X) = blah)
> > 
> > 
> > Which is pretty much already supported, e.g.
> > 
> >       map(func(X) = X * 2, 1 `..` 100)
> > 
> > (Use a quantifier like foreach seems like the wrong name to use
> > for some that is transform the list of integers using a function.)
> 
> foreach would be a predicate that is very similar to list.foldl.
> 
> There's no need to introduce a language feature when you can write the
> relevant abstraction directly.

Oh, which is what I think Micheal was trying to demonstrate.


-- 
Paul Bone
http://www.bone.id.au



More information about the developers mailing list