[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Tail call elimination

From: Pete Dietl
Subject: Re: Tail call elimination
Date: Wed, 20 May 2020 13:05:13 -0500

> No, I don't agree with that.  Trying to change the base make parser
> like that would be a major source of issues.

Yeah that is what I surmised.

> > > Grouping: do we try to implement expression grouping with () (e.g.,
> > > $(expr (1 + 1) * 4) or is it good enough to just say people need to
> > > nest expr functions: $(expr $(expr 1 + 1) * 4)?
> >
> > I think nesting `expr` is too noisy.
> We need to find a good balance between implementation complexity and
> "noisy use".

of course

> no one is going to be implementing MATLAB in a makefile.

never say never :p

> My point is, it's not necessary for this to have the most beautiful,
> streamlined syntax because it will appear only in a few places, and in
> relatively simple contexts.  If it's easier to fall back on make's
> existing expansion facilities than to implement grouping, we should
> fall back.

Yeah I am agreeable with the idea.
But we could both get what we want with a more concise syntax
with much less effort if we implement prefix operators.
As you exampled:

> This would mean: $(+ 5 $(* 7 2 3) 9) --> 56

> However, it does mean we have to implement a lot of little functions
> (one for each operator) rather than one function that can do all the
> things.
> Maybe that's still a good tradeoff.

With any one familiar with LISP-like languages using
prefix operations should feel natural.
I also argue that anyone who has composed make functions
already understands using prefix-style functions, so it shouldn't be
too foreign,

I am in favor or using many prefix functions.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]