[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: math expressions (was: Re: Tail call elimination)
From: |
Paul Smith |
Subject: |
Re: math expressions (was: Re: Tail call elimination) |
Date: |
Mon, 25 May 2020 17:58:26 -0400 |
On Mon, 2020-05-25 at 12:07 -0400, Sam Kendall wrote:
> I'd like to raise some questions that I think any proposal ought to
> answer. I'll assume a straw man proposal: there's one function, and
> it takes one of the following forms:
>
> $(math OPERATOR,VALUE1,VALUE2)
> $(math OPERATOR,VALUE1)
I believe the form being considered is:
$(math OPERATOR,LIST)
where LIST expands to a space-separated list of integer values. The
operator is applied to the entire list, from left to right.
> A binary operator (first form) is one of + - * and /. The only unary
> operator is "-".
Negation (unary "-") is definitely a problem since unfortunately
standard math uses the same symbol for negation and subtraction. I
don't want to use the OPERATOR (in the above form) to handle it,
because I don't want to have $(math -,2) behave differently from $(math
-,2 0): it's too bizarre and confusing.
I'd prefer to see it allowed in the parsing of LIST, and handled there.
This absolutely needs thought and needs to be in the proposal.
> There might also be equality and relational operators. A value is an
> optional "-" followed by one or more decimal digits. It represents a
> 64-bit signed integer.
If negation is handled during LIST parsing then we need to allow
multiple initial "-", so you can say "-$(foo)" where $(foo) is -5.
This does mean that we wouldn't support "--"/"++" operators.
For all your other questions I agree the proposal needs to address
them. I agree with you that all invalid operations should yield fatal
errors.
The only one I'm not sure about is overflow. That will need some
thought. Gnulib contains a comprehensive set of macros to deal with
overflow, in various ways.
- Re: Tail call elimination, (continued)
- Re: Tail call elimination, Pete Dietl, 2020/05/20
- math expressions (was: Re: Tail call elimination), Paul Smith, 2020/05/20
- Re: math expressions (was: Re: Tail call elimination), Pete Dietl, 2020/05/20
- Re: math expressions (was: Re: Tail call elimination), Edward Welbourne, 2020/05/25
- Re: math expressions (was: Re: Tail call elimination), Sam Kendall, 2020/05/25
- Re: math expressions (was: Re: Tail call elimination), Edward Welbourne, 2020/05/25
- Re: math expressions (was: Re: Tail call elimination), Pete Dietl, 2020/05/25
- Re: math expressions (was: Re: Tail call elimination), Tim Murphy, 2020/05/25
- Re: math expressions (was: Re: Tail call elimination), Paul Smith, 2020/05/25
- Re: math expressions (was: Re: Tail call elimination), Pete Dietl, 2020/05/25
- Re: math expressions (was: Re: Tail call elimination),
Paul Smith <=
- Re: math expressions (was: Re: Tail call elimination), Pete Dietl, 2020/05/25
- Re: math expressions (was: Re: Tail call elimination), Paul Smith, 2020/05/25
- Re: math expressions (was: Re: Tail call elimination), Pete Dietl, 2020/05/25
- Re: math expressions (was: Re: Tail call elimination), Pete Dietl, 2020/05/25
- Re: math expressions (was: Re: Tail call elimination), Paul Smith, 2020/05/26
- Re: math expressions (was: Re: Tail call elimination), Pete Dietl, 2020/05/27
- Re: math expressions (was: Re: Tail call elimination), Pete Dietl, 2020/05/28
- Re: math expressions (was: Re: Tail call elimination), Jouke Witteveen, 2020/05/28
- Re: math expressions (was: Re: Tail call elimination), Paul Smith, 2020/05/28
- Re: math expressions (was: Re: Tail call elimination), Pete Dietl, 2020/05/28