Skip to content

Instantly share code, notes, and snippets.

@omegatakuma
omegatakuma / add.hs
Created December 14, 2011 11:09
1からnまで足す
add 1 = 1
add n = n + add (n - 1)
@omegatakuma
omegatakuma / hello.hs
Created December 14, 2011 11:10
Hello,Worldを5回ループという簡単な仕事
putStrLn $ unlines $ replicate 5 $ "Hello,World"
putStrLn $ unwords $ replicate 5 $ "Hello,World¥n"
{ -unlinesとunwordsの違いは改行がつくかつかないかです。
  unlinesはつきますが、unwordsはつきません。— }
@omegatakuma
omegatakuma / helloworld.hs
Created December 14, 2011 11:11
普通にHello,World
main :: IO ()
main = putStrLn "Hello,World"
@omegatakuma
omegatakuma / fizzbuzz.hs
Created December 14, 2011 11:12
FizzBuzz
{ - if分はスマートに書けねえ・・。
 そんなスマートじゃなくてすいません。 - }
num x = do
if x `mod` 3 == 0
then "fizz"
else if x `mod` 5 == 0
then "buzz"
else if x `mod` 15 == 0
then "fizzbuzz"
else show x
@omegatakuma
omegatakuma / getint.hs
Created December 17, 2011 11:24
getLineのString -> Intで出力する関数
sum x = (read :: String -> Int) x
getInt = do m <- getLine ; return (sum m)
@omegatakuma
omegatakuma / family.hs
Created December 17, 2011 12:37
家族4人の年齢を入力して平均を出すだけのプログラム
sumTo x = (read :: String -> Int) x
getInt = do m <- getLine ; return (sumTo m)
family list = (sum list) `div` (length list)
main = do
putStrLn "mother " ; m <- getInt
putStrLn "father " ; f <- getInt
putStrLn "brother " ; b <- getInt
putStrLn "me " ; me <- getInt
putStr ("平均年齢は" ++ (show (family [m, f, b, me])) ++ "歳。")
@omegatakuma
omegatakuma / avtokyo.hs
Created December 17, 2011 13:43
AVTOKYOでチケットを買う時はこのプログラムを是非。
avtokyo t = do
putStr "当日8000円(a)/前売り5000円(b)/合計(c)"
s <- getChar
putStr "\n"
case s of
'a' -> avtokyo (t + 8000)
'b' -> avtokyo (t + 5000)
'c' -> return t
_ -> (do putStr "入力 "; avtokyo t)
main = do
@omegatakuma
omegatakuma / koubaisu.hs
Created December 18, 2011 10:13
nからnnまでの3と4の公倍数を求めるだけのプログラム
sumTo x = (read :: String -> Int) x
getInt = do m <- getLine ; return (sumTo m)
act n = do
if (n`mod` 3 == 0) && (n`mod`4 == 0)
then print n
else return ()
cal i i2 keisan = do
keisan i
if i /= i2
then cal (i+1) i2 keisan
@omegatakuma
omegatakuma / pc_con.hs
Created December 18, 2011 12:35
パソコン甲子園2010の過去問といてみた.問題番号[1]
sumTo x = (read :: String -> Int) x
getInt = do m <- getLine ; return (sumTo m)
suido w = do
if w == 10
then show(1150-4200)
else if w <= 20
then show(4280-(1150+(w-10) * 125))
else if w <= 30
then show(4280-(1150+10*125+(w-20)*140))
else show(4280-(1150+10*125+10*140+(w-30)*160))
@omegatakuma
omegatakuma / juq.hs
Created December 19, 2011 03:28
パソコン甲子園2010の過去問をHaskellでといてみた.問題番号[3]
sumTo x = (read :: String -> Int) x
getInt = do m <- getLine;return (sumTo m)
heikin list = (sum list) `div` (length list)
-- 条件の関数
joken list = do
if (!!) list 0 == 100 || (!!) list 1 == 100 || (!!) list 2 == 100
then "A"
else if ((!!) list 0 + (!!) list 1) `div` 2 >= 90
then "A"
else if heikin list >= 80