> 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.