interpreted programming language
pronounced as it's spelled because it's easy 😅
a functional programming language, with first class functions and closures support.
-
support the usual data types like strings, booleans, integers, hashes, arrays, and nil
-
support the usual operators like
+
,-
,*
,/
,==
,!=
,<
,>
, and!
!
is the logical negation operator==
is the equality operator!=
is the inequality operator<
is the less than operator>
is the greater than operator+
is the addition operator-
is the subtraction operator (unary minus)*
is the multiplication operator/
is the division operator
-
support the usual flow control operators like
if
,else
,let
andret
if
is the conditional operatorelse
is the else operatorlet
is the let operatorret
is the return operator (can be omitted)
-
semi-colons are optional
-
for syntax highlighting, use the
ez-language-support
extension
- print a value:
print(value)
- print a value and a newline: `println(value)
- print a newline:
println()
let
is used to declare a variable:let variable = value
if
is used to declare a conditional:if (condition) { // do something }
else
is used to declare an else block:else { // do something }
ret
is used to return a value:ret value
f
is used to declare a function:f(name) { // do something }
- arrays are declared with
[]
:[1, 2, 3]
- hashes are declared with
{}
:{ "key": "value" }
nil
is used when a value is not present:nil
sample code:
println("hello world")
let x = 1;
let y = 2
let z = x + y;
print(z);
let a = "hello";
let b = "world";
let c = a + b;
print(c);
if (x == y) {
print("x is equal to y");
} else {
print("x is not equal to y");
}
let d = if (x == y) {
"x is equal to y"
} else {
"x is not equal to y"
};
print(d);
let add = f(x, y) {
ret x + y;
};
print(add(x, y));
let mul = f(x, y) {
x * y;
};
print(mul(x, y));
let subResult = f(x, y) {
x - y;
}(x, y);
print(subResult);
let mulByFn = f(x, otherFn) {
ret x * otherFn(x)
};
let res = mulByFn(2, f(x) {
x + 2;
});
print(res);
let arr = [1, 2, 3, add(x, y), true];
print(arr[0]);
let hash = {
"key": "value",
"key2": "value2"
};
print(hash["key"]);
- there are some useful bultin functions for arrays:
let a = [1, 2, 3, 4, 5];
let b = push(a, 6); // [1, 2, 3, 4, 5, 6]
let c = tail(a); // [2, 3, 4, 5]
let d = first(a); // 1
let e = last(a); // 5
print(len(a)); // 5
len
is used to get the length of an array or a string:len(a)
go run main.go
and start typing in the console 💛
- you can run it on a file:
go run main.go -file test.ez