ピラミッド
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のようなやつはあってもよさそうなのにな