2016 Update

This commit is contained in:
Tina Müller 2016-12-05 22:15:40 +01:00
parent 948b86eafa
commit dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions

View file

@ -0,0 +1,16 @@
import Data.List (intersperse)
sierpinski :: Int -> String
sierpinski n = let
-- Top down, each row after the first is an XOR rewrite
rule90 n = (scanl next ['*'] [1..n-1]) where
next line _ = zipWith xor (" " ++ line) (line ++ " ")
xor l r | l == r = ' ' | otherwise = '*'
-- Bottom up, each line above the base is indented 1 more space
in fst (foldr spacing ("", "") (rule90 (2^n))) where
spacing x (s, w) =
(concat [w, intersperse ' ' x, "\n", s], w ++ " ")
main = putStr $ sierpinski 4