An awful programming language.
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
Colin Reeder 7b1542e438 Fix hello example hace 2 años
src Change addition and multiplication to take any number of arguments hace 2 años
.gitignore Initial commit hace 4 años
Cargo.toml Initial commit hace 4 años
README.md Fix hello example hace 2 años

README.md

Four

An awful programming language

  • Only has three characters, all others are ignored: 4()
  • Operations are contained within parentheses, the first contained expression is the type. e.g. (44(444))
  • () is Nil.

Hello, world!

This is a simple program that outputs “Hello, world!” It's minimally optimized, and could almost certainly be made much smaller.

(4((4444444)(4(444)(((444)44)4(((444)44)44))))((4444444)(4(((444)44)(44444)(44((444)(444)4)))(44((444)44))))(((444)44)((4444444)(4(((444)44)(44444)(44((444)(444)4)))(4444)))((444)(444)4))((4444444)((((444)44)44)(((444)44)4(444444444))(4(44444)((444)44))))((4444444)(4(444444444)(4444)))((4444444)(444444444))((4444444)((((444)44)44)(((444)44)4(444444444))(4(444)((444)44))))((4444444)((((444)44)44)(((444)44)4(444444444))(4(44444)((444)44))))((4444444)((((444)44)44)(((444)44)4(444444444))(4(4444)((444)(444)4))))((4444444)(4(((444)44)(44444)(44((444)(444)4)))(4444)))((4444444)(((444)44)4(4(4444444)((444)44))))((4444444)(4((444)44)(444444444))))

Value Types

Four supports the following data types:

  • Integer: Non-fractional numbers, created using the 4 literal or from various operations.
  • Nil: A type representing nothing, created using the () literal.
  • String: A string of 0 or more Unicode characters, created using “char code to string” and other operations.
  • Function: A callable procedure, created using “function declaration”. Usable as an operation.

List of Operations

ID Operation Description
0 function declaration Takes one expression as a parameter, and returns a callable function form of it. Functions can be used as operations.
1 multiply Takes any number of values and multiplies them, ignoring nils. If passed zero values, returns nil. Strings can be multiplied by integers for repetition.
4 add Takes any number of values and adds or concatenates them, ignoring nils. If passed zero values, returns nil.
8 divide Divides two numbers. If either value is nil, returns nil.
9 character from string Takes a string and an integer, returns the character at the given index in the given string as a string.
12 conditional Takes three values. If the first value is 4, the second is returned, otherwise the third is returned.
16 subtract Subtracts two numbers. If either value is nil, returns nil.
24 char code to string Interprets a number as a Unicode codepoint. Returns a string.
nil get Returns a function parameter by index.