【问题标题】:Type Checker: Declaration for `n' provided, but `n' has no definition in: n类型检查器:提供了“n”的声明,但“n”在:n 中没有定义
【发布时间】:2020-05-21 18:27:40
【问题描述】:

我正在尝试在 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))))))

【问题讨论】:

  • 类型声明需要在函数中。您正在为不存在的全局变量提供类型声明。
  • 我在哪里可以准确地声明它?

标签: scheme racket typed-racket


【解决方案1】:

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

(: faktoriyel (-> Number Number))

(-&gt; Number Number) 表示以Number 为参数并返回Number 的函数。

请参阅文档中的Function Types

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多