(不知道也沒關係!)
1 :: Int
True :: Bool
False :: Bool
(7, True) :: (Int, Bool)
-- f(x)=x+1
f :: Int -> Int
f x = x + 1
plus1 :: Int -> Int -> Int
plus1 x y = x + y
plus2 :: (Int, Int) -> Int
plus2 (x, y) = x + y
plus3 :: Int -> Int -> Int
plus3 0 y = y
plus3 x y = 1 + (plus3 (x - 1) y)
plus4 :: Int -> Int -> Int
plus4 0 y = y
plus4 x y =
let temp = plus4 (x - 1) y
in 1 + temp
(假設 Int ≡ℕ)
func1 :: Int -> (Int, Bool)
func1 0 = (0, True)
func1 n = let (m, isEven) = func1 (n-1) in
if isEven
then (m , False)
else (m + 1, True)
符號 | 意義 | |
---|---|---|
p ∧ q | p 和 q | |
p ∨ q | p 或 p | |
p → q | 若 p 則 q | |
¬ p | 非 p |
p = 我今天跳祈雨舞; q = 明天會下雨
假設: p 裡面有用到 x
符號 | 意義 | |
---|---|---|
∀ x . px | 對所有 x, px 都成立 | |
∃ x . px | 存在有 x, px 都成立 |
S 表示 所有奇異果的集合 ; px 表示 x 是係金ㄟ
ℕ 是所有自然數的集合(包含零)
∀ n ∈ℕ . ∃ m ∈ℕ such that
n = 2 × m ∨ n = 2 × m + 1
某個「邏輯句子」是否為 真 ?
p | q | p → q | ¬ p ∨ q |
---|---|---|---|
T |
T |
T |
T |
T |
F |
F |
F |
F |
T |
T |
T |
F |
F |
T |
T |
某個「邏輯句子」為真
如果「句子」中每個部分都為真
我們對事物觀察的焦點從
轉變為
∀ n ∈ℕ . ∃ m ∈ℕ such that
n = 2 × m ∨ n = 2 × m + 1
func1 :: Int -> (Int, Bool)
func1 0 = (0, True)
func1 n = let (m, isEven) = func1 (n-1) in
if isEven
then (m , False)
else (m + 1, True)