Mian-Chowla sequence: Difference between revisions

m
Line 777:
{{Trans|JavaScript}}
<lang haskell>import Data.Set (Set, fromList, insert, member)
 
------------------- MIAN-CHOWLA SEQUENCE -----------------
 
mianChowlas :: Int -> [Int]
mianChowlas n =
reverse $. snd $. (iterate nextMC (fromList [2], [1]) !!) (n. -subtract 1)
 
nextMC :: (Set Int, [Int]) -> (Set Int, [Int])
nextMC (sumSet, mcs@(n:_)) =
let(foldr validinsert x = allsumSet (not(2 .* flipm) member: sumSet .fmap (xm +) mcs), m : mcs)
where
m = until valid succ n
in (foldr insertvalid sumSetx = all ((2not *. m)flip :member fmapsumSet . (mx +) mcs), m : mcs)
m = until valid succ n
 
--------------------------- TEST -------------------------
main :: IO ()
main =
9,655

edits