2012-11-29 119 views

回答

1

我還沒有使用過任何一個庫,但是,這是我的初步分析(我已經閱讀了很多SICP,但並未承認)。

stream.js是列表的功能樣式數據結構的實現。功能語言中的許多數據結構往往是遞歸的,就像Stream結構一樣。它由頭部元素和尾部的Stream(後續元素)組成。在此,可以通過允許尾部是函數(即無限序列)來實現懶惰評估。

現在,爲了回答你的問題,所有的由linq.js提供的功能應該能夠與其他常見的高階功能,如地圖來定義,減少行走,褶皺等

當然,stream.js不從linq.js實施Any()方法,但您可以使用reduce()

1

我猜他們是相似的,因爲他們傳遞函數而不是「標量值」,所以他們可以做懶惰評估(評估結果在操作結束時/點播,而不是在每個操作,如經典的JavaScript數據結構)。我使用這個原理與我的pimple.js庫,它與流或鏈接無關,但使用懶惰的評估。

0

linq.js和stream.js有以下相似:

  • 使用函數來實現流作爲一個數據結構
  • 使用流以實施操作

LINQ的懶惰評價。 js和stream.js有以下區別:

  • linq.js有語法糖分[R查詢JSON
  • stream.js有能力鏈流
  • linq.js具有集合運算的語法糖

參考

相關問題