horrlang/README.md

42 lines
1.3 KiB
Markdown
Raw Normal View History

2022-10-31 15:39:41 +00:00
# Horrlang is an esoteric language, you should not try it.
2011-09-16 12:39:57 +00:00
2011-09-22 15:48:00 +00:00
In Horrlang, memory and instructions are mixed, so you can use old instructions
as new memory places, or do some metaprogramming rewriting your code as it runs.
2011-09-16 12:39:57 +00:00
Just like in LISP but ... without lists ... good luck ...
2011-09-22 15:48:00 +00:00
In Horrlang you have basically 2 pointers, a memory one and an instruction
one. Both start at 0. The instruction one follows instructions that can move
2022-10-31 15:39:41 +00:00
the memory pointer. Have a look at the instruction set:
2011-09-16 12:39:57 +00:00
2022-10-31 15:39:41 +00:00
Instruction set:
2011-09-16 12:39:57 +00:00
2022-10-31 15:39:41 +00:00
```
2011-09-22 15:48:00 +00:00
Lx : Move memory pointer left x chars (defaults to 1).
Rx : Move memory pointer right x chars (defaults to 1).
2011-09-16 12:39:57 +00:00
2011-09-22 15:48:00 +00:00
Nx : Goto the next char that is x with the instruction pointer.
Px : Goto the prev char that is x with the instruction pointer.
O : Output current value under memory pointer.
I : Write from stdin to the current memory pointer.
K : Decrement the value under the current memory pointer.
H : Increment the value under the current memory pointer.
Jx : Jump with the instruction pointer to the previous 'x' char if the value under the current memory pointer != 0. (Jumps to the beginning if no 'x' char is found)
2022-10-31 15:39:41 +00:00
```
2011-09-16 12:39:57 +00:00
2022-10-31 15:39:41 +00:00
The Hello World:
2011-09-16 12:39:57 +00:00
2022-10-31 15:39:41 +00:00
R9R9R9R4OROROROROROROROROROROROHello World.
2011-09-16 12:39:57 +00:00
2022-10-31 15:39:41 +00:00
Or:
Hello World0KORJK
Writing a serie of P should like:
R5OP5P or R3OP3
Write 123456789 using a loop:
R9R3:ROHLKJ:81