Vincent,<br><br>I updated the science collection in PLaneT to V2.9 to fix the problem with histograms.&nbsp; I will do a more thorough search of the code to see if I have the same construct elsewhere.&nbsp; Thanks for finding the problem and I apologize for the inconvenience.&nbsp; I&#39;ve also updated the subversion repository on Schematics with the changes.<br>
<br>Let me know if you still have a problem.<br><br>Doug<br><br><div class="gmail_quote">On Mon, Jan 28, 2008 at 4:00 PM, Doug Williams &lt;<a href="mailto:m.douglas.williams@gmail.com">m.douglas.williams@gmail.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Actually, it does bring up an interesting question.&nbsp; My contract for histogram-increments says it returns void?.&nbsp; The above code worked at some point in the past.&nbsp; And, adding (void) as the return value for the outer let makes it work again.&nbsp; I assume that takes the (exit) call that is bombing out of the tail position, which was somehow causing the problem. Is that a correct guess?<br>

<br>If so, does this mean I can&#39;t terminate the loop (returning nothing) with a continuation call?<br><br>Just trying to understand the actual problem I have.&nbsp; I will add the explicit (void) call to fix it.<br><font color="#888888"><br>
Doug</font><div><div></div><div class="Wj3C7c"><br>
<br><div class="gmail_quote">On Mon, Jan 28, 2008 at 3:34 PM, Doug Williams &lt;<a href="mailto:m.douglas.williams@gmail.com" target="_blank">m.douglas.williams@gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

It looks like sloppy code on my part.&nbsp; I assume it worked in some previous version, but I will change the exit call to take an argument.&nbsp; I assume something downstream wants a value now.&nbsp; I&#39;ll release a new version this evening.<br>

<font color="#888888">
<br>Doug</font><div><div></div><div><br><br><div class="gmail_quote">On Mon, Jan 28, 2008 at 3:20 PM, Vincent Rayappa &lt;<a href="mailto:vrayappa@gmail.com" target="_blank">vrayappa@gmail.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I would like to use the histogram module of the science collection to<br>
generate histograms with custom ranges.<br>
<br>
I tried:<br>
<br>
(define h1 (make-histogram 4))<br>
(set-histogram-ranges! h &#39;#(0.0 1.0 2.0 4.0 16.0))<br>
<br>
So far so good, but when I try to add a value like this:<br>
<br>
(histogram-increment! h 5)<br>
<br>
I get this error:<br>
<br>
context expected 1 value, received 0 values<br>
.../histogram.ss:219:10: (call/ec (lambda (exit) (if (&lt; x (....))<br>
(exit)) ((letrec-values ((....)) doloop) 0)))<br>
[unknown source]: (void?31 (val (histogram?29 histogram?27) (real?30 real?28)))<br>
<br>
Any idea what is going on?<br>
<br>
The function is defined like this:<br>
<br>
 &nbsp;;; Increment the bin corresponding to the x value by one.<br>
<br>
 &nbsp;(define (histogram-increment! h x)<br>
 &nbsp; &nbsp;(let ((n (histogram-n h))<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(ranges (histogram-ranges h))<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(bins (histogram-bins h))<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(uniform-ranges? (histogram-ranges-uniform? h)))<br>
 &nbsp; &nbsp; &nbsp;(if uniform-ranges?<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;;; Compute bin<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(let ((i (inexact-&gt;exact<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(floor (/ (- x (vector-ref ranges 0))<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(/ (- (vector-ref ranges n)<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(vector-ref ranges 0))<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; n))))))<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(if (&lt;= 0 i (- n 1))<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(vector-set! bins i<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (+ (vector-ref bins i) 1))))<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;;; Search for bin<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(let/ec exit ;; &lt;---------- line #219<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(if (&lt; x (vector-ref ranges 0))<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(exit))<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(do ((i 0 (+ i 1)))<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;((= i n) (void))<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(if (&lt; x (vector-ref ranges (+ i 1)))<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(begin<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(vector-set! bins i<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (+ (vector-ref bins i) 1))<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(exit))))))))<br>
<br>
<br>
Many Thanks,<br>
Vincent.<br>
_________________________________________________<br>
 &nbsp;For list-related administrative tasks:<br>
 &nbsp;<a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme" target="_blank">http://list.cs.brown.edu/mailman/listinfo/plt-scheme</a><br>
</blockquote></div><br>
</div></div></blockquote></div><br>
</div></div></blockquote></div><br>