方案:帕斯卡三角

Scheme: Pascal's Triangle

我正在尝试编写一个程序,它接受行号和列号(均从 1 开始)并返回帕斯卡三角形在该行号和列号处的值。这是我的尝试:

(define (pascal row column)
    ;;;if column is 1 or row == column, 1
    (if (or (= column 1)(= row column))
    1
    ;;;else (pascal row-1 column-1) + (pascal row-1 column+1)
    (+ (pascal (- row 1) (- column 1)) (pascal (- row 1) (+ column 1)))))

当我尝试打电话时

(pascal 3 2)

我得到:

Aborting!: maximum recursion depth exceeded

知道这里会发生什么吗?

组合位置(行,列)的两个元素是not(row-1,column-1)和(row-1,column+1)。 (试着画一幅画。)