1
A
回答
2
一套!是O(1)。 Scheme與其他語言在這方面沒有區別。
2
set!
操作只是將一個值綁定(「綁定」)到一個符號,當然這是任何自尊的編程語言中的O(1)
。尋找綁定可能不一定是O(1)
取決於實現細節,但這是一個完全不同的問題(我不知道球拍的具體情況)。
關於begin
,這是一種排序形式,應用它並沒有成本本身,只有它的內容(它保存在裏面的表達式)將決定它的時間複雜度。對於set!
同樣的事情,分配的值部分可能需要一些時間來評估,但set!
操作本身是O(1)
2
警告:設定!並開始都有子表達。如果其中任何一個需要很長時間,那麼評估該集合! (或開始)也是如此。
1
如果您擔心set!
的性能,請記住,避免突變可能會更快。見Racket Guide: Mutation and Performance。
相關問題
- 1. 如何從正常運行時間開始日期和時間
- 2. 從開始計算總運行時間/停止時間戳
- 3. SQL:將時間列設置爲從指定時間開始
- 4. 運行進程開始時間
- 5. UIPickerView從中間的選定行開始
- 6. 如何從Django視圖開始長時間運行的進程?
- 7. 從特定時間開始mp4
- 8. 從指定時間開始秒錶
- 9. 計劃任務在特定時間開始每n秒運行
- 10. 運行時C初始值設定項
- 11. AJAX以設定的時間間隔運行onload並且以設定的時間間隔
- 12. 運行活動從開始
- 13. Java開始運行時Skype
- 14. 硒網格,測試開始在同一線程並行運行時開始
- 15. 當TDR開始運行時,長時間運行的cuda內核會停止
- 16. yii migrate/up始終從開始運行
- 17. 的Java Swing:設置定時器和循環開始時間
- 18. 設置Azure Media Player的開始時間
- 19. 從固定的開始時間計算不同時間點的經過時間
- 20. C++:從一個特定的時間戳開始計時器,並增加它
- 21. 通過ajax開始並監控長時間運行SQL查詢的進度
- 22. 開始長時間運行的後臺進程並檢查狀態
- 23. FlashDevelop運行時間開銷
- 24. Cron Expression - 在開始時間後每小時運行一次
- 25. 的NetBeans:從開始運行(F6)按鈕
- 26. Fullcalendar按當前時間的時間設置開始小時數
- 27. 如何找出android應用程序的運行/開始時間?
- 28. 如何終止/重新開始長時間運行的任務
- 29. 現場時鐘javascript從我的自定義時間開始
- 30. 從時間()開始繪製日期(從matplotlib開始)