Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
22
Task/Van-Eck-sequence/Haskell/van-eck-sequence-2.hs
Normal file
22
Task/Van-Eck-sequence/Haskell/van-eck-sequence-2.hs
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{-# LANGUAGE TupleSections #-}
|
||||
|
||||
import Data.List (mapAccumL)
|
||||
import qualified Data.Map.Strict as M hiding (drop)
|
||||
import Data.Maybe (maybe)
|
||||
|
||||
--------------------- VAN ECK SEQUENCE -------------------
|
||||
|
||||
vanEck :: [Int]
|
||||
vanEck = 0 : snd (mapAccumL go (0, M.empty) [1 ..])
|
||||
where
|
||||
go (x, dct) i =
|
||||
((,) =<< (, M.insert x i dct))
|
||||
(maybe 0 (i -) (M.lookup x dct))
|
||||
|
||||
--------------------------- TEST -------------------------
|
||||
main :: IO ()
|
||||
main =
|
||||
mapM_ print $
|
||||
fmap
|
||||
((drop . subtract 10) <*> flip take vanEck)
|
||||
[10, 1000, 10000, 100000, 1000000]
|
||||
Loading…
Add table
Add a link
Reference in a new issue