<div dir="ltr">Thanks to all for your answers!<div>With "return $!" the program now works "as expected".</div><div>Forcing Int, and moving the "let b" in the "else" part, also brings some (but comparatively far less) improvement.</div><div>Note that, as indicated in my initial post, this program is a *modified* version of "Man or boy", and therefore it does not return the same values.</div><div>Best,</div><div>Antoine</div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-01-26 14:32 GMT+01:00 Frank Staals <span dir="ltr"><<a href="mailto:frank@fstaals.net" target="_blank">frank@fstaals.net</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Antoine Rimlet <<a href="mailto:antoine.rimlet@gmail.com">antoine.rimlet@gmail.com</a>> writes:<br>
<br>
> Hi list,<br>
><br>
> I try to get the following little program (a slightly modified "Man or<br>
> boy", it prints -14254067) work "as expected", that is, without consuming<br>
> lots of memory<br>
<br>
</span>Are you sure "-14254067" is correct for k=22? Wikipedia [1] and<br>
RosettaCode [2] both seem to suggest that -865 609 is the right<br>
answer. Similarly, for k=10 it is supposed to return -67 rather than -577.<br>
<br>
[1] <a href="https://en.wikipedia.org/wiki/Man_or_boy_test" rel="noreferrer" target="_blank">https://en.wikipedia.org/wiki/<wbr>Man_or_boy_test</a><br>
[2] <a href="http://rosettacode.org/wiki/Man_or_boy_test" rel="noreferrer" target="_blank">http://rosettacode.org/wiki/<wbr>Man_or_boy_test</a><br>
<br>
--<br>
<br>
- Frank<br>
</blockquote></div><br></div>