我试着写类型的功能:帕斯卡三角SML
pascal : int * int -> int
在对整数的代表行和列,分别是帕斯卡三角。
这里是我的尝试:
fun pascal(i : int, j : int) : int =
if (i = 0 andalso j = 0) orelse i = j orelse i = 0
then 1
else
pascal(i - 1, j - 1) + pascal(i - 1, j);
它为我的基地情况,但否则让我奇怪的输出。例如:
pascal(4, 2)
给我11和pascal(4, 1)
给了我15
这是一个有点奇怪,因为,只要if语句失败,否则获取评估,我确实想返回元素之一的总和在上面的行中,元素在上面一行,在左边一个元素。
我在做什么错?
您不必写“谢谢”,或用您的名字签名,因为它会自动显示在您帖子的右下角。 – Jubobs