2

SICP を読んだ後、最近streamjsを発見しました。開発者は、構文が異なる代替実装としてlinqjsを参照しましたが、接続できません。streamjs のメソッドは linqjs のメソッドにどのようにマップされますか?

4

3 に答える 3

1

「スカラー値」の代わりに関数を渡すため、それらは似ていると思います。したがって、遅延評価を行うことができます(従来のjavascriptデータ構造のように各操作ではなく、操作の最後/オンデマンドで結果を評価します)。ストリームやリンクとは関係なく、遅延評価を使用するpimple.jsライブラリでその原則を使用しました。

于 2012-11-29T16:50:23.797 に答える
1

私はどちらのライブラリも使用していませんが、これが私の最初の分析です (私はかなりの量の SICP を読みましたが、確かにすべてではありません)。

stream.jsリストの機能的なスタイルのデータ構造の実装です。関数型言語の多くのデータ構造は、Stream構造と同様に再帰的である傾向があります。head 要素とStream、tail 要素 (後続要素) の a で構成されます。ここで、末尾を関数 (つまり、無限シーケンス) にすることで、遅延評価を実現できます。

さて、あなたの質問に答えるために、によって提供されるすべての関数は、linq.jsmap、reduce、walk、fold などの他の一般的な高次関数で定義できる必要があります。

確かに、は のメソッドをstream.js実装していませんが、 でそれを行うことができます。Any()linq.jsreduce()

于 2012-11-29T17:23:16.273 に答える