(defn fibo-seq
    "returns a sequence containing the fionacci sequence starting from 1"
    ([] (fibo-seq 1 1)) ;default, calls into below function
    ([curr next] (lazy-seq
                    (cons curr (fibo-seq next (+ curr next))))))

(defn print-fibo
  "prints the fibonacci sequence to n"
  [n] {:pre [(>= n 1)]}
  (loop [s (take n (fibo-seq)) count 1]
    (if (not (empty? s))
      (do
        (println (str count ":\t" (first s)))
        (recur (rest s) (inc count))))))