【问题标题】:Error - unbound symbol modulo (Scheme) when using Repl online IDE错误 - 使用 Repl 在线 IDE 时未绑定符号模(方案)
【发布时间】:2019-08-30 21:40:13
【问题描述】:

一个家庭作业问题需要我计算 2 个数字的 gcd。但是在 gcd 函数中使用 modulo 关键字在 Repl.it(在线 IDE)上运行时会出现上述错误。

我查看了其他答案,但它们并没有完全提供问题的解决方案。我尝试使用 jdoodle.com(另一个在线 IDE)运行该程序,它在那里完美运行。所以,我不知道为什么它在 Repl 上不起作用。

;; My gcd function

(define (gcd a b)
  (cond 
    [
      (= b 0) a
    ]

    [else 
      (gcd b (modulo a b))
    ]
  )
)

我想知道为什么这对 Repl IDE 不起作用,以及是否有任何方法可以让它在那里工作而无需简单地切换到另一个网站。

【问题讨论】:

    标签: ide scheme repl.it


    【解决方案1】:

    modulo 函数未在 repl.it 使用的 BiwaScheme 中实现。然而好的新功能是 - mod 功能!因此,通过一些合理的重新格式化,这应该可以工作:

    (define (gcd a b)
       (cond [(= b 0) a]
             [else (gcd b (mod a b))]))
    

    【讨论】:

    • 我试过了。 mod 确实适用于 repl。谢谢。
    • 另外,关于我使用的奇怪格式,我是 Scheme 的新手,所以我对括号要格外小心:)
    • 原因是 BiwaScheme 遵循 R6RS,它有 modmod0,而 OP 尝试在之前的标准 R5RS 中定义的 modulo。其他编程语言也有不兼容的主要版本,例如。 Python 2 与 3。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 2019-01-16
    • 2016-07-01
    • 2012-10-04
    相关资源
    最近更新 更多