Racket lambda'中点符号的含义;s参数

Racket lambda'中点符号的含义;s参数,racket,Racket,在其代码段中使用以下语法: (lambda (template . ids) ...) 据我所知,点表示法是cons的中缀等价物,允许创建成对的值。然而,在这种情况下我无法理解。这是一种模式匹配对的方法,例如在OCaml中可能的方法吗?这似乎是一种将函数参数作为列表处理的方法,正如我们在REPL中看到的: > ((lambda (a . b) a) 1 2 3) 1 > ((lambda (a . b) b) 1 2 3) '(2 3) 你完全正确。这个这里的符号只是表示,函

在其代码段中使用以下语法:

(lambda (template . ids)
  ...)

据我所知,点表示法是
cons
的中缀等价物,允许创建成对的值。然而,在这种情况下我无法理解。这是一种模式匹配对的方法,例如在OCaml中可能的方法吗?

这似乎是一种将函数参数作为列表处理的方法,正如我们在REPL中看到的:

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

你完全正确。这个这里的符号只是表示,函数可以接受比绑定到列表的参数更多的任意数量的参数。就这样。