INCAL
		
		
		
		Jump to navigation
		Jump to search
		
INCAL is an esoteric programming language by (presumably) User:Zzo38.
Operators
| # | Number | 
| < | Copy: Copies previous operand | 
| > | Destroy: Destroys previous operand | 
| - | Variable: Get the value of a variable | 
| @ | Centrifuge | 
| * | CellularAutomaton | 
| _ | Store | 
| ? | Skip | 
| ; | String | 
| ^ | Recall | 
| ! | Array | 
| $ | Swap | 
| ` | UnArray | 
| % | Execute | 
| + | Combine: Combines 2 8-bit values to a 16-bit value | 
| [ | BeginLoop | 
| ] | EndLoop | 
Commands
| send | Send to output | 
| receive | Receive from input | 
| store | Store value in a variable | 
| call | Call a subroutine | 
| return | Return from a subroutine call | 
| record | Start recording changes of variables | 
| stop | Stop recording | 
| rewind | Rewind recording and put variables recorded to old values | 
| accept | Accept new values of variables and remove old value from recording | 
| forget | Discard entries from call stack | 
| echo | Echo a normalized form of a value to output | 
| die | Stop program | 
| string | Create string for using with $ operator | 
| erase | Erase a recording | 
| object | Create object | 
| enter | Enter an object code | 
| exit | Exit from an object code | 
| bits | Tell the bits of a number to the output | 
| edit | Self-modifying code | 
Examples
Hello World example:
send,66#111#102#<101#42#93#101#120#102#110#43# die
Replace q with the value to check:
68#q<@* = Return 1 if non-zero, or 0 if is zero 51#q* = Bit-wise not of q 240#q* = Half value of q 170#q* = Double value of q 102#q* = Intercal XOR operator 136#q* = Intercal AND operator 238#q* = Intercal OR operator
Interleave bits of 2 8-bit values (replace X and Y with the operands):
24575#10239#4607#2175#1055#519#257#XY+@@@@@@@