【问题标题】:Meaning of the dot notation in a lambda's parameterslambda 参数中点符号的含义
【发布时间】:2017-06-13 12:34:48
【问题描述】:

This SO answer 在其代码 sn-p 中使用以下语法:

(lambda (template . ids)
  ...)

据我了解,点符号是cons 的中缀等价物,并允许创建值对。但是在这种情况下我无法理解。它是一种模式匹配一​​对的方法,例如在 OCaml 中可能吗?

【问题讨论】:

    标签: racket


    【解决方案1】:

    这似乎是一种将函数的​​参数视为列表的方法,正如我们在 REPL 中看到的那样:

    > ((lambda (a . b) a) 1 2 3)
    1
    > ((lambda (a . b) b) 1 2 3)
    '(2 3)
    

    【讨论】:

    • 你是绝对正确的。这 。符号只是意味着,并且该函数可以采用任意数量的参数,而不是绑定到列表的参数。就是这样。
    猜你喜欢
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 2013-07-18
    • 2016-10-25
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 2012-06-12
    相关资源
    最近更新 更多