这段示例代码会在不太长的输入上耗尽内存,并且似乎在耗尽之前会指数级变慢。如果不是错误,它也是测试套件的实用示例。
`
(s/def ::thing
(s/+ (s/alt :x (s/+ (set (range 70))))))
(time (s/conform ::thing (range 10))) ;; 30ms
(time (s/conform ::thing (range 15))) ;; 500ms
(time (s/conform ::thing (range 20))) ;; 24s
`
由用户 @petrus 在 Clojurians Slack 上捕获,由 Max Penet 简化。