Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,7 @@
|
|||
sierpinski 0 = ["*"]
|
||||
sierpinski n = map ((space ++) . (++ space)) down ++
|
||||
map (unwords . replicate 2) down
|
||||
where down = sierpinski (n - 1)
|
||||
space = replicate (2 ^ (n - 1)) ' '
|
||||
|
||||
main = mapM_ putStrLn $ sierpinski 4
|
||||
14
Task/Sierpinski-triangle/Haskell/sierpinski-triangle-2.hs
Normal file
14
Task/Sierpinski-triangle/Haskell/sierpinski-triangle-2.hs
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
import Data.List (intercalate)
|
||||
|
||||
sierpinski :: Int -> [String]
|
||||
sierpinski 0 = ["▲"]
|
||||
sierpinski n =
|
||||
[ flip
|
||||
intercalate
|
||||
([replicate (2 ^ (n - 1))] <*> " -"),
|
||||
(<>) <*> ('+' :)
|
||||
]
|
||||
>>= (<$> sierpinski (n - 1))
|
||||
|
||||
main :: IO ()
|
||||
main = mapM_ putStrLn $ sierpinski 4
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
import Data.Bits ((.&.))
|
||||
|
||||
sierpinski n = map row [m, m-1 .. 0] where
|
||||
m = 2^n - 1
|
||||
row y = replicate y ' ' ++ concatMap cell [0..m - y] where
|
||||
cell x | y .&. x == 0 = " *"
|
||||
| otherwise = " "
|
||||
|
||||
main = mapM_ putStrLn $ sierpinski 4
|
||||
25
Task/Sierpinski-triangle/Haskell/sierpinski-triangle-4.hs
Normal file
25
Task/Sierpinski-triangle/Haskell/sierpinski-triangle-4.hs
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
import Data.List (intersperse)
|
||||
|
||||
-- Top down, each row after the first is an XOR / Rule90 rewrite.
|
||||
-- Bottom up, each line above the base is indented 1 more space.
|
||||
sierpinski :: Int -> String
|
||||
sierpinski = fst . foldr spacing ([], []) . rule90 . (2 ^)
|
||||
where
|
||||
rule90 = scanl next "*" . enumFromTo 1 . subtract 1
|
||||
where
|
||||
next =
|
||||
const
|
||||
. ( (zipWith xor . (' ' :))
|
||||
<*> (<> " ")
|
||||
)
|
||||
xor l r
|
||||
| l == r = ' '
|
||||
| otherwise = '*'
|
||||
spacing x (s, w) =
|
||||
( concat
|
||||
[w, intersperse ' ' x, "\n", s],
|
||||
w <> " "
|
||||
)
|
||||
|
||||
main :: IO ()
|
||||
main = putStr $ sierpinski 4
|
||||
17
Task/Sierpinski-triangle/Haskell/sierpinski-triangle-5.hs
Normal file
17
Task/Sierpinski-triangle/Haskell/sierpinski-triangle-5.hs
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
sierpinski :: Int -> [String]
|
||||
sierpinski n =
|
||||
foldr
|
||||
( \i xs ->
|
||||
let s = replicate (2 ^ i) ' '
|
||||
in fmap ((s <>) . (<> s)) xs
|
||||
<> fmap
|
||||
( (<>)
|
||||
<*> (' ' :)
|
||||
)
|
||||
xs
|
||||
)
|
||||
["*"]
|
||||
[n - 1, n - 2 .. 0]
|
||||
|
||||
main :: IO ()
|
||||
main = (putStrLn . unlines . sierpinski) 4
|
||||
Loading…
Add table
Add a link
Reference in a new issue