<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, Oct 20, 2013 at 5:42 PM, Joe Python <span dir="ltr"><<a href="mailto:jopython@gmail.com" target="_blank">jopython@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>I am not sure whether this is a the right list to post this question. Else please let me know.<br>

<br></div>I run this in Dr. racket.<br><div><br>#lang racket<br>(define lower 1)<br>(define upper 100)<br>
<br>(define (guess)<br>  (quotient (+ lower upper) 2))<br><br>(define (smaller)<br>  (set! upper (max lower (guess (sub1 guess))))<br></div></div></blockquote><div><br></div><div>The problem is here: `(sub1 guess)'.<br>

</div><div>`guess' is a function, and here you are trying to subtract 1 from a *function*, i.e., you are trying to subtract 1 from something that is not a number, whereas you probably want to subtract 1 from the *result* of applying the function `guess' to no arguments, which itself should be a number.<br>

<br></div><div>If you need more explanation:<br></div><div>Think of a function like `guess' as a machine that produces a bag of gums each time you press the green button on it (= applying it to arguments, i.e., writing `(guess)' ).<br>

</div>What you wrote is that you want to remove one gum from the *machine*, whereas what you want is to press the green button to produce a bag of gums, and remove one gum from this bag.<br><div><br></div><div>You have another problem here: `(guess (sub1 guess))'<br>

</div><div>How many arguments can your function `guess' take as input? (see its definition)<br></div><div>How many arguments are you trying to apply it to?<br></div><div><br></div><div>HTH,<br>Laurent<br></div></div>
<br>
</div></div>