# Fünke

Fünke, named after Tobias Fünke of Arrested Development, is an esoteric programming language made to be almost entirely function calls. There are very few basic functions:

```Print:
\$(a) (Prints a)
Basic math operators:
+(a,b)
-(a,b)
etc...
If statements:
=(a,b,c,d...) (if a and b are equal, do c, d, etc...)
>(a,b,c,d...) (same as above but with less than)
<(a,b,c,d...) (same as above but with greater than)
!(a,b,c,d...) (same as above but with not equal)
Random #'s
@(a,b) (Returns a random number between a and b)
```

Also, # is the input

## Making programs in Fünke

Programs are mainly written as definitions of functions. For instance,

```loop(a) = loop(a)
```

would keep looping. Similarly, you can make the loop do something. An example would be

```loop(a) = loop(a),@(0,a)
```

which would generate random numbers less than a. You can also declare things inside of functions, such as

```loop(a) = loop(a),a = @(0,a)
```

which keeps generating smaller numbers

## Example Programs

### Cat Program

```\$(#)
```

This just outputs the input

### Fibonacci Generator

```fib(a,b) = \$(a),c = +(a,b),b = a,a = c
loop(a,b) = fib(a,b),loop(a,b)
loop(1,0)
```

### Guess the Number

```loop(a,b) = =(a,b,loop(a,b),run(a))
run(a) = >(#,a,\$("Too big!")),<(#,a,\$("Too small!")),=(#,a,\$("You win!"),b = a,new())
new() = loop(@(0,100),-1),\$("New Game!")
new()
```