Ok,<br><br>I think I have most of the checking done. It works quite well and it's now a lot harder to make Fluxa spew out multiple errors per second that scroll by too quickly to easily read while the sound stops. I'll commit tomorrow after looking it all over once more. One thing that still bothers me is this;<br>
<br>(define (seq p)<br>    (cond<br>        ((not (procedure? p)) (raise-type-error 'seq "procedure" p))<br>        ((not (eq? (procedure-arity p) 2)) (error "seq function should take 2 arguments but takes" (procedure-arity p)))<br>
          (else (set! proc p))))<br><br>That's what my take on (seq ) now looks like. I'd really like the arity error to be more clear, for one thing I had no idea what to call the function we have here. I'd also like to be able to get the names of the arguments to the (likely) anonymous function p, but Racket seems to have no way to do that. So, if the user types this;<br>
<br>(seq (lambda (time clock banana) .2))<br><br>I want the error to say;<br><br>"error; seq function should take 2 arguments but takes 3; time clock banana"<br><br>I might be looking at this the wrong way, but it seems to me that Racket isn't prepared for checking some properties of p from the scope of (seq ), even though sending a certain p into (seq ) might be a syntax error. That seems a bit odd, as the features for checking and reporting errors more or less similar to this are quite extensive.<br>
<br>Yours,<br>Kas.<br>