Sigma знак у Haskell

Як я разумею н. як сігма знак у Haskell?

Тое, што я хачу, каб вылічыць гэта:

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

EDIT: Я не хачу прадстаўляць грэцкі характар. Я хачу, каб вылічыць суму.

загадзя дзякую

1
Я не рэкамендаваў бы выкарыстаць слова "знак" у загалоўку, калі тое, што вы шукаеце ня фактычны характар ​​сігма.
дададзена аўтар MatrixFrog, крыніца
Я не ўпэўнены, што спасылка з'яўляецца правільнай; Вы маеце на ўвазе (х {Sub Я}, {х на поўдзень я + 1)) ?
дададзена аўтар John L, крыніца
Хочаце выкарыстоўваць грэцкую літару ў зыходным кодзе праграмы, ці вы хочаце, каб падвесці сёе-тое?
дададзена аўтар delnan, крыніца
ня грэцкае ліст, я хачу падвесці STH ўверх.
дададзена аўтар user28061, крыніца
Так. Sry я меў на ўвазе, што ....
дададзена аўтар user28061, крыніца

2 адказы

Мяркуючы, што ў вас ёсць х значэння ў (не) спіс пустая хз = [x1, x2, ..., хп] , вы можаце запісаць яго ў выглядзе

sum $ zipWith fn xs (tail xs)
10
дададзена
Гэта, верагодна, менш развіта, чым вы думаеце. Функцыя zipWith прымае 3 аргумэнты: першы аргумент з'яўляецца функцыяй ( п ), а другі і трэці аргументы спісаў. Калі вы правяраеце электронную дакументацыю, вы ўбачыце, што zipWith выкарыстоўвае аргумент функцыі для аб'яднання элементаў у парамі два спісу, і вяртае вынік у выглядзе спісу (даўжыня якога роўная даўжынёй больш кароткі ўвод спіс).
дададзена аўтар comingstorm, крыніца
Вы разумееце, што гэта х падрадковы, а не я падрадковы на другі аргумент Fn . Такім чынам, гэта не вылічыць, якія стану ўраўненні. (Калі, вядома, гэта не памылка друку ў раўнанні.)
дададзена аўтар Thomas Eding, крыніца
Для гэтай канкрэтнай праблемы, гэта, верагодна, шлях.
дададзена аўтар user824425, крыніца
І калі вы выкарыстоўваеце zipWith ў спалучэнні з хвост , як тут, вы атрымаеце, каб прымяніць функцыю п для кожнага «сумежнага» пары ў спісе ,
дададзена аўтар user824425, крыніца
Добрае назіранне, trinithis: D думаю, хоць, гэта можна выказаць здагадку, што гэта памылка друку, так як х у падмностве з'яўляецца нявызначаным свабоднай зменнай тут (я бачыў прыклады ў тым, дзе ж назвай < код> х быў выкарыстаны, але х -Вось-заўсёды-ёсць-а-індэкс адрозніваўся ад х -Всегда-без індэкса) або проста бессэнсоўнымі ,
дададзена аўтар user824425, крыніца
Для мяне гэта выглядае вельмі Advanced. можа быць, ёсць больш Асноўны спосаб implememt гэта?
дададзена аўтар user28061, крыніца
Дзякуючы высокаму рэйтынгу Я пазначыў гэты адказ, як рашэнне, хоць я ў канчатковым выніку з дапамогай рэкурсіі.
дададзена аўтар user28061, крыніца

Чаму не простая рэкурсіўная функцыя?

sigma 0 fn = fn 
sigma i fn = fn + (sigma (i-1) fn)
3
дададзена
Варта адзначыць, што гэты падыход (наіўная Рэкурсія) мае даволі непрыемнае паводзіны для больш доўгіх паслядоўнасцяў. Акрамя таго, гэтая канкрэтная рэалізацыя ўсяго толькі п * (г + 1) для п> = 0 і бясконцы цыкл для г <0 ( вы павінны былі б зрабіць Fn становіцца функцыяй я фактычна называюць яго на кожным кроку).
дададзена аўтар delnan, крыніца
Калі гэта хатняе заданне, наіўная Рэкурсія можа быць шляхам.
дададзена аўтар nponeccop, крыніца