【问题标题】:What does the following function do in Scheme programming language以下函数在Scheme编程语言中的作用是什么
【发布时间】:2014-09-10 17:52:19
【问题描述】:
(define (unknown (lambda (x y)
  (cond
    ((null? y) y)
    ((x (car y)) (unknown x (cdr y))))
    (else (cons (car y) (unknown x (cdr y)))))))

当谈到方案时,我是一个新手,我想知道我在教科书中遇到的这个功能的目的。我的主要疑问在于 ((x (car y)) 做了什么。这个表达式如何在没有任何运算符的情况下执行,但我在编译时没有遇到任何错误。虽然我无法运行该程序,因为我为 x 输入的值显然不适用于该函数。请帮助。

【问题讨论】:

  • 哦,好吧。所以 x 需要“零?” ?

标签: functional-programming scheme lisp mit-scheme


【解决方案1】:

Scheme 函数可以将函数作为参数,也可以返回函数。如果您将函数作为参数传入,则您的代码是有意义的。

如果你这样调用代码:

(unknown even? '(1 2 3 4 5))

那么它应该返回列表 (1 3 5)。这是一个过滤函数,它返回 y 的成员,其中将函数 x 应用于成员的结果为 false。

【讨论】:

  • 好的,知道了。感谢您的帮助。
  • @hotinlava:np。去阅读小计划者,它有很多这样的东西。
猜你喜欢
  • 2020-12-06
  • 1970-01-01
  • 2022-01-08
  • 2022-01-05
  • 1970-01-01
  • 2019-06-04
  • 2011-04-01
  • 2011-03-20
  • 2010-09-28
相关资源
最近更新 更多