Hi, I&#39;m studying the last chapter of &quot;Notes from the Metalevel&quot; and I am getting some errors...<br><br>In chapter 20, when I try to evaluate the lines<br><br>&quot;<br>(new heap :of&nbsp; (list (new cycle :of &#39;q :for 3)
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (new palindrome :of &#39;(e. s e))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (new random :of &#39;(h w h.) :for 1)))<br>&quot;<br><br>I get:<br><br><br><br>&quot;<br>There is no class named RANDOM.<br>&nbsp;&nbsp; [Condition of type SIMPLE-ERROR]
<br><br>Restarts:<br>&nbsp; 0: [ABORT-REQUEST] Abort handling SLIME request.<br>&nbsp; 1: [TERMINATE-THREAD] Terminate this thread (#&lt;THREAD &quot;worker&quot; {B96CB41}&gt;)<br><br>Backtrace:<br>&nbsp; 0: (SB-PCL::FIND-CLASS-FROM-CELL RANDOM NIL T)
<br>&nbsp; 1: ((LAMBDA (#:WHOLE593 #:ENVIRONMENT594)) (NEW RANDOM :OF (QUOTE (H W H.)) :FOR 1) #&lt;unavailable argument&gt;)<br>&nbsp; 2: (MACROEXPAND-1 (NEW RANDOM :OF (QUOTE (H W H.)) :FOR 1) #&lt;NULL-LEXENV&gt;)<br>&nbsp; 3: (MACROEXPAND (NEW RANDOM :OF (QUOTE (H W H.)) :FOR 1) #&lt;NULL-LEXENV&gt;)
<br>&nbsp; 4: (SB-INT:SIMPLE-EVAL-IN-LEXENV (NEW RANDOM :OF (QUOTE (H W H.)) :FOR 1) #&lt;NULL-LEXENV&gt;)<br>&nbsp; 5: (SB-INT:SIMPLE-EVAL-IN-LEXENV (LIST (NEW CYCLE :OF (QUOTE Q) :FOR 3) (NEW PALINDROME :OF (QUOTE #)) (NEW RANDOM :OF (QUOTE #) :FOR 1)) #&lt;NULL-LEXENV&gt;)
<br>&nbsp; 6: (SB-INT:SIMPLE-EVAL-IN-LEXENV (NEW HEAP :OF (LIST (NEW CYCLE :OF # :FOR 3) (NEW PALINDROME :OF #) (NEW RANDOM :OF # :FOR 1))) #&lt;NULL-LEXENV&gt;)<br>&nbsp; 7: ((LAMBDA NIL))<br>&nbsp; 8: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-SYNTAX-HOOKS (T)) #&lt;unused argument&gt; #&lt;unused argument&gt; #&lt;CLOSURE (LAMBDA NIL) {B939E65}&gt;)
<br>&nbsp;--more--<br>&quot;<br><br>and in chapter 24, when I try to evaluate the CMN example<br><br>&quot;<br>(define (duet-cmn stf len nts)<br>&nbsp; (let ((nts (new heap :notes nts))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;; choose quarter or two eighths<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (rhy (new random<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :of `(1 ,(new cycle :of &#39;(1/2 1/2))))))<br>&nbsp;&nbsp;&nbsp; (process while (&lt; (now) len)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for n = (next nts)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for r = (next rhy)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; output (new midi :time (now)
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :duration r<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :keynum n<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :channel stf) ; link to cmn staff<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wait r)))&quot;<br><br>I get:<br><br>&quot;<br>; in: LAMBDA NIL<br>
;&nbsp;&nbsp;&nbsp;&nbsp; (CM:NEW RANDOM :OF `(,1 ,(CM:NEW CM:CYCLE :OF &#39;(1/2 1/2))))<br>; <br>; caught ERROR:<br>;&nbsp;&nbsp; (in macroexpansion of (NEW RANDOM :OF ...))<br>;&nbsp;&nbsp; (hint: For more precise location, try *BREAK-ON-SIGNALS*.)<br>;&nbsp;&nbsp; There is no class named RANDOM.
<br><br>;&nbsp;&nbsp;&nbsp;&nbsp; (LET ((CM::NTS (CM:NEW CM:HEAP :NOTES CM::NTS))<br>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (CM::RHY (CM:NEW RANDOM :OF `(,1 ,#))))<br>;&nbsp;&nbsp;&nbsp;&nbsp; (CM:PROCESS CM::WHILE (&lt; (CM:NOW) CM::LEN) CM::FOR CM::N =<br>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (CM:NEXT CM::NTS) CM::FOR CM::R = (CM:NEXT CM::RHY) CM:OUTPUT
<br>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...))<br>; <br>; note: deleting unreachable code<br>; <br>; note: deleting unreachable code<br>; <br>; compilation unit finished<br>;&nbsp;&nbsp; caught 1 ERROR condition<br>;&nbsp;&nbsp; printed 2 notes<br>&quot;<br>&nbsp;it seems to be the same error but as I am a newbie I have no idea about what is wrong...
<br>Tx if anyone can help,<br>José H. Padovani<br>