シグマサインインhaskell

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

私が計算したいのはこれです:

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

編集:私はギリシャ文字を表現したくありません。私は合計を計算したい。

前もって感謝します

1
探しているものが実際のシグマ文字でない場合は、タイトルに「記号」という言葉を使用しないことをお勧めします。
追加された 著者 MatrixFrog,
リンクが正しいかどうかわからない。 (x {sub i}、x {sub i + 1})を意味しますか?
追加された 著者 John L,
あなたのプログラムのソースコードでギリシャ文字を使用したいか、何かを合計したいですか?
追加された 著者 delnan,
ギリシャの手紙ではなく、私はsthを合計したい。
追加された 著者 user28061,
はい。 Sryはそれを意味する....
追加された 著者 user28061,

2 答え

x の値が(emtpyではない)リスト xs = [x1、x2、... xn] であると仮定すると、

sum $ zipWith fn xs (tail xs)
10
追加された
おそらくあなたが思っているよりも進んでいないでしょう。関数 zipWith は3つの引数を取ります:最初の引数は関数( fn )で、2番目と3番目の引数はリストです。オンラインドキュメントを調べると、関数の引数を使って2つのリストの要素をペアごとに組み合わせて zipWith が結果をリストとして返すことがわかります(その長さは短い入力の長さと同じです)リスト)。
追加された 著者 comingstorm,
fn の2番目の引数に i の添字ではなく x という添え字であることを認識しています。したがって、これは、方程式の状態を計算しません。 (もちろん、方程式のタイプミスでない限り)。
追加された 著者 Thomas Eding,
この特定の問題については、これはおそらく行く方法です。
追加された 著者 user824425,
そして、 tail と一緒に zipWith を使用すると、リストのすべての「隣接」ペアに関数 fn を適用します。
追加された 著者 user824425,
良い見解、トリニス:DIは、サブセットの x がここでは未定義の自由変数であるので、それがタイプミスであると仮定することは安全だと考えている(私は同じ名前< x は常に使用されていましたが、 x
追加された 著者 user824425,
私にとってこれは非常に高度に見えます。おそらくこれを実装するためのより基本的な方法がありますか?
追加された 著者 user28061,
私は再帰を使用して終了しましたが、高い評価のために私は解決策としてこの答えをマークしました。
追加された 著者 user28061,

なぜ単純な再帰関数ではないのですか?

sigma 0 fn = fn 
sigma i fn = fn + (sigma (i-1) fn)
3
追加された
このアプローチ(ナイーブな再帰)は、より長いシーケンスに対してはかなり恐ろしい振る舞いをすることに注意してください。また、この特定の実装は n> = 0 fn *(i + 1) i <0 の無限ループ i の関数 fn を各ステップで実際に呼び出すようにする必要があります)。
追加された 著者 delnan,
それが宿題であれば、素朴な再帰が行くことができます。
追加された 著者 nponeccop,