hi been working through 'yet another scheme tutorial' [http://www.shido.info/lisp/idx_scm_e.html], and have come up against something i cannot figure out.
here is the "answer:" (define (my-reverse ls) ;(my-reverse-rec ls ())) (my-reverse-rec ls '())) (define (my-reverse-rec ls0 ls1) (if (null? ls0) ls1 (my-reverse-rec (cdr ls0) (cons (car ls0) ls1)))) works great- reverses the list. and here is my propsed solution: define js-reverse (lambda (ls) ((reverse-rec ls '())))) (define js-reverse-rec (lambda (asc dsc) ((if (null? asc) dsc ;(js-reverse-rec (cdr asc) (list dsc (car asc))))))) (js-reverse-rec (cdr asc) (cons (car asc) dsc)))))) pretty much identical [i left in my initial (incorrect) use of 'list'] but my code errors out! #;38> (js-reverse '(1 2)) Error: call of non-procedure: (dsc) Call history: <syntax> (quote (1 2)) <syntax> (##core#quote (1 2)) <eval> (js-reverse (quote (1 2))) <eval> [js-reverse] ((reverse-rec ls (quote ()))) <eval> [js-reverse] (reverse-rec ls (quote ())) <eval> [reverse-rec] (null? asc) <eval> [reverse-rec] (reverse-rec (cdr asc) (cons (car asc) dsc)) <eval> [reverse-rec] (cdr asc) <eval> [reverse-rec] (cons (car asc) dsc) <eval> [reverse-rec] (car asc) <eval> [reverse-rec] (null? asc) <eval> [reverse-rec] (reverse-rec (cdr asc) (cons (car asc) dsc)) <eval> [reverse-rec] (cdr asc) <eval> [reverse-rec] (cons (car asc) dsc) <eval> [reverse-rec] (car asc) <eval> [reverse-rec] (null? asc) <-- i have tried putting the dsc in parens, calling 'quote' all to no avail. i hope it's something idiotic that i am just missing. any help is welcome. -- \js [http://or8.net/~johns/] : "complete obscure contrariness" _______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users