-- fibonacci.hs: conjuring a fibonacci function
--
-- Copyright (C) 2021-2025 Rudy Matela
-- Distributed under the 3-Clause BSD licence (see the file LICENSE).
import Conjure
fibonacci :: Int -> Int
fibonacci 0 = 1
fibonacci 1 = 1
fibonacci 2 = 2
fibonacci 3 = 3
fibonacci 4 = 5
fibonacci 5 = 8
fibonacci 6 = 13
main :: IO ()
main = do
conjure "fibonacci n" fibonacci
[ con (0::Int)
, con (1::Int)
, con (2::Int)
, fun "+" ((+) :: Int -> Int -> Int)
, fun "-" ((-) :: Int -> Int -> Int)
]
-- expected function:
-- fibonacci 0 = 1
-- fibonacci 1 = 1
-- fibonacci x = fibonacci (x - 1) + fibonacci (x - 2)