タグ

clojureとsequenceに関するishideoのブックマーク (2)

  • Clojure勉強日記(その14 Clojureにおけるシーケンスの特徴とJavaオブジェクトの扱い - 夢とガラクタの集積場

    こんにちは。 そろそろ、書籍も説明的な内容が増えてきたので単にべた書きではなく、 理解したことをまとめていく方針を取ります。 1.遅延シーケンスと無限シーケンス JavaにあってClojureにないシーケンスの一番の特徴がこの遅延シーケンスと無限シーケンスです。 遅延シーケンスはその名の通り、「各要素が必要になった場合に初めて評価される」シーケンス。 無限シーケンスは「自然数全て」のような、理論上無限に値が存在するシーケンス。 通常のプログラミング言語では「無限シーケンス」というのは具体化しえない。 生成した時点でメモリが溢れて終わり、でしょうから。 ただ、Clojureでは遅延シーケンスによって 「必要になった時点で評価する」「ユーザ側で必要な分だけ取得する」ということが可能なため、 無限の値を生成するシーケンスを記述することが可能となる。 #まぁ、値を限定する関数とペアで使用しないと最

    Clojure勉強日記(その14 Clojureにおけるシーケンスの特徴とJavaオブジェクトの扱い - 夢とガラクタの集積場
  • Clojure(1.3-1.4)のリスト/ベクタ(シーケンス)操作関数一覧

    何回使っても、気づいたら、忘れてしまうリスト/ベクタ系関数について調べたメモ。 Clojureでは、プログラムの大半はシーケンス操作になる可能性が高い為か、Clojureのシーケンス操作関数は、かなり充実していますが、たくさんありすぎて、使いこなせているか不安になります。オフィシャルのリファレンスに関数一覧が乗っていますが、リストとベクタの操作に限定してまとめました。 ちなみに、リスト, ベクタ ⊆ シーケンスです。 zip(木構造), hashmap等は扱いません。 以下の9種類に大別。62個について調べました(まだあるかもしれません)。 生成系(7) cons系(3) getter系(21) observer系(8) map系(6) reduce系(2) filter系(3) リスト再構築(8) リスト並び替え(4)

  • 1