racket - 球拍中的点是什么意思?
问题描述
.
in是什么(define-syntax-rule (id . pattern) template)
意思?它只是define-syntax-rule
语法的一部分还是在球拍中意味着一些特殊的东西?
解决方案
它是定义的标准可变参数语法(过程相同):名称之后和点之前的所有标识符都被视为必需参数,点之后是一个可变长度列表(包含零个或多个元素)和可选参数参数。例如:
(define (test x . args)
(displayln x)
(displayln args))
(test)
=> arity mismatch, the expected number of arguments
does not match the given number
(test 1)
=> 1
()
(test 1 2)
=> 1
(2)
(test 1 2 3)
=> 1
(2 3)
可以有零个必需参数,使所有参数都是可选的:
(define (test . args)
(displayln args))
(test)
=> ()
(test 1)
=> (1)
(test 1 2)
=> (1 2)
在 的情况下define-syntax-rule
,这意味着在id
零个或多个模式之后:
(define-syntax-rule (id . pattern) template)
推荐阅读
- python - 如何像 C# 中的 CompareTo() 一样比较 Python 中的整数?
- python - 我无法在 Atom 中运行 python 代码,但可以在视觉工作室中运行它,因为我使用 anconda 3 下载 python
- c++ - 如何将节点保存到数组中
- google-sheets - 接收“SUMIFS 的数组参数大小不同。” 谷歌表格中的错误
- javascript - 访问有序的类属性
- python - 在自定义环境中运行的 Tensorflow C51 示例代码会出现形状错误
- ios - CI - Xcode 12 服务器在集成后不发送电子邮件
- python - python中的portscanner问题
- html - 可以使用元标记(http-equiv)设置 COOP/COEP 标头吗?
- swift - 泛型方法的类型不匹配问题