Lack

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
 &&
lack 1
lack2
 category: 2025 category: cell-based