First off, why do you use the long version in fibo and the short version in helperFunction? eg.
(define long-version (lambda (arg) arg))
(define (short-version arg) arg)
These are the same. Books often use the long version to point out that functions are values and the names are bindings just as with variables, but its practical to use the short version when you already have started with it.
a begin that wraps the contents of a function is unnecessary since all functions have explicit begin.
An if where you only have a test and a then clause will return a implementation chosen value when the test is false. I tend to use the symbol undefined to not get any surprises on what the undefined value is.
You need to indent your code properly. I use DrRacket and press CTRL+I. With these I get your code like this:
(define (fibo n)
(define (helperFunction n n1 a_n)
(display a_n)
(newline)
(if (> n 1)
(helperFunction (- n 1) (+ n1 a_n) n1)
'undefined))
(helperFunction n 1 1))
So lets try this:
(fibo 1) ; ==> undefined
That makes sense from looking at the code. It's hardly correct but it does what it has been instructed to do. What if it was 2?
(fibo 2) ; ==
(helperFunction 1 2 1) ==> undefined
I think your problem is that instead of undefined you should have n1 as the result.
(define (fibo n)
(define (helperFunction n n1 a_n)
(display a_n)
(newline)
(if (> n 1)
(helperFunction (- n 1) (+ n1 a_n) n1)
n1))
(helperFunction n 1 1))
A note on the function. A standard fibonacci goes like 0,1,1,2,3,5 and the function is usually zero indexed such that:
(fib 0) ; ==> 0
(fib 1) ; ==> 1
(fib 10) ; ==> 55