【发布时间】:2013-06-10 15:44:57
【问题描述】:
oops :: Integer -> Integer -> Integer
oops a b
| a == 0 = b
| otherwise = oops (a - 1) (b + 1)
oopser :: Integer -> Integer -> Integer
oopser a b
| a == b = b
| otherwise = oopser (a + 1) (b - 1)
上述两个函数会终止哪个值a和b?如果函数终止,那么对于 a 和 b 的值返回哪个值? (分别回答这两个功能的问题)...
在编程中,我们如何真正定义“终止”这个词??
【问题讨论】:
-
如果我们将计算视为一个过程,我们可以识别它的开始,也可以识别它的结束。如果到达终点,我们称之为终止。如果我们将计算视为偏函数,则终止只是定义性。