1. Какво изчисляват функциите с дефиниции:
    • f1 x = f1 x
    • f2 x = f2 x + 1
    • f3 x = f3 (x + 1)
    • f4 x = if x == 0 then 1 else f4 (x-1)
    • f5 x = if x == 0 then 1 else 1 + f5 (x-1)
  2. Напишете функция fact n, която пресмята на n! за n естествено
  3. Напишете функция pow x n, която пресмята xn за n цяло и x произволно
  4. Напишете функция fib n, която пресмята n-тото поред число на Фибоначи.
  5. Пресметнете fib 35. Защо се пресмята толкова бавно?
  6. Напишете функцията fib на C без рекурсия. Преведете функцията fib на Haskell, като използвате следния шаблон:
    fib n = fib_help <начална_стойност_на_i> <начална_стойност_на_n> <начална_стойност_на_f_curr> <начална_стойност_на_f_prev>
    fib_help i n f_curr f_prev
    | <условие_на_цикъла> = fib_help <нова_стойност_на_i> <нова_стойност_на_n> <нова_стойност_на_f_curr> <нова_стойност_на_f_prev>
    | otherwise = <краен_резултат>
Последно модифициране: събота, 12 ноември 2011, 17:38