タグ

arrayに関するrydotのブックマーク (5)

  • いやなブログ: 配列操作の比較表: Ruby, Python, JavaScript, Perl, C++

    配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ プログラムを書いていると、他のプログラミング言語の記憶とごっちゃになって、「配列の後ろに要素を追加するのは push だっけ、 append だっけ」などと混乱することがあります。特に Ruby, Python, JavaScript はコードの書き方が似ているので、この問題が起きがちです。 そこで、備忘録として、 Ruby, Python, JavaScript, Perl, C++ の配列操作の比較表を作りました。一番慣れている Ruby を基準にしています。間違いなどがあったらご指摘いただけると助かります。他の言語のもあるといいなあ。 Ruby (Array) Python (list) JavaScript (Array) Perl (@) C++ (std::vector)

  • 第58回 Cの配列をHaskellで利用する

    Haskellでは、リストや配列といったデータ構造に対する処理を高速化するために様々な試みが行われています。しかし、残念ながら現在のHaskell処理系やライブラリの実装には性能面でまだまだ課題があります(参考リンク1、参考リンク2)。Cの配列をHaskellで直接利用するようにすれば、性能の向上を期待できます。 Cで書かれたOSやライブラリのAPIには、Cの配列(およびそうした配列を扱うCの関数)を引数に取るものもあります。HaskellのFFIを利用すれば、HaskellからCの配列を利用できます。今回は、その方法を紹介しましょう。 Cの配列を利用する方法 第22回で説明したように、HaskellのFFIではCのポインタをPtr型で表現します。Cではポインタを使って配列を参照するので、Ptr型を使えばHaskellでCの配列を利用できます。 ただし、ポインタを操作するStorableク

    第58回 Cの配列をHaskellで利用する
  • すごい配列楽しく学ぼう

    KMCの例会講座で用いたスライドを一部編集したものです。 ビット演算を組み合わせたトリッキーな方法で様々な操作を高速に行う方法を紹介します。

    すごい配列楽しく学ぼう
  • d.y.d. 2倍だけじゃない

    10:01 10/07/20 それでも2倍だ 先日のvectorの伸長度合いの記事に関して 当に1.5倍のほうがメモリ効率がよいのか という反応をいただきました。とても興味深い。みんな読みましょう。 自分の理解メモ: 「再利用ができるから嬉しい」等の議論をするなら、 今までに確保したメモリ (1 + r^1 + ... + r^k) のうち、 有効に使えてるメモリ r^{k-1} (バッファ拡大直後) や r^k (次のバッファ拡大直前) の割合で評価してみようじゃないかという。 まず簡単のために再利用をしない場合を考えると、この割合はそれぞれ (r-1)/r^2、 (r-1)/r になります(途中計算略)。 この利用率が最悪になる瞬間 (r-1)/r^2 を最善にしよう、 という一つの指標で考えてみると、式を微分なりなんなりしてみると r = 2 で最大(25%)となることがわかります

  • A Gentle Introduction to Haskell: Arrays

    やさしい Haskell 入門 (バージョン 98) back next top 13  配列 理想的には、関数型言語での配列は単にインデックスから値への関数とみなしま す。しかし、実際のところは、配列要素への効率的なアクセスを確保するために、 これらのアクセス関数の領域の特別な性質の利点を十分活用できることを確認し ておく必要があります。これは、連続した整数からなる整数の有限部分集合の同 型性という性質です。Haskell では、それゆえに、配列を適用演算をする一般的 な関数としては扱わず、サブスクリプト演算を行う抽象データ型として扱います。 関数的配列へのふたつの主要なアプローチは、インクリメンタルな定義とモノリ シックな定義とに識別することができます。インクリメンタルなアプローチの場 合は、与えられたサイズの空の配列を生成する関数と、もうひとつ、配列と、イ ンデックスと、値を引数とし

  • 1