你好,Ladislav
这个问题与 cljs 或 test.check 无直接关系
与 go
宏有关
go
宏会重写其主体
您可以在 repl 中运行 (macroexpand '(go 1))
来查看它。
即使是像 1
这样的简单形式,也会变成更长的形式,带有大量的“状态机”和其他内容。
1
结果产生一个 ~2k 字符的形式
稍复杂一些的形式,如 (go (inc (<! (go 1))))
,会变为 ~4k 个字符
并且会不断增长。
在某些情况下,这种“扩展的 go 代码”增长太多,导致 StackOverflow 或其他奇怪的解析器错误
在您的案例中, testing
/ is
宏会展开成大代码,因此您会很快遇到“太长”的形式。