原子的 ruby 方法?在计划中

标签 ruby scheme

我正在尝试使用 Ruby 做“The Little Schemer”中的练习。我想知道原子的等效方法?在 Ruby 方案中。

原子?是一种方法,如果传入的参数是原子,则返回 true,否则返回 false。 据我了解,原子可以是一串字符或数字。它不能是列表。

最佳答案

Scheme 中的原子,由 The Little Schemer 定义:

(define atom?
  (lambda (x)
    (and (not (pair? x)) (not (null? x)))))

所以 Scheme 中的原子是除了列表(用 'cons' 运算符创建的东西)和 null 之外的一切。在 Scheme 中,这最终是符号、数字、方法,可能还有一些我忘记的东西。 Ruby 要复杂得多。

所以为了做 The Little Schemer 中的练习,Ruby 中的原子是 FixNum、Symbol、TrueValue 或 FalseValue。或者一个方法。然后对于列表,您将需要为 Ruby 的数组类型定义 cons、car 和 cdr 方法。我实际上可能会说,任何不是数组且不是 nil 的东西都是原子。这种讨论有时会变得主观。

然后您可能需要进行更多的黑客攻击才能使所有内容的行为相同。老实说,虽然我喜欢 The Little Schemer,但它确实有一些相当特定于 Lisp 的东西,虽然我可以看到将它改编为另一种函数式语言,如 Haskell 而不会太多麻烦,但我认为让它在像 Ruby 这样的语言中工作会比它值得的麻烦更多。

关于原子的 ruby 方法?在计划中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1286812/

相关文章:

recursion - 如何在Racket或Scheme中使用递归来自动执行重复性任务?

arguments - Racket 类中的默认/可选参数?

ruby-on-rails - 从 HTML 页面中删除所有 JavaScript

ruby - 使用 RMagick 将缩略图合并为一个大图像

Scheme——死循环和内存

scheme - SICP 练习 1.5

css - Ruby on Rails - image_tag 找不到本地镜像

ruby-on-rails - 嵌套资源的 Rails 路线

java - 为多个应用程序修复 Windows 7 环境变量中的 'PATH'

functional-programming - 有人可以解释一下方案中的这种延续吗?