【激突】関数型言語 VS オブジェクト指向言語2at TECH
【激突】関数型言語 VS オブジェクト指向言語2 - 暇つぶし2ch340:339
12/04/14 05:12:10.70
まあいいや、関数合成のオーバーロードは無しで
>>312の言う通りHasAも隠蔽すれば良いんだな?

data HasA = HasA String Integer deriving Eq

instance Show HasA where
  show (HasA s n) = if s == "" then show n else s

instance Num HasA where
  (+) (HasA r m) (HasA s n) = HasA (r ++ s) (m + n)
  (-) (HasA r m) (HasA s n) = HasA "" (m - n)
  (*) (HasA r m) (HasA s n) = HasA "" (m * n)
  negate (HasA s n) = HasA s (-n)
  abs (HasA s n) = HasA s (abs n)
  fromInteger n = HasA "" n
  signum (HasA s n) = HasA s (signum n)

fizz (HasA s n) = HasA (s ++ if mod n 3 == 0 then "Fizz" else "") n
buzz (HasA s n) = HasA (s ++ if mod n 5 == 0 then "Buzz" else "") n
gizz (HasA s n) = HasA (s ++ if mod n 7 == 0 then "Gizz" else "") n

main = print $ map (gizz . buzz . fizz) [1,3,5,7,15,21,35,105]


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch