annotate Haskell/baby.hs @ 25:8c7e1b34582f

add baby.hs
author Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
date Wed, 26 Mar 2014 18:13:52 +0900
parents
children 0f4ccdbaf57f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 --http://www.haskell.org/hoogle
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 {-
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 -}
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 doubleMe x = x + x
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 doubleUs x y = x * 2 + y * 2
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 doubleSmallNumber x = if x > 100
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 then "x"
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 else "y"
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 masa'koha' x = x
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 lucky :: Int -> String
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 lucky 7 = "LUCKY NUMBER SEVEN"
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 lucky x = "Sorry, you're out of luck, pal!"
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 factorial :: Int -> Int
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 factorial 0 = 1
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 factorial n = n * factorial (n - 1)
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 charName :: Char -> String
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 charName 'a' = "Albert"
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 charName 'b' = "Broseph"
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 charName n = "no match"
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 addVectors :: (Double, Double) -> (Double, Double) -> (Double, Double)
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 addVectors a b = (fst a + fst b, snd a + snd b)
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 head' :: [a] -> a
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 head' [] = error "Can't call head on an empty list,dummy!"
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 head' (x:_) = x
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 firstLetter :: String -> String
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 firstLetter "" = "Empty string"
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 firstLetter all@(x:xs) = "The first letter of " ++ all ++ " is " ++ [x]
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 bmiTell :: Double -> Double -> String
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 bmiTell weight height
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 | bmi <= 18.5 = "You're underweight, you emo, you!"
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 | bmi <= 25.0 = "You're supposedly normal.\\ Pffft, I bet you're ugly!"
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 | bmi <= 30.0 = "You're a fat,"
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 | otherwise = "You're a whale, congratulations!"
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 where bmi = weight / height ^ 2
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 describeList :: [a] -> String
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 describeList ls = "The list is "
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 ++ case ls of [] -> "empty."
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 [x] -> "a singleton list."
8c7e1b34582f add baby.hs
Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 xs -> "a longer list."