pair ok but cdr fails? added by Demo on Sat May 20 04:32:20 2017
(letrec ((recurse (lambda () (let ((item (assoc item-id (func tp)))) (cond ((and (pair? item) (number? (car item)) (null? (cdr item))) ;; there is a record, and it has an empty list (exhausted) #f) ((and (pair? item) (number? (car item)) (pair? (cdr item))) ;; there is a record, and it has list of entries, return those entries (car (cdr item))) (else ;; there is no record, download it and return (begin (tp-download-listing tp item-id) (recurse)) )))))) (recurse))) Error: (*) bad argument type: #f Call history: <eval> [recurse19138] (func tp) <eval> (trading-post-buy-listings x) <eval> [trading-post-buy-listings] (##sys#check-structure x (##core#quote trading-post)) <eval> [trading-post-buy-listings] (##sys#block-ref x 1) <eval> [recurse19138] (pair? item) <eval> [recurse19138] (number? (car item)) <eval> [recurse19138] (car item) <eval> [recurse19138] (null? (cdr item)) <eval> [recurse19138] (cdr item) <eval> [recurse19138] (pair? item) <eval> [recurse19138] (number? (car item)) <eval> [recurse19138] (car item) <eval> [recurse19138] (pair? (cdr item)) <eval> [recurse19138] (cdr item) <eval> [recurse19138] (car (cdr item)) <eval> [recurse19138] (cdr item) <--