Tematyka:
fib : Z --> Z fib(0) = 1 fib(1) = 1 fib(n) = fib(n-1) + fib(n-2)
W bardzo podobny sposób możemy tę funkcję zapisać w Haskellu:
fib :: Int -> Int fib 0 = 1 fib 1 = 1 fib n = fib (n-1) + fib (n-2)
sign : R --> R sign(x) = 1, dla x > 0 sign(x) = 0, dla x = 0 sign(x) = -1, dla x < 0
Zapisanie jej w Haskellu jest bardzo proste:
sign :: Double -> Double sign x | x > 0 = 1 | x == 0 = 0 | x < 0 = -1
ostatni warunek możemy też zapisać z wykorzystaniem słowa kluczowego `otherwise` (else z Javy):
sign :: Double -> Double sign x | x > 0 = 1 | x == 0 = 0 | otherwise = -1
sum : Z x Z --> Z : sum(m, n) = m + n
W Haskellu możemy ją zrealizować na co najmniej trzy podstawowe sposoby:
sum2c :: Int -> Int -> Int sum2c m n = m + n
map bakteria [0..7] = [(1,1),(1,3),(3,5),(5,11),(11,21),(21,43),(43,85),(85,171)]
usunduplikaty "accabb" = "acb"
usunduplikaty "abc" = "abc"