Solution 1: The base case should describe all lists of length one, the shortest possible non-empty lists:
; A non-empty list of numbers (nelo-numbers) is one of ; - (cons f empty) ; where f is a number ; - (cons f r) ; where f is a number, r is a nelo-numbers
Solution 2: Use the definition of lists-of-numbers that we already know.
; A non-empty list of numbers (nelo-numbers) is ; (cons f r) ; where f is a number, r is a list-of-numbers
When you develop programs, you should use the template corresponding to the definition you choose.
(define (f nelon) (cond [(empty? (rest nelon)) ...(first nelon)...] [else ...(first nelon)...(f (rest nelon))...]))
(define (f nelon) ...(first nelon)...(rest nelon)...)where f probably calls another function on (rest nelon) that consumes a list of numbers, not just a non-empty list of numbers.