metalainism.nexus

Programming

The following is an outline for a high-level and currently unnamed programming language.
It is greatly influnced by Python due to the long time I have spent working with it, although
APL, Fortran, BASIC and mathematical logic theory notation have had significant impact on its syntax.
It only exists as a concept in my head for the time being, and once it has been laid out
I will start working towards its actualization: writing it in C.

---------------------------------- [ THIS IS A WORK IN PROGRESS ! ] ----------------------------------


INDEX
0. control
1. arithmetic
2. boolean logic
3. arrays
4. sets

control / logic

?(1 + 3 = 4)
[OUT]: True

?(2 - 5 = 4)
    :{'Hello'}
    `{'Goodbye'}
[OUT]: Goodbye

arithmetic

-5 # negation
[OUT]: -5

4! # factorial
[OUT]: 24

/3 # inverse
[OUT]: 0.333…

1 + 3 # addition
[OUT]: 4

2 - 5 # subtraction
[OUT]: -3

2 * 3 # multiplication
[OUT]: 6

6 / 2 # division
[OUT]: 3

3 ^ 2 # exponentiation
[OUT]: 9

2 + 2 = 4 # equals
[OUT]: TRUE

2 + 2 ~= 5 # nequals (alt ≠)
[OUT]: TRUE

2 > 3 # morethan
[OUT]: FALSE

5 < 9 # lessthan
[OUT]: TRUE

5 >= 7 # morethan or eq (alt ≥)
[OUT]: FALSE

3 <= 4 # lessthan or eq (alt ≤)
[OUT]: TRUE

(log 3 81)
[OUT]: 4

(lb 256)
[OUT]: 8

(ln 2.71828)
[OUT]: 0.999999327347

(lg 10,000)
[OUT]: 4

(MOD 23 7)
[OUT]: 2

(RND 4.2)
[OUT]: 5

(RND 3.8)
[OUT]: 4

(RND 0.5)
[OUT]: 1

(RND 17 5)
[OUT]: 15

(RND 23.43 0.6)
[OUT]: 24

(RND 2.08 0.1)
[OUT]: 2.1

boolean logic

~A # NOT

A & B # AND

A ~& B # NAND

A ~= B # XOR

A = B # XNOR

arrays

building arrays

l[2, 6]
[OUT]: [2, 3, 4, 5, 6]

l[8, 3]
[OUT]: [8, 7, 6, 5, 4, 3]

l[-6, -2]
[OUT]: [-6, -5, -4, -3, -2]

l[-2, -6]
[OUT]: [-2, -3, -4, -5, -6]

l[x+3:2,6]
[OUT]: [5, 6, 7, 8, 9]

l[x*2:2,6]
[OUT]: [4, 6, 8, 10, 12]

l[2^x:2,6]
[OUT]: [4, 8, 16, 32, 64]

working with arrays

s <- [1, 6, 23, 17]
s.2
[OUT]: 23
s.2,1
[OUT]: [23, 6]

s <- [ [2, 3, 6], [7, 4, 9], [8, 1, 5] ]
s.2
[OUT]: [8, 1, 5]
s.1.2
[OUT]: 9
s.*.1
[OUT]: [3, 4, 1]

array operations

s <- [7, 2, 5, 9]
(SUM s)
[OUT]: 23

(PROD s)
[OUT]: 630

sets

A <- {2, 3, 4, 5}
B <- {4, 5, 6, 7}

(UNION A B)
[OUT]: {2, 3, 4, 5, 6, 7}

(INTSC A B)
[OUT]: {4, 5}