Bernoulli numbers: Difference between revisions

Content added Content deleted
(→‎{{header|Haskell}}: Alternative version)
Line 1,255: Line 1,255:
(bernouilliNumbers 60))</lang>
(bernouilliNumbers 60))</lang>
{{Out}}
{{Out}}
<pre>
<pre>B(0) = 1/1
maybe Monad
identity.scpt
js-001.scpt
js-002.scpt
js-003.scpt
js-004.scpt
jsMaybe.scpt
maybeAS-001.scpt
maybeFunction-001.scpt
maybeJS-005.scpt
setComprehension.scpt
setQuery-001.scpt
maybeFunction-001.scpt
TP2OG-022.scpt
TP2OG-024.scpt
bitPopulationJS-002.scpt
Untitled
Main.hs
tmp.hs
Settings
faulHaberES6-010.scpt
1
13
14
15
16
17
18
19
20
21
22
23
24
7
8
9
10
11
12
1
2
3
4
5
6

main :: IO ()
main =
(putStrLn . unlines)
(concat $
zipWith
(\i x ->
let n = numerator x
in [ concat ["B(", show i, ") = ", show n, "/", show (denominator x)]
| n /= 0 ])
[0 ..]
(bernouilliNumbers 60))
scanl
(\rs n ->
let xs = zipWith ((*) . (n %)) [2 ..] rs
in 1 - sum xs : xs)
[] .
enumFromTo 0
import Data.Ratio (Ratio, numerator, denominator, (%))
bernouilliNumbers :: Integer -> [Rational]
bernouilliNumbers =
fmap head .
tail .
Haskell - Main.hs:22
B(0) = 1/1
B(1) = 1/2
B(1) = 1/2
B(2) = 1/6
B(2) = 1/6