Mit*_*aJ9 1 lisp scheme functional-programming infinite-loop racket
所以我在球拍中编写了I函数来计算Sums:
(define (sum term a next b)
(if (> a b)
0
(+ (term a) (sum term (next a) next b))))
Run Code Online (Sandbox Code Playgroud)
术语是应用于每个参数的函数.A接下来是我们如何前进到下一个元素(即a2 = 2*a1或a2 = a1 + 1等),b是最后一个元素.
还有2个附加功能:
(define (square x) (* x x))
(define (inc x) (+ x 1))
Run Code Online (Sandbox Code Playgroud)
如果我输入:
(sum square 1 inc 5)我得到的是正确的55
但如果我输入:
(总平方1平方5)
我陷入了困境!?为什么a2应该是a1*a1和a3 = a2*a2并且a应该超过b,因此结束递归的条件将是fultifield.很奇怪.