如果我用emacs-lisp编写此函数: (if (<= n 1) (* n (factorial (- n 1)))))=> factorial
它对5或10这样的小数字很有效,但如果我尝试计算(阶乘33),答案是-1211487723752259584,这显然是错误的,所有的大数字都会破坏函数。在python中,这是不会发生的。导致此问题的原因是什么?
因此,我在Prolog中有以下工作代码,它生成给定值A的阶乘:factorial(A,B) :- A>0, C is A-1, factorial(C,D), B is我的猜测是阶乘(0,1)插入了一些包含(0,1)的结构作为“阶乘”的成员。如果是的话,结构是什么样子的?我知道如果我们说“下雨(西雅图)”,这意味着西雅图是下雨的。但是“阶乘(