ピラミッドを作る
http://ja.doukaku.org/8/より。
Haskellの場合。
module Main (main) where pyramid :: Int -> [String] pyramid n = [(replicate (n - i) ' ' ++ replicate (i * 2 - 1) '*') | i <- [1 .. n]] main :: IO () main = putStr $ unlines $ pyramid 4 -- => * -- *** -- ***** -- *******
def pyramid(n) (1 .. n).to_a.map do |i| ' ' * (n - i) + '*' * (i * 2 - 1) end end print pyramid(4).join("\n") # => * # *** # ***** # *******
ちなみにRubyでもCohiを使うとこう書けます。いや、だから何だという気もしますが。
require 'cohi' require 'cohi/prelude' include Cohi define(:pyramid) do |n| map[lambda {|i| ' ' * (n - i) + '*' * (i * 2 - 1) }, (1 .. n).to_a] end put_str ** unlines ** pyramid[4] # => * # *** # ***** # *******