Jug

Jug is an esoteric programming language created by User:Marz. Inspired by Liquid and the Die Hard Water Puzzle, Jug involves pouring water between different jugs in order to accomplish integer arithmetic.

Language overview
Jug has 8 functions, which are called like so: function(a,b); Each function returns a value, meaning a function can be called with another function as a parameter.

Strings can be concatenated with ampersands, and can include numbers, like so: 99&" bottles of beer on the wall." Strings cannot be stored in jugs, as they are not liquid.

Addition
4+3 jug(0,4); jug(1,3); jug(2,100); fill(0); fill(1); pour(0,2); pour(1,2); echo(volume(2));

Subtraction
7-2 jug(0,7); jug(1,2); fill(0); pour(0,1); echo(volume(0));

Multiplication
4*6 jug(0,4); jug(1,6); jug(2,1); jug(3,100); fill(0); drain(0){ fill(1); pour(1,3); pour(0,2); empty(2); } echo(volume(3));

Hello, World!
echo("Hello, world!");

Fibonacci sequence
jug(0,20); jug(1,1); jug(2,5000); jug(3,5000); jug(4,5000); fill(1); pour(1,3); empty(1); echo("0\n1\n"); drain(fill(0)){ pour(2,empty(4)); pour(3,4); echo(volume(4)&"\n"); pour(3,empty(2)); pour(4,empty(3)); pour(0,1); empty(1); }

99 bottles of beer
jug(0,99); jug(1,1); drain(0){ echo(volume(0)&" bottles of beer on the wall,\n"; 	echo(volume(0)&" bottles of beer.\nTake one down, pass it around,\n"); 	pour(0,1); 	empty(1); 	if_empty(0) echo("No bottles of beer on the wall."); 	else echo(volume(0)&" bottles of beer on the wall."); }