Я довольно ржавый в прологе, но я не уверен, почему такие вещи терпят неудачу:
frack(3).
frack(X) :- frack(X-1).
Итак, если я оцениваю frack(4). из интерактивной подсказки с указанными выше фактами я ожидаю, что она не должна бесконечно повторяться, поскольку 4-1 = 3. Но я получаю эту ошибку в SWI-Prolog:
ERROR: Out of global stack