逆順になるアミダくじ
nが11以上になると表示がくずれるYO。あとやたらintersperseしてて見苦しい。
(追記)
これ全然ダメだ...またやっちゃった
(追追記)
修正した
import Data.List amida n = mapM_ print $ tail $ transpose (f ++ [line]) where line = replicate (2 * n - 1) '|' f = concat $ zipWith (\x y -> [x,y]) (repeat line) (g n) g n = let xs = g' 1 in map (align (2 * n - 1) . intersperse ' ') xs where g' m | n == m = [] | otherwise = replicate (n - m) '_':g' (m + 1) align n line = ss ++ line ++ ss where ss = let l = (n - length line) `div` 2 in replicate l ' '
こんなかんじ
*Main> amida 10 "|_| | | | | | | | |" "| |_| | | | | | | |" "|_| |_| | | | | | |" "| |_| |_| | | | | |" "|_| |_| |_| | | | |" "| |_| |_| |_| | | |" "|_| |_| |_| |_| | |" "| |_| |_| |_| |_| |" "|_| |_| |_| |_| |_|" "| |_| |_| |_| |_| |" "|_| |_| |_| |_| | |" "| |_| |_| |_| | | |" "|_| |_| |_| | | | |" "| |_| |_| | | | | |" "|_| |_| | | | | | |" "| |_| | | | | | | |" "|_| | | | | | | | |" "| | | | | | | | | |"