2011-12-07 9 views
2

私は浮動小数点数のリストを返す関数(mergeall)を持っています。このリストの隣接する要素のすべてのペアの差異を計算したいと思います。たとえば:Haskell:リスト内の隣接する要素のすべてのペアの相違を計算します。

[1.1,2.2,3.3,4.4,5.5,6.6] 
do 1.1-2.2, 2.2-3.3,3.3-4.4... 
return list of all difference 

だから、これはリストに合格し、リストを返すべきです。問題は次のとおりです。

  1. "mergeall"のリストはどのように使用できますか?
  2. 上記のアルゴリズムはどのようにすればよいですか? 誰かが私を助けることができますか?ありがとう!
+3

この宿題はありますか? – is7s

答えて

8
differences fs = zipWith (-) fs (tail fs) 
+4

またはポイントフリーのバージョン: 'differences = ap(zipWith( - ))tail' –

+5

pointfreeのバージョンが読みやすくなったとは言えません。 – augustss

+0

モナドを持たないので、 'ap'の代わりに' .'を使うべきですか?また、 '.'は関数適用よりも優先順位が低くなります。 –

関連する問題