【发布时间】:2013-10-29 13:23:19
【问题描述】:
我正在定义一个函数binomial(n k)(又名帕斯卡三角形),但出现错误:
application: not a procedure;
expected a procedure that can be applied to arguments
given: 1
arguments...:
2
我不明白这个错误,因为我认为这定义了我的功能:
(define (binomial n k)
(cond ((or (= n 0) (= n k)) 1)
(else (+ (binomial(n) (- k 1))(binomial(- n 1) (- k 1))))))
【问题讨论】:
-
我应该提到我正在使用带有 Dr.Racket 的#lang 方案
-
我尝试调用 binomial(1 2)
-
(binomial (n) (- k 1))的语法是什么?尝试记住 Scheme 中变量的语法,并与(n)的用法进行比较。 -
请注意,此算法效率极低 - 指数递归调用次数!
-
请在发布问题之前在 Stack Overflow 上搜索特定的错误消息。 (如果你这样做了,请原谅我的评论。)有other question about this error。
标签: lisp scheme racket pascals-triangle