Define a mathematical expression in English [released]
+1
−0
Background
Inspired by this challenge that is also a mathematical English translator.
Challenge
Write a program that translates a mathematical expression using English with the following specifications:
- The expression can only take in numbers, letters from the English alphabet, the equal sign, and the arithmetic operators. No, exponents aren't arithmetic.
- If the target character(s) is a/are number(s):
- The number range can only be from
-999up to999. - When in the tens place, use the dash (
-) when there are spaced numberings. For example,21istwenty-one. - When in the hundreds place, add
andto the string if the tens and/or the ones place aren't empty. For example,125isone hundred and twenty-five. - If the number is negative, use
negativebefore the number. For example,-13isnegative thirteen.
- The number range can only be from
- If the target character is a letter:
- The input should only take 1 letter.
- When put on the result, the letter must be capitalized.
- If the target character is a symbol:
-
+isplus. -
-isminus. -
*istimes. -
/isdivided by. -
=isequalsoris equal to.
-
- Parentheses shouldn't be inputted.
- Whitespaces are ignored.
- Any character that's not part of the specification is ignored.
- Trailing whitespaces and newlines are allowed.
- This is code-golf, so the shortest program for each language wins!
Test Cases
// Input
# Output
14
fourteen
1+2
one plus two
53 /3
fifty-three divided by three
6 +2* 7 =20
six plus two times seven equals twenty
8*8*8 * 8 * 8 -1
eight times eight times eight times eight times eight minus one
= 4
is equal to four
x + y = z
X plus Y equals Z
-5 +- 6
negative five plus negative six
Testcases by [**@celtschk**](https://codegolf.codidact.com/comments/thread/4623#comment-13896):
500
five hundred
129
one hundred and twenty-nine
0+0=0
zero plus zero equals zero
0 -- 0 = 0
zero minus negative zero equals zero

1 comment thread