+++ title = "Converting any recursive function" author = "Yann Herklotz" tags = [] categories = [] backlinks = ["1b3"] forwardlinks = ["1b5"] zettelid = "1b4" +++ The problem with synthesising arbitrary recursive functions is that they require a stack. The stack saves the state of all the functions that are live before the recursive function call happens, so that the function can continue normally afterwards. Saving the state on the stack is inexpensive in software normally, as memory is abundant, however, in hardware it is quite expensive and slow to save variables on the stack.