Summor i Haskell
Här följer mitt första försök att använda Haskell (kom 1990). Jag påstår alltså inte att detta är ett bra, effektivt etc. program, men det var det första jag kom på. Min lösning liknar ju Matlab rätt mycket.
Jag skrev in följande rad i hugs
:
sum [ 1.0 / n | n <- [1..1000000]]
Tyvärr gav summationen i omvänd ordning:
sum [ 1.0 / n | n <- reverse [1..1000000]]
problem med utrymmet (jag fick Segmentation fault). En nödlösning är givetvis
sum [ 1.0 / (1000001 - n) | n <- [1..1000000]]
Om Du har en bättre (och helst en snabbare) lösning tar jag gärna och lägger upp den här. Du får också gärna tala om hur man skriver ut med ett givet antal decimaler.
Denna senare fråga har jag nu fått svar på. Så här kan det se ut (jag har tagit bort diverse utskrifter):
% hugs
Prelude> :l Numeric
Numeric> showFFloat (Just 3) (sum [ 1.0 / n | n <- [1..100]])
""
"5.187"
Byt trean i Just 3
till ett annat tal för att se ett annat
antal decimaler.