We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.
Lack
Jump to navigation
Jump to search
Lack(Varnish in Deutsch) is are an Esolang
Based In Cells
Lack Dont have comments
Lack have 2 versions
The Commands for lack 1 Are:
| Command | Description |
|---|---|
| > | change the pointer by 1 |
| < | change the pointer by -1 |
| + | add 1 in pointer cell |
| - | subtract 1 in pointer cell |
| . | add ascii of pointer cell |
| , | prompts for input and sets cell pointer to ascii character |
| $[a] | runs a loop with the amount of the pointer item and executes command [a] from code(> + + $1) |
| ![a] | execute the commands [a] from code (> + !1 N) or (> + !1_2) |
| @[a],[b],[c] | if [a] is equal to pointer item of cell, run command [b] from code, else run command [c] from code(> + @1_1_2) |
| F[a] | Execute [a] of code forever (> + N F3) |
| E[a] | delete [a] from code (E5 > + N F4) |
| D[a] | insert a command in position [a] (> D+_3 ) |
| & | stop this script (> L33 P N & F4) |
| O[a] | make operations [a] with the remember value and the pointer cell (> L10 + + + O+ P N) (operations are + - * / ^ %(module) ) |
| pipe[a],[b] | replace command [a] from code to command [b] (> pipe3¬+ ) |
| ~[a],[b] | run [a] times symbol [b] (~5_+ N) |
| N | print a number (L10 P N) |
| #[a] | create variable [a] (#a) |
| %[a] | delete variable [a] (%a) |
| =[a],[b] | set variable [a] to value [b] (> #c =c_99 §c) |
| ¢[a] | set variable [a] to pointer cell (#a L99 P ¢a %a) |
| §[a] | set the pointer cell item to variable [a] value (#a =a_99 § N %a) |
| \[a] | execute [a] cell ascii lack code (> L43 P > \1 L0 A < P N) |
| ^[a],[b],[c] | set variable [a] to a random from [b] to [c] (#a ^a_1_10 §a N ¢a) |
| U | convert the item of pointer into ascii (L53 > P U N) |
| I[a],[b] | compares the items [a] and [b] of the cells and sets the pointer item to 1 if the item are equal, and 0 if they are not (> L12 P > L12 P > I1_2) |
| J[a],[b] | compares the items [a] and [b] of the cells and sets the pointer item to 1 if the item [a] are greater than [b], and 0 if they are not (> L13 P > L12 P > J1_2) |
| k[a],[b] | compares the items [a] and [b] of the cells and sets the pointer item to 1 if the item [a] are less than [b], and 0 if they are not (> L12 P > L13 P > K1_2) |
| && | force stop the program |
| £[a] | goes to the first appearance of [a] in the code ( a + N > =remember_32 §remember . < £a ) |
| ?[a],[b] | set a variable to any value ( #a ?a_.", ) use " to separate things |
| :[a] | run [a] variable as lack code ( #a ?a_.", :a ) |
The Commands for lack 2 Are:
| Command | Description |
|---|---|
| > | change the pointer by 1 |
| < | change the pointer by -1 |
| + | add 1 in pointer cell |
| - | subtract 1 in pointer cell |
| . | add ascii of pointer cell |
| , | prompts for input and sets cell pointer to ascii character |
| $[a] | runs a loop with the amount of the pointer item and executes command [a] from code(> + + $1) |
| L[a] | put the value [a] in remember value(L21) |
| A | put the pointer cell value in remember value(+ + A) |
| P | set the pointer cell to remember value (L10 P) |
| ![a] | execute the commands [a] from code (> + !1 N) or (> + !1_2) |
| @[a],[b],[c] | if [a] is equal to pointer item of cell, run command [b] from code, else run command [c] from code(> + @1_1_2) |
| F[a] | Execute [a] of code forever (> + N F3) |
| E[a] | delete [a] from code (E5 > + N F4) |
| D[a] | insert a command in position [a] (> D+_3 ) |
| & | stop this script (> L33 P N & F4) |
| O[a] | make operations [a] with the remember value and the pointer cell (> L10 + + + O+ P N) (operations are + - * / ^ %(module) ) |
| pipe[a],[b] | replace command [a] from code to command [b] (> pipe3¬+ ) |
| ~[a],[b] | run a command in loop (~5_+ N) |
| N | print a number (L10 P N) |
| #[a] | create variable [a] (#a) |
| %[a] | delete variable [a] (%a) |
| =[a],[b] | set variable [a] to value [b] (> #c =c_99 §c) |
| ¢[a] | set variable [a] to pointer cell (#a L99 P ¢a %a) |
| §[a] | set the pointer cell item to variable [a] value (#a =a_99 § N %a) |
| \[a] | execute [a] cell ascii lack code (> L43 P > \1 L0 A < P N) |
| ^[a],[b],[c] | set variable [a] to a random from [a] to [b] (#a ^a_1_10 §a N ¢a) |
| U | convert the item of pointer into ascii (L53 > P U N) |
| I[a],[b] | compares the items [a] and [b] of the cells and sets the pointer item to 1 if the item are equal, and 0 if they are not (> L12 P > L12 P > I1_2) |
| J[a],[b] | compares the items [a] and [b] of the cells and sets the pointer item to 1 if the item [a] are greater than [b], and 0 if they are not (> L13 P > L12 P > J1_2) |
| k[a],[b] | compares the items [a] and [b] of the cells and sets the pointer item to 1 if the item [a] are less than [b], and 0 if they are not (> L12 P > L13 P > K1_2) |
| && | force stop the program |
| £[a] | goes to the first appearance of [a] in the code ( a + N > L32 P . < £a ) |
| ?[a],[b] | set a variable to any value ( #a ?a_.", ) use " to separate things |
| :[a] | run [a] variable as lack code ( #a ?a_.", :a ) |
Hello, World! in version 1:
=remember_72 §remember . =remember_101 §remember . =remember_108 §remember . =remember_108 §remember . =remember_111 §remember . =remember_44 §remember . =remember_32 §remember . =remember_87 §remember . =remember_111 §remember . =remember_114 §remember . =remember_108 §remember . =remember_100 §remember . =remember_33 §remember .
Hello, World! in version 2:
L72 P . L101 P . L108 P . L108 P . L111 P . L44 P . L32 P . L87 P . L111 P . L114 P . L108 P . L100 P . L33 P .
Cat program in versions 1 and 2:
, .
Truth-machine in version 1:
, @48_5_0 @49_7_0 && £zero && £one && zero =remember_48 §remember . && one =remember_49 §remember . £one &&
Truth-machine in version 2:
, @48_5_0 @49_7_0 && £zero && £one && zero L48 P . && one L49 P . £one &&