Когда вы используете fibonacci
, вы пишете:
> fibonacci 8
(error)
Но, fibonacci :: [Integer]
- fibonacci
не является функцией , и вы не можете вызватьЭто!fibonacci
- это бесконечный список, , поэтому вы должны использовать операции на основе списка для получения конкретных чисел.
Оператор индексации списка - (!!) :: [a] -> Integer -> a
, поэтому используйте:
> fibonacci !! 8
21
Вы также можете использовать take :: Integer -> [a] -> [a]
для получения первых n чисел:
> take 8 fibonacci
[0,1,1,2,3,5,8,13]
Однако вы можете сделать это:
> fib 8
21
Потому что fib :: Integer -> Integer
- это функция.