2011-10-27 10 views
1

どのように私はsthを実現することができます。 haskellのシグマサインのように?シグマサインhaskell

私は何を計算したいことはこれです:

http://img6.imagebanana.com/img/dulfkvz8/form.png

編集:私は、ギリシャ語の文字を表現する必要はありません。私は合計を計算したいと思います。

ありがとうございました

+0

としてそれを書くことができ、あなたのプログラムのソースコード内のギリシャ文字を利用したいですか、または何かを合計したいですか? – delnan

+0

ギリシャの手紙ではなく、私はsthを合計したい。 – user28061

+1

探しているものが実際のシグマ文字でない場合は、タイトルに "sign"という単語を使用しないことをお勧めします。 – MatrixFrog

答えて

10

、あなたは

sum $ zipWith fn xs (tail xs) 
+0

この特定の問題については、これはおそらく行く方法です。 –

+0

私にとってこれは非常に高度なようです。おそらくこれを実装するためのより基本的な方法がありますか? – user28061

+3

おそらくそれはあなたが思っているよりも進んでいないでしょう。 'zipWith'関数は3つの引数を取ります:最初の引数は関数(' fn')で、2番目と3番目の引数はリストです。オンラインドキュメントをチェックすると、 'zipWith'は関数引数を使って2つのリストの要素をペアごとに結合し、その結果をリスト(短い入力リストと同じ長さのリスト)として返します。 – comingstorm

-3

なぜ単純な再帰関数ですか?あなたは(非emtpy)リストxs = [x1, x2, ... xn]x値を持っていると仮定すると

sigma 0 fn = fn 
sigma i fn = fn + (sigma (i-1) fn) 
+5

このアプローチ(ナイーブな再帰)は、より長いシーケンスのためにむしろ恐ろしい振る舞いをしています。また、この特定の実装は、 'n> = 0'の' fn *(i + 1) 'と' i <0'の無限ループ( 'fn'を' i'の関数実際に各ステップで呼び出す)。 – delnan

+1

それが宿題であれば、素朴な再帰が行くことができます。 – nponeccop