[bitc-dev] Polyinstantiating local definitions -- take 1

Jonathan S. Shapiro shap at eros-os.com
Sat Jan 27 10:15:27 CST 2007


What it means is that Swaroop has a serious problem with parenthesis
matching. The example should read:

(define top
  (let ((id (lambda (x) x)))
    (id ())
    (id #t))
  ())

shap

P.S.: Whew! Finally a BitC question where I know the answer!

On Sat, 2007-01-27 at 17:03 +0100, Pierre THIERRY wrote:
> Scribit Swaroop Sridhar dies 28/07/2006 hora 01:53:
> > (define top
> >    (let ((id (lambda (x) x))
> >         (id ())
> >         (id #t))
> >    ())
> 
> As I was trying to be sure I got polyinstantiation right in my mind, I
> got stuck with this example. I can't get to understand what it's
> supposed to mean.
> 
> Specifically, it seems in contradiction with section 5.3.1 of the BitC
> specification:
> 
>   "Each identifier bound in a let form must appear exactly once among
>   the collection of binding patterns being bound."
> 
> But here, IIUC, we have three identical binding patterns, namely the
> "id" symbol.
> 
> Strangely,
> Pierre
> _______________________________________________
> bitc-dev mailing list
> bitc-dev at coyotos.org
> http://www.coyotos.org/mailman/listinfo/bitc-dev
-- 
Jonathan S. Shapiro, Ph.D.
Managing Director
The EROS Group, LLC
+1 443 927 1719 x5100



More information about the bitc-dev mailing list