Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,36 @@
|
|||
import Data.Maybe (fromMaybe, maybe)
|
||||
|
||||
------------------- MULTIPLICATION TABLE -----------------
|
||||
|
||||
mulTable :: [Int] -> [[Maybe Int]]
|
||||
mulTable xs =
|
||||
(Nothing : labels) :
|
||||
zipWith
|
||||
(:)
|
||||
labels
|
||||
[[upperMul x y | y <- xs] | x <- xs]
|
||||
where
|
||||
labels = Just <$> xs
|
||||
upperMul x y
|
||||
| x > y = Nothing
|
||||
| otherwise = Just (x * y)
|
||||
|
||||
|
||||
--------------------------- TEST -------------------------
|
||||
main :: IO ()
|
||||
main =
|
||||
putStrLn . unlines $
|
||||
showTable . mulTable
|
||||
<$> [ [13 .. 20],
|
||||
[1 .. 12],
|
||||
[95 .. 100]
|
||||
]
|
||||
|
||||
------------------------ FORMATTING ----------------------
|
||||
showTable :: [[Maybe Int]] -> String
|
||||
showTable xs = unlines $ head rows : [] : tail rows
|
||||
where
|
||||
w = succ $ (length . show) (fromMaybe 0 $ (last . last) xs)
|
||||
gap = replicate w ' '
|
||||
rows = (maybe gap (rjust w ' ' . show) =<<) <$> xs
|
||||
rjust n c = (drop . length) <*> (replicate n c <>)
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
import Data.List (groupBy)
|
||||
import Data.Function (on)
|
||||
import Control.Monad (join)
|
||||
|
||||
main :: IO ()
|
||||
main =
|
||||
mapM_ print $
|
||||
fmap (uncurry (*)) <$>
|
||||
groupBy
|
||||
(on (==) fst)
|
||||
(filter (uncurry (>=)) $ join ((<*>) . fmap (,)) [1 .. 12])
|
||||
Loading…
Add table
Add a link
Reference in a new issue