(define (a-plus-abs-b a b)
((if (> b 0) + -) a b))
(a-plus-abs-b 4 -5) ; returns 9
(+ 4 -5) ; returns -1
(- 4 -5) ; returns 9
(=
(a-plus-abs-b 4 -5)
(+ 4 -5)) ; False
(=
(a-plus-abs-b 4 -5)
(- 4 -5)) ; True
(define (a-plus-abs-b a b)
((if (> b 0) + -) a b))
function a_plus_abs_b(a, b) {
return (b > 0 ? plus : subtract)(a, b);
// can't return +; #sadpanda
function plus(a, b) { return a + b; };
// can't return -; #sadpanda
function subtract(a, b) { return a - b; };
}
add :: Integer -> Integer -> Integer
add (a, b) = a + b;
-- Haskell allows me to call the function two ways
-- prefix notation
add (1,2) -- 3
-- infix notation
1 `add` 2 -- 3