User:I am islptng/Draft for SLet 4

From Esolang
Jump to navigation Jump to search

<- Older version | Newest version

SLet 4
Designed by User:I am islptng
Appeared in 2025
Computational class Turing-complete
Reference implementation NonePython
Influenced by GolfScript
File extension(s) .slet



In SLet 3, the programs are too long, so the author created SLet 4!

Data types

In this esolang, there is 5 data types.

Number: Fraction. Size is unlimited. Division by 0 is NaN.
Boolean: true or false.
Pair: A pair of objects. One former value and one latter value.
Lambda: Just a lambda function.
Set: The most common data type. Objects in a set is always sorted. Boolean < Number < Pair < Set < Lambda.

Commands

Braces are ignored.

==== Flow Control
~ for / filtrate
[ while
\ do
@ call
! all

==== Input/Output
; get-char
: put-char
, input
. print
` decprint

==== Data structures and calculations
match        |' Make a pair. Returns (A,B).
combine      || Makes a set with various objects by union. End with "!".
opposite     |- Not boolean A. Negate number A. Does 'reveal' otherwise. 
swap         |$ Swap the two objects in pair A. Swap the numerator and the denominator in number A. Does 'size' otherwise. 
former       |< Former object of pair A. Numerator of number A. The smallest item in a set.
latter       |> Latter object of pair A. Denominator of number B. The biggest item in a set.
pack         |^ Pack object A into a set.
exist        |= True if object A is a subset of object B.
add          |+ Does addition between numbers, OR between booleans.
multiply     |* Does multiplication between numbers, AND between booleans, intersection between sets.
floordiv     |/ Does floor division between numbers.
modulo       |% Does modulo between numbers.
range        |] Python "range(A,B,C)". Returns sets.

==== Variables
# let

Strings can be written in double quotes. Use backslash for escape(\q is used for double quotes.). Comments are written between parentheses.