HASKELL, ćwiczenie 2
1) Zdefiniuj funkcję rekurencyjną
fib
:: Int -> Int
wyznaczającą wyrazy ciągu Fibonacci’ego:
fib
0
= 1
fib
1
= 1
fib
n
= fib
n-1
+fib
n-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ę
n
1
3
1
2
1
1
++++
++++
++++
++++
K
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