【问题标题】:add1 function from scheme to R5RS从方案到 R5RS 的 add1 函数
【发布时间】:2012-10-28 19:54:47
【问题描述】:

我已经编写了一些代码,但它不起作用,因为我在 Scheme 中使用的 add1 函数不适用于 R5RS。 R5RS中的add1可以用什么代替?

【问题讨论】:

  • R5RS 方案。 S 代表方案。你是说 Racket 的 add1 吗?

标签: scheme racket r5rs


【解决方案1】:

迟到的答案,但另一种选择是(使用 lambdas)..

(define add1 
    (lambda (x)
        (+ x 1)))

【讨论】:

  • 我无法想象任何 Scheme 实现中两种形式的处理方式完全不同,假设我们正在讨论实现的默认实现 define。因此,您的答案与 Óscar 的答案完全相同,因此它本身不是替代方案。
  • @ChrisJester-Young 我的意思是另一种写作方式。可以说毫无用处,但谁不想炫耀他们新发现的 Scheme 技能。
  • 这是一个炫耀的答案(它宏扩展为完全相同的东西,但看起来更酷;需要SRFI 26):(define add1 (cut + <> 1)) :-D
【解决方案2】:

程序add1很简单,你可以自己实现:

(define (add1 x)
  (+ x 1))

【讨论】:

  • 或者你可以直接使用(+ 1 x) 并保存一个按键。
猜你喜欢
  • 1970-01-01
  • 2014-07-28
  • 1970-01-01
  • 1970-01-01
  • 2015-03-24
  • 2012-09-06
  • 2012-03-16
  • 2019-03-25
  • 1970-01-01
相关资源
最近更新 更多