考虑下面的代码片段,它们分别用Scheme和Prolog编写:(define gcd (cond ((= a b) a)((> a b) (gcd (- a b) b))gcd(A, B,我们应该在哪里做出区别,以便将它们归类为函数式编程语言或基于逻辑的编程语言?
就我而言,他们做的事情完全一样,调用递归函数直到它终止。
我知道Prolog (逻辑编程)是关于返回true和false的,函数是返回从列表、数字到布尔值的任何东西。最初,Prolog似乎没有函数的概念,而是依赖于统一,但是您可以这样做:当然,我可以使用统一:
log2(X,Result) :- Result is log(X)/log(2).但是说我想使用‘语法糖函数风格’,这样我就可以写