[CM] Scheme - cm 3.6.0 beta

Adam ahcnz at ihug.co.nz
Wed Apr 21 00:11:21 PDT 2010

Thanks again.  Quasiquotation  which I find in R5RS  section 4.2.6 
and now understand. Beaut. 

Could you help with this example below?  My Scheme is going 
well, but this has me stumped. 

Run first with the 4 comments in place, and then remove 
the 4 comments to see the problem. 

Error is that argument sf1 is symbol but should be pair (list). 
>From the predicates below, it seems sf1 sf2 morph from list 
to symbol inside the process.   

;                               name      channels  duration 
(define sf1 '("\"C:/sampledir/samp1.wav\""  2        10))
(define sf2 '("\"C:/sampledir/samp2.wav\""  1        32))
; -----
(define (type-samps samps)
        (process for smp in samps
;              for sname = (nth smp 0)
;              for sch = (nth smp 1)
;              for sdur = (nth smp 2)
                 (print smp "  list?   " (list? smp))
                 (print smp " symbol?  " (symbol? smp))
;                 (print smp sname sch sdur)
                 (newline) ))

(sprout (type-samps '(sf1 sf2)))

; -----

(nth sf1 0)
(nth sf1 1)
(nth sf1 2)

(print 'sf1 "  list?   " (list? sf1))
(print 'sf1 " symbol?  " (symbol? sf1))

More information about the Cmdist mailing list