I will give you some pointers, not a complete solution:
First of all, I see two different ways to do this: recursion or higher order functions + recursion. For this case, I think direct recursion is easier to peek at.
So, we need a function that takes a list and does something like this, therefore
(define count-odd (lambda (ls) SOMETHING))
So this is recursive, so we want to split the list
(define count-odd (lambda (ls) (let ((head (car ls)) (rest (cdr ls))) SOMETHING)))
Now this has a problem, it is an error for an empty list (e.g. (count-odd '()) ), but I will let you know how to fix it. Hint, check the expression of the schema schema, this makes it easy to check and process an empty list
Now something is our recursion, so for something like:
(+ (if (is-odd head) 1 0) (Figure out how many odds are in rest))
This should give you something to start with. If you have any specific questions later, feel free to post more questions.
source share