Bell numbers: Difference between revisions
Content added Content deleted
(→{{header|Haskell}}: Updated output.) |
|||
Line 1,544: | Line 1,544: | ||
{{out}} |
{{out}} |
||
⚫ | |||
<pre>bellTri :: [[Integer]] |
|||
[1] |
|||
bellTri = |
|||
[1,2] |
|||
let f xs = (last xs, xs) |
|||
[2,3,5] |
|||
in map snd (iterate (f . uncurry (scanl (+))) (1, [1])) |
|||
[5,7,10,15] |
|||
[15,20,27,37,52] |
|||
[52,67,87,114,151,203] |
|||
[203,255,322,409,523,674,877] |
|||
[877,1080,1335,1657,2066,2589,3263,4140] |
|||
[4140,5017,6097,7432,9089,11155,13744,17007,21147] |
|||
[21147,25287,30304,36401,43833,52922,64077,77821,94828,115975] |
|||
⚫ | |||
bell :: [Integer] |
|||
1 |
|||
bell = map head bellTri |
|||
1 |
|||
2 |
|||
5 |
|||
15 |
|||
52 |
|||
203 |
|||
877 |
|||
4140 |
|||
21147 |
|||
115975 |
|||
678570 |
|||
4213597 |
|||
27644437 |
|||
190899322 |
|||
⚫ | |||
main :: IO () |
|||
10726137154573358400342215518590002633917247281</pre> |
|||
main = do |
|||
⚫ | |||
mapM_ print (take 10 bellTri) |
|||
⚫ | |||
mapM_ print (take 15 bell) |
|||
⚫ | |||
print (bell !! 49)</pre> |
|||
And, of course, in terms of ''Control.Arrow'' or ''Control.Applicative'', the triangle function could also be written as: |
And, of course, in terms of ''Control.Arrow'' or ''Control.Applicative'', the triangle function could also be written as: |