2017年2月20日月曜日

開発環境

関数プログラミング入門(Richard Bird (著)、山下伸夫 (翻訳)、オーム社)の第3章(数値)、3.4(Haskellの数値)、練習問題3.4.1、3.4.2、3.4.3を取り組んでみる。

練習問題3.4.1、3.4.2、3.4.3

コード(Emacs)

-- 3.4.2
-- x = (div x y) * y + (mod x y)

-- x = (floor (x / y)) * y + (mod x y)

-- x / y - 1 < floor (x / y) <= x / y
-- x <= (floor (x / y)) * y < x - y

-- x + (mod x y) <= (floor (x / y)) * y + (mod x y) < x - y + (mod x y)
-- (mod x y) <= 0 < - y + (mod x y)
-- y < x mod y <= 0

-- 3.4.3 正しい

main :: IO ()
main = do
  -- 3.4.1
  print ((3 `mod` (-4)) == -1)

入出力結果(Terminal, ghci, runghc)

$ runghc sample4.hs
True
$

0 コメント:

コメントを投稿