[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-users] scheme student perplexed by failures ...
From: |
john saylor |
Subject: |
[Chicken-users] scheme student perplexed by failures ... |
Date: |
Sat, 11 Aug 2012 18:51:37 -0400 |
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] scheme student perplexed by failures ...,
john saylor <=