私はPractical Clojure(第5章)で、rseq
関数の演算が一定の時間内に実行されていると読んでいました。それは私には線形時間操作でなければならないと思われる。誰も私のためにこれについていくつかの光を当てることができますか?Clojure rseqは一定時間ですか?
6
A
答えて
12
これを試してみてください:
(class [1 2 3 4])
あなたが表示されます:
(class (rseq [1 2 3 4]))
とシーケンスIMP:
clojure.lang.PersistentVector
今これを試してくださいlementationは異なっている:ローマが言ったように
clojure.lang.APersistentVector$RSeq
は、それが配列に変更されたインターフェースです。すべての要素は、逆の順序でアクセスしている場所です。あなたはそれがここに実現しています方法を確認するためにRSeq
クラスを参照してくださいすることができます
3
私はそれがどのように実装されているのかわかりませんが、シーケンスインターフェイスを実装し、逆の順序で構造(ベクトルまたはソートマップ)をトラバースする方法を知っているオブジェクトを返すと思います。結果シーケンスは怠惰なので、すぐに構造全体を走査する必要はありません。
0
それはゴランJovicが言ったように、一定時間内に新しいインターフェースを返しますが、それをプリントアウトすることは線形です。 REPLにそれを表示することは線形ですが、defに入れるのは定数です。
関連する問題
- 1. Clojureプログラムの実行時間
- 2. Javaプログラムで一定の時間間隔で何かを起こすには?
- 3. 一定の時間間隔でグラフ/プロットを更新する
- 4. 一定の時間範囲の時間プロファイラ?
- 5. は、現在の時刻に一定の時間を追加し、
- 6. C++各ノードに一定時間のツリー
- 7. WPF - 一定時間マウスを検出
- 8. 一定の時間mediaplayerを再生
- 9. jQueryアニメーション効果一定時間後
- 10. 一定時間間隔でAndroidデータをアップロード
- 11. 実線上の区間に対する一定時間メンバシップインデクシング?
- 12. 一定のCPU時間の間、プロセッサをスピンさせます
- 13. 2つの数値の乗算は一定時間アルゴリズムですか?
- 14. アンドロイドで一日の特定の時間の後に何かするには?
- 15. `std :: vector <primitive> :: clear()`は一定の時間操作ですか?
- 16. 配列とハッシュマップのアクセス時間はどのように一定ですか?
- 17. SQLは一定時間内にわずか数時間しか値を取得しませんか?
- 18. 一定の時間を1日増やしますか?
- 19. 一定の時間内に文字列をコピーしますか?
- 20. 一定時間後にアクティビティを開きますか?
- 21. 一定時間後にスクリプトの実行をスケジュールしますか?
- 22. アンドロイド:一定の時間に何かをする
- 23. 一定時間後にアクションをトリガする方法は?
- 24. C#一定時間後にプログラムを停止する方法は?
- 25. Javaで一定の時間間隔で多くのデータを追加します。
- 26. C++で一定の時間間隔でメソッドを実行するWindowsサービス
- 27. C++配列を一定時間で初期化する
- 28. NSTimerが一定時間後にバックグラウンドで停止する
- 29. Jmeter-Thread-一定の時間間隔でユーザーのセットを実行する方法
- 30. 一定の時間間隔の後にタスクを実行するためのベストプラクティスは何ですか?
ありがとうございました!それは理にかなっている。 –