Closed Mimicicax closed 7 months ago
🍕
⚠️ Binary operations are currently not implemented in WHISKR, but is a planned feature
⚠️ Exponentiation is currently implemented, but might not work with BigInteger
⚠️ Modulo is currently implemented, but might not work with BigInteger
⚠️ Factorization is currently implemented, but might not work with BigInteger
❌sin
, sqrt
are currently implemented; BigInteger
will need type restrictions and/or appropriate exception handling
✔️ Immutable classes are in line with current design for tokens
✔️ Basic arithmetic operations are supported
✔️ ToString()
override is good object etiquette (no print()
in C#, however)
ℹ️ Comparison operators are currently not implemented in WHISKR, feature will remain unused for now
⚠️ Exponentiation is currently implemented, but might not work with BigInteger ⚠️ Modulo is currently implemented, but might not work with BigInteger ⚠️ Factorization is currently implemented, but might not work with BigInteger
BigInteger will provide the appropriate overloads for these functions
❌sin, sqrt are currently implemented; BigInteger will need type restrictions and/or appropriate exception handling
For these functions, BigInteger should return itself and WHISKR should alert the user with an appropriate warning
✔️ ToString() override is good object etiquette
It's not about "object etiquette"; it is a must, otherwise there would be no way present such objects to the user
ℹ️ Comparison operators are currently not implemented in WHISKR, feature will remain unused for now
Even if comparision operators are not available directly in WHISKR, these operators must be implemented regardless because they will be used (for example to check for divide-by-zero or for multiplication-by-one).
Relational operators will require a significant extension of the grammar and ST handling code. Also, your a fasz.
BigInteger must support the basic arithmetic operations:
Comparisions:
Bitwise:
Other operations:
Powers
Modulo
Factorial
IO:
To string
Print
Support for other functions (such as
sqrt
,sin
etc.) is not going to be implemented because these often output decimal numbers, not integers.BigInteger is immutable (none of the mentioned operations modify the actual object).