On Thu, 28 May 2020 at 22:07, Pete Dietl <petedi...@gmail.com> wrote:

> Upon taking a look at gnulib, I found that they have arithmetic wrap
> functions which guarantee wrapping.
> We can use these functions to guarantee that overflow will just wrap
> around.
>
> Let's leave the shift operators out for now.
>
> comp is for complement. ~
>
> In most scheme implementations, providing only one operand to the
> arithmetic functions
> just returns that argument, aside from subtraction, which negates the
> argument.
>
> Once again I am aiming for the single argument syntax of $(math ...)
>
> Interestingly, in Guile, (+) and (*) return 1, but (/) and (-) return
> errors about invalid number of arguments.
> Personally, I think no operands should result in an error.
>

I think that would save people from horrible bugs that would otherwise be
hidden, so yes.

Integer maths is important at the language level - it will enable
algorithms that weren't possible before e.g. dividing a list into equal
halves or a for-loop for which we also need a function that generates a
range).  To me this seems to be on a higher level of importance compared to
bit manipulation.

Tim

Reply via email to