![](/img/trans.png)
[英]How do I set up a clojureScript project to use specs and test the clojure.core functions at runtime?
[英]Do I need to do something special to use clojure.core/time?
我正在調用clojure.core / time,記錄為“Evaluates expr並打印它所花費的時間。返回expr的值”
例如:
(time (expensive))
宏展開它表明它確實將值存儲為let,因此在輸出時應該立即返回let表達式中的值。
然而,當我使用昂貴的計算進行呼叫時,我看到延遲然后得到時間,但是必須等待很長時間(有時+10秒或更長時間)才能顯示結果。
誰能解釋一下這里發生了什么?
PS:這是使用clojure 1.3.0,如果這有任何區別。
也許你正在返回一些懶惰的東西,其中的元素僅在送入REPL時生成? 在這種情況下,您可能希望將其包裝在一個迫使所有元素生成的dorun
中。
如果您能提供昂貴計算的詳細信息,我們可以看出這是否屬實。
來自Savanni D'Gerinel評論的有用補充:
正確的語法可能是(time (doall (computation)))
如果你想返回結果和(time (dorun (computation)))
如果你不想。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.