If you want ?, !, -, etc. to be allowed in keywords, you need to make them letters, using the listings key called alsoletter, like so
alsoletter=!?-,
I've shamelessly taken the listings language definition for Scheme that is available at the end of the link posted in Papiro's answer, added your keywords to it, and made ?, !, - letters. See below.

\documentclass{article}
\usepackage[T1]{fontenc}
\renewcommand{\ttdefault}{pcr}
\usepackage{xcolor}
\usepackage{textcomp}
\usepackage{listings}
\usepackage{filecontents}
\begin{filecontents*}{ycombinator.ss}
(eqv? 'a 'a) ==> #t
(eqv? 'a 'b) ==> #f
(eqv? 2 2) ==> #t
(eqv? '() '()) ==> #t
(eqv? 100000000 100000000) ==> #t
(eqv? (cons 1 2) (cons 1 2)) ==> #f
(eqv? (lambda () 1)
(lambda () 2)) ==> #f
(eqv? #f 'nil) ==> #f
(let ((p (lambda (x) x)))
(eqv? p p)) ==> #t
\end{filecontents*}
\lstdefinelanguage{Scheme}{
morekeywords=[1]{define, define-syntax, define-macro, lambda,
define-stream, stream-lambda},
morekeywords=[2]{begin, call-with-current-continuation, call/cc,
call-with-input-file, call-with-output-file, case, cond,
do, else, for-each, if,
let*, let, let-syntax, letrec, letrec-syntax,
let-values, let*-values,
and, or, not, delay, force,
quasiquote, quote, unquote, unquote-splicing,
map, fold, syntax, syntax-rules, eval, environment, query,
display, newline,list, apply, null?, car, cdr, for-each,
make-vector, vector-length, vector-ref, vector-set!, eqv?, eq?, equal?, set!,
define-record-type, fields, mutable, immutable, assert, parent, with-exception-handler,
},
morekeywords=[3]{import, export},
alsoletter=?!-,
alsodigit=\$\%&*+./:<=>@^_~,
sensitive=false,
morecomment=[l]{;},
morecomment=[s]{/*}{*/},
morestring=[b]",
basicstyle=\small\ttfamily,
keywordstyle=\bf\ttfamily\color[rgb]{0,.3,.7},
commentstyle=\color[rgb]{0.133,0.545,0.133},
stringstyle={\color[rgb]{0.75,0.49,0.07}},
upquote=true,
breaklines=true,
breakatwhitespace=true,
literate=*{`}{{`}}{1}
}
\begin{document}
\section{Scheme}
\lstinputlisting[language=Scheme]{ycombinator.ss}
\end{document}
morekeywordslist. Any idea? – user12818 Apr 25 '12 at 15:50positive\?? – gmfawcett Apr 16 '13 at 17:14