<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">2013/11/4 Marc Feeley <span dir="ltr"><<a href="mailto:feeley@iro.umontreal.ca" target="_blank">feeley@iro.umontreal.ca</a>></span><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


<div><br>
On Nov 3, 2013, at 10:01 PM, Mikael <<a href="mailto:mikael.rcv@gmail.com" target="_blank">mikael.rcv@gmail.com</a>> wrote:<br>
<br>
> Dear Marc,<br>
><br>
> The procedure ordinarily reached as + , can it be reached under some alternative name in code with (declare (fixnum)) ?<br>
<br>
</div>Here's how I would do it:<br>
<br>
(declare (standard-bindings) (fixnum) (not safe))<br>
<br>
(define (double1 x)<br>
  (+  ;; uses fixnum specific + (i.e. ##fx+)<br>
   x<br>
   x))<br>
<br>
(define (double2 x)<br>
  ((let () (declare (generic)) +)  ;; uses generic +<br>
   x<br>
   x))<br>
<br>
You could also call the procedure ##+, but it is not an exact replacement for + because the error handling is different (try (##+ 1 'foo)) and it must be passed 2 parameters.<br>
<span><font color="#888888"><br>
Marc<br>
<br></font></span></blockquote><div><br></div><div>Weird, I tried for this x.scm :</div><div><br></div></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_quote">


<div><div><font face="courier new, monospace">(declare </font><span style="font-family:'courier new',monospace">(standard-bindings) </span><span style="font-family:'courier new',monospace">(fixnum)</span><span style="font-family:'courier new',monospace">)</span></div>

</div><div><font face="courier new, monospace">(define x 97650736685728012900)</font><br></div></div></div></blockquote><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px">
<div class="gmail_extra"><div class="gmail_quote"><div><font face="courier new, monospace">(</font><span style="font-family:'courier new',monospace">(let () (declare (generic)) +)</span></div><div><font face="courier new, monospace"> x</font></div>

<div><font face="courier new, monospace"> 1)</font></div></div></div></blockquote><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div><br></div><div>and it still goes:</div><div>
<br></div></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_quote"><div><font face="courier new, monospace">$ gsc</font></div><div><font face="courier new, monospace">Gambit v4.7.0</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">> (load "x.scm")</font></div><div><font face="courier new, monospace">"x.scm"</font></div><div><font face="courier new, monospace">> ,q</font></div>

<div><font face="courier new, monospace">$ gsc</font></div><div><font face="courier new, monospace">Gambit v4.7.0</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">> (compile-file "x.scm")</font></div>

<div><font face="courier new, monospace">"x.o1"</font></div><div><font face="courier new, monospace">> (load "x.o1")</font></div><div><font face="courier new, monospace">*** ERROR IN ##load -- (Argument 1) FIXNUM expected</font></div>

<div><font face="courier new, monospace">(fx+ </font><span style="font-family:'courier new',monospace">97650736685728012900 </span><font face="courier new, monospace">1)</font></div><div><font face="courier new, monospace">1></font></div>

<div><br></div></div></div></blockquote><div class="gmail_extra"><div class="gmail_quote"><div>I get the same result when compiling the double2 example in your email above.</div><div><br></div><div>I tried adding another let around the +, did not resolve it.</div>

<div><br></div><div>How fix?</div><div><br></div><div>Thanks,</div><div>Mikael</div></div></div></div>