ピラミッド
30分プログラム、その83。http://ja.doukaku.org/8/。またしても、どう書く?.orgより。
$ pyramido 4
*
***
*****
*******
$ pyramido 5
*
***
*****
*******
*********
$ pyramido 10
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************import System makeString :: Int->Char->String makeString n c = take n $ cycle [c] center :: Int->Char->String->String center width c s= pad ++ s ++ pad where pad = makeString ((width - length s) `div` 2) c pyramido :: Int->[String] pyramido size = map (\n-> center (2*size-1) ' ' $ makeString n '*') $ take size [1,3..] main = do n:_ <- getArgs mapM_ putStrLn $ pyramido (read n)
- ちょっと勉強した直後で、まともに頭がうごきそうにないので、簡単なやつで
- makeStringのようなやつはあってもよさそうなのにな