Reputation: 778
I have this scheme function that I'm supposed to run lists of integers on but I have no idea what the error means. The error states: "if: expected a question and two answers, but found 4 parts in: (if(null? list) '() (cons (+ 1 (car list)) (f(cdr list)))). What is missing from this function and what on earth does '() do? Thanks! I've never used Scheme before.
(define (f list)
(if (null? list)
’()
(cons (+ 1 (car list)) (f (cdr list)))))
Upvotes: 1
Views: 115
Reputation: 69934
The character you are using to quote the empty list is the right quotation mark ’
, U+2019. Your code works fine if you use the ascii apostrophe '
, U+0027
(define (f list)
(if (null? list)
'()
(cons (+ 1 (car list)) (f (cdr list)))))
Upvotes: 3
Reputation: 31147
You used the wrong quote (maybe a copy paste error?).
Use '
not ’
.
Upvotes: 3