1) Zdefiniuj funkcję rekurencyjną fib :: Int -> Int wyznaczającą wyrazy ciągu Fibonacci’ego: fib0 = 1
fib1 = 1
fibn = fibn-1 +fibn-2 dla n > 1
na wszystkie 4 sposoby i sprawdź, który sposób definiowania jest najkorzystniejszy.
2) Zdefiniuj funkcję rekurencyjną suma_ciagu :: Int -> Float, która dla danej liczby n daje sumę
1
1
1
1 +
+ +
K
+ n
2
3
3) Zdefiniuj funkcję suma_listy:: [Int]->Int, która dla danej listy liczbowej wyznacza sumę jej elementów.
4) Zdefiniuj funkcję usun:: Int ->[Int]->[Int], która z danej listy liczbowej usuwa wszystkie wystąpienia danego elementu na tej liście.
5) Zdefiniuj funkcję dzielnik :: Int -> [Int], która dla danej liczby dodatniej podaje listę jej dzielników, a dla pozostałych liczb typu Int – listę pustą. Skorzystaj ze zwięzłego sposobu definiowania list.
6) Zdefiniuj funkcję fib_n :: Int -> [Int], która dla danej liczby n wyznacza listę n pierwszych elementów ciągu Fibonacci’ego