README.md

# Difficult

Difficult, but computable functions.

## Usage

```
iex > Difficult.ackerman_operation(<<1, 1, 2>>, [:print])
<<1, 1, 2>>
<<0, 1, 0, 2>>
<<1, 0, 0, 2>>
<<2, 0, 2>>
<<3, 2>>
<<2, 2, 1>>
<<1, 2, 1, 1>>
<<0, 2, 1, 1, 1>>
<<1, 1, 1, 1, 1>>
<<0, 1, 0, 1, 1, 1>>
<<1, 0, 0, 1, 1, 1>>
<<2, 0, 1, 1, 1>>
<<3, 1, 1, 1>>
<<2, 1, 0, 1, 1>>
<<1, 1, 0, 0, 1, 1>>
<<0, 1, 0, 0, 0, 1, 1>>
<<1, 0, 0, 0, 0, 1, 1>>
<<2, 0, 0, 0, 1, 1>>
<<3, 0, 0, 1, 1>>
<<4, 0, 1, 1>>
<<5, 1, 1>>
<<4, 1, 0, 1>>
<<3, 1, 0, 0, 1>>
<<2, 1, 0, 0, 0, 1>>
<<1, 1, 0, 0, 0, 0, 1>>
<<0, 1, 0, 0, 0, 0, 0, 1>>
<<1, 0, 0, 0, 0, 0, 0, 1>>
<<2, 0, 0, 0, 0, 0, 1>>
<<3, 0, 0, 0, 0, 1>>
<<4, 0, 0, 0, 1>>
<<5, 0, 0, 1>>
<<6, 0, 1>>
<<7, 1>>
<<6, 1, 0>>
<<5, 1, 0, 0>>
<<4, 1, 0, 0, 0>>
<<3, 1, 0, 0, 0, 0>>
<<2, 1, 0, 0, 0, 0, 0>>
<<1, 1, 0, 0, 0, 0, 0, 0>>
<<0, 1, 0, 0, 0, 0, 0, 0, 0>>
<<1, 0, 0, 0, 0, 0, 0, 0, 0>>
<<2, 0, 0, 0, 0, 0, 0, 0>>
<<3, 0, 0, 0, 0, 0, 0>>
<<4, 0, 0, 0, 0, 0>>
<<5, 0, 0, 0, 0>>
<<6, 0, 0, 0>>
<<7, 0, 0>>
<<8, 0>>
"\t"
:ok
```


### References

「コンピュータは数学者になれるのか? -数学基礎論から証明とプログラムの理論へ- 」(照井一成 )