This repository was archived by the owner on Mar 31, 2025. It is now read-only.
Releases: MathScript-Lang/MathScript.py
Releases · MathScript-Lang/MathScript.py
MathScript v1.0.1
Added
returnkeyword in multi-line functions to return a valuecontinuekeyword to skip to the next iteration inforandwhileloopsbreakkeyword to stop the loop inforandwhileloopsexec()function to execute a code in a string or a filelength()function to return the length of a string or a list- Comments starting by the
#symbol and ending by a new line.
Changed
- The list concatenation, so now we need to add two list together to concatenate them:
instead of the old confusing syntax where we needed to add the element to the list:
(MathScript) >>> (1, 2, 3, 4, 5) + (6, 7, 8, 9, 10) (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)(MathScript) >>> (1, 2, 3, 4, 5) + 6 + 7 + 8 + 9 + 10 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) - Create automatically the ZIP file in the build process & always undo the changes to the
shell.pyscript, altrough if there was an error.
Fixed
- Now functions that only execute code will return
null(instead of Python'sNone), but this won't be shown in the interactive shell because it's an implicit return.
Next version changes
In the next minor versions of MathScript will be implemented these changes:
- A class & modules system
- Instance functions for the built-in data-types
- (Not sure) A package manager, MathGet
Installer
Added
- An update feature to be able to update MathScript without having to uninstall & reinstall it completely
- Now there's also an
AppImageversion of the installer, for Linux. - Now uses threads for downloading, unzipping and uninstalling
Fixed
- Since the installer accept now the fact that you can don't update, the repair feature now reinstall the current installed version
- Now the icon size range from 16×16 to 256×256, instead of the only 16×16 icon of before
MathScript v1.0.0
⚠️ Always download the installer from the latest release ⚠️
Notes
The comments in the code are just placeholders, MathScript v1.0.0 doesn't support comments.
1. Basic Syntax
- Case Sensitivity: MathScript is case-sensitive.
- Keywords: MathScript utilizes keywords for control flow and function definition. Keywords are:
andornotifelifelsefortostepwhilefuncthenpassend
- Identifiers: Identifiers are used to name variables and functions. They can contain letters, digits, and underscores (
_), but cannot start with a digit. - Comments: Comments are not supported by MathScript v1.0.0.
2. Data Types
MathScript supports the following data types:
- NullType:
none,nullorundefined. - Boolean:
trueorfalse. - Integer: Whole numbers (e.g.,
1,2,-5). - Decimal: Numbers with decimal points (e.g.,
1.5,-2.75). - Complex: Numbers with real and imaginary parts (e.g.,
2+3i,-4-1i). Note:iis used for the imaginary unit. - String: Sequences of characters enclosed in double quotes (
""), single quotes (''), or backticks (``) (e.g.,"Hello",'World',`\ This is a raw string`). - List: Ordered collections of values enclosed in parentheses
()(e.g.,('Bob',),(1, 2, 3)). - Function: User-defined functions.
- BuiltInFunction: Built-in functions.
3. Operators
MathScript supports various operators:
- Arithmetic:
+(addition)-(subtraction)*(multiplication)/(division)^(exponentiation)
- Comparison:
==(equals)!=(not equals)<(less than)>(greater than)<=(less than or equal to)>=(greater than or equal to)
- Logical:
and(logical AND)or(logical OR)not(logical NOT)
- Subscript:
_(subscripting for strings and lists, when using it with variables enclose the variables in parenthesis like this:(lst)_(index))
- Function Call:
()(function invocation)
- Assignment:
=(assigns a value to a variable)
- Inline function Definition:
=>(defines the return value of a function)
4. Control Flow
MathScript includes the following control flow statements:
-
ifstatement:if condition then if_true else _elseif condition then # Code to execute if condition is true else # Code to execute if condition is false end -
elifstatement:if condition then if_true elif another_condition then if_other_true else _elseif condition then # Code to execute if condition is true elif another_condition then # Code to execute if another_condition is true else # Code to execute if neither condition is true end -
forloop:for variable = start to _end step _step then iteration # => (iteration1, iteration2, ...)for variable = start to _end step _step then # Code to execute in the loop endstepvalue is optional, and defaults to 1. -
whileloop:while condition then iteration # => (iteration1, iteration2, ...)while condition then # Code to execute in the loop end -
funcfunction definition:func function_name(arg1, arg2 = value) => return_valuefunc function_name(arg1, arg2 = value) # Code to execute in the function endFunction definition supports optional arguments with default values.
5. Built-in Functions
MathScript offers built-in functions:
print(): Prints value to the console. Acceptssepandend_chararguments for formatting.input(): Takes input from the user. Acceptsplaceholderargument for prompting.clear(): Clears the console.exit(): Exits the program. Acceptscodeargument for exit code.type(): Returns the type of an object as a string.sin(): Returns the sine of an angle (complex numbers supported).cos(): Returns the cosine of an angle (complex numbers supported).e: A constant representing the value of e.pi: A constant representing the value of pi.inf: A constant representing positive infinity.nan: A constant representing 'Not a Number'.
6. Execution
A MathScript program is executed using the mathscript command.
mathscript <your_program.mscr>: Executes a.mscrfile.mathscript: Starts an interactive shell.