2

私は広告ライブラリhttp://hackage.haskell.org/package/adを使用しており、そのさまざまな機能に渡す最速のトラバーサブルを探しています。

理想的には、メモリの連続した配列を使用するデータ構造であるため、C++ の世界で数値ソルバーに渡すことができます。

私の最善の策は何ですか?

4

2 に答える 2

6

メモリの連続した配列を使用するデータ構造なので、C++ の世界で数値ソルバーに渡すことができます。

ボックス化されていない Vector 型の Storable インスタンスを使用します。

Cに渡すことができる「Storable」制約は、利用可能なデータ型を大幅に制限します。ベクトルは、非常に高速な一括操作をサポートします。別の代替手段は Repa 配列です。

ただし、adパッケージには Functor と Traversable が必要なため制限がありますが、これらは完全を期すためにのみ提供されており、実際にはリストにシリアル化して、traversable インスタンスを取得します。Storable は特定のボックス化されていない型にクラス制限されているため、Traversable と Storable が混在することはありません。

于 2013-03-08T08:31:16.417 に答える
2

instance Traversable (Data.Functor.Constant a)

(ごめん!)

于 2013-03-08T22:50:29.167 に答える