我希望匹配打字/球拍中任意长度的模式列表。
我正在尝试做的一个简单示例是以下表达式:
(match '(1 2 3) [(list (? real? n) ...) n])
在无类型球拍中,我希望得到以下结果:
'(1 2 3)
但是,类型检查器会引发以下错误:
`Type Checker: Error in macro expansion -- insufficient type information to typecheck. please add more type annotations in: (match (quote (1 2 3)) ((list (? real? n) ...) n))`
使用...
执行贪婪模式匹配时,提供输入信息的最佳方法是什么?
答案 0 :(得分:0)
经过进一步的实验,看来匹配的输出需要一些与之相关的输入信息。例如,以下工作:
((lambda (l) : Any
(match l [(list (? real? n) ...) n]))
'(1 2 3))