类型检查器:提供了“n”的声明,但“n”在以下位置没有定义:n

Type Checker: Declaration for `n' provided, but `n' has no definition in: n

我正在尝试在 Lisp/drRacket 中执行阶乘计算器函数,但我遇到了问题,无法弄清楚。

#lang typed/racket
(: n Number)
(define (faktoriyel n)
    (cond
        ((< n 0) (error "eksi sayıların faktoriyeli olmaz"))
        ((and (>= n 0) (<= n 1)) 1)
        (else (* n (faktoriyel (- n 1))))))

您应该声明函数的类型,而不是变量 n:

(: faktoriyel (-> Number Number))

(-> Number Number)表示一个函数,参数为Number,returns为Number.

请参阅文档中的 Function Types