这个函数是什么意思呢?

发布于 2024-10-19 12:35:47 字数 247 浏览 1 评论 0原文

对于以下函数:

(define (update f x v)
  (λ ($x)
    (display $x)
    (newline)
    (if (equal? $x x)
        v
        (f $x))))
  1. 这里的$是什么意思?

  2. $x 从哪里来?

for the following function:

(define (update f x v)
  (λ ($x)
    (display $x)
    (newline)
    (if (equal? $x x)
        v
        (f $x))))
  1. what does $ mean here?

  2. where does the $x come from?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

对岸观火 2024-10-26 12:35:47

$ 在Scheme 中没有特殊含义——它只是一个与其他字符一样的字符。

至于第2部分:代码

(define (update f x v)
  (λ ($x)
    (display $x)
    (newline)
    (if (equal? $x x)
        v
        (f $x))))

相当于:

(define (update f x v)
  (define (DUMMY $x)
    (display $x)
    (newline)
    (if (equal? $x x)
        v
        (f $x)))
  DUMMY)    ;; Return the lambda

所以$x只是内部函数的一个参数,没什么特别的。

$ has no particular meaning in Scheme -- it's just a character like any other.

As for part 2: the code

(define (update f x v)
  (λ ($x)
    (display $x)
    (newline)
    (if (equal? $x x)
        v
        (f $x))))

is equivalent to:

(define (update f x v)
  (define (DUMMY $x)
    (display $x)
    (newline)
    (if (equal? $x x)
        v
        (f $x)))
  DUMMY)    ;; Return the lambda

So $x is just a parameter to the inner function, nothing special.

知你几分 2024-10-26 12:35:47

据我所知, $ 没有语法意义,它只是参数标识符的一部分(如变量名)。这似乎创建了一个以 $x 作为其唯一参数的匿名函数。

From what I can tell, the $ has no syntactic meaning, it's merely part of the parameter's identifier (like a variable name). This appears to create an anonymous function with $x as its only parameter.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文