gpt4 book ai didi

scheme - 如何将此 Scheme 代码转换为 Racket

转载 作者:太空宇宙 更新时间:2023-11-03 18:40:56 26 4
gpt4 key购买 nike

我是 scheme 的新手。这是麻省理工学院SICP类(class)的代码示例。

 (define (+ x y)
(if (= x 0)
y
(+ (-1+ x) (1+ y))))

如何将其转换为 Racket 代码?我想转换为 Racket,因为我正在使用 DrRacket 来运行代码,我喜欢这样。它一直工作到现在,但提示方案的增量运算符。

我得到的错误是:

  1. define-values: 不能改变常量:+
  2. 对未定义标识符的引用:-1+

最佳答案

这在 Racket 中可以正常工作:

(define (add x y)
(if (= x 0)
y
(add (sub1 x) (add1 y))))

一些评论:

  • 过程的名称+会很麻烦,因为它会与Scheme中原始的add操作发生冲突;如果您使用不同的名称会更简单,例如 add(这将修复第一个错误)
  • -1+ 不是 Racket 中的过程,将其替换为 sub1 (这将修复第二个错误)。或者,您可以为此过程定义一个别名,如下所示:(define -1+ sub1)
  • 1+ 不是Racket中的程序,用add1代替。或者,您可以为此过程定义别名,如下所示:(define 1+ add1)
  • 可选:代替 (= x 0) 你可以写 (zero? x)

关于scheme - 如何将此 Scheme 代码转换为 Racket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11056493/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com