School

From Esolang
Jump to navigation Jump to search

School is an esoteric programming language developed by User:AceKiron, it originally started development on June 15th 2021, but has been deprecated. Later it was continued on September 10th 2021. It's designed to be hard to understand why, just like school.

Origianlly school was stack-based, meaning it used a stack to store memory. The renewed version of School is supposed to instead use a matrix with a size of 5.

Source code

School is open source, its interpreter's source code can be found on https://github.com/AceKiron/School (dead link).

Datatypes

The datatypes are represented as the following numbers:

Datatype Representation Minimum interpreter version
Compound 0 1.0.0
RegularFunction 1 1.0.0
DollarFunction 2 1.0.0
NOOP 3 1.0.0
Number 4 1.0.0
String 5 1.0.1[1]

Matrix operants

Operation Meaning Minimum interpreter version
PEEK(?x) Returns the value of the location from the top row if specified, otherwise it returns a random value from the top row. 1.0.0
DROP() Moves the whole matrix down by 1 unit, doesn't get wrapped around. 1.0.0
ROTATE() Rotates the matrix clockwise by 90°. 1.0.0
COUNT(?row) Counts all items in the matrix, unless row is specified in which case it counts all the items in that row. 1.0.0
PUSH(value, x) Pushes a single value onto the top row of the matrix, if a value already exists in given position, the original value will be removed. 1.0.0
POP(?x) Pops the top row of the memory matrix, unless x is specified in which case it pops and returns a single value from the top row. 1.0.0
TYPE(x) Returns the type of the value at x in the top row represented as a number. 1.0.1[1]
GRAVITATE() Moves every item in the matrix down until it hits a wall or another item. TBD

Popular problems in School

Hello, world!

The Hello, world! program is a trivial program which outputs a static string of text, usually "Hello, world!". In School this can be achieved in just a single line. This program requires interpreter v1.0.1[1]

print("Hello, world!");
  1. 1.0 1.1 1.2 We're still testing this interpeter.