-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Michele Simionato wrote: > On Sat, Apr 25, 2009 at 10:56 AM, Abdulaziz Ghuloum <[email protected]> > wrote: >> The reason why I'm making this distinction is because the conclusion of the >> article says (among other things) that "In such [interpreter] semantics >> everything happens at runtime, and there is no phase separation at all". >> �While the statement is true, none of the systems discussed in the article >> uses interpreter semantics where everything happens at run time and there is >> no phase separation at all. > > It seems I should take guile as an example of interpreter semantics: > > guile> > (let () > (define var 12) > (define-macro (syn) var) > (syn)) > 12 > > (not sure if Guile has define-syntax, I have never used it).
$ cat phased.scm #!/usr/bin/guile !# (use-modules (ice-9 syncase)) ;(let () (define var 12) (define-syntax syn (lambda (hukarez) var)) (syn) ;) remove the two comments to enable the enclosing let to see the two different behaviors: $ ./phased.scm ERROR: Unbound variable: var $ ./phased.scm 12 I used guile-1.8.6 here. I think this shows that guile is not different in this respect to Ikarus. I think your results with `define-macro' are the result of its non-hygienic nature. Marijn - -- If you cannot read my mind, then listen to what I say. Marijn Schouten (hkBst), Gentoo Lisp project, Gentoo ML <http://www.gentoo.org/proj/en/lisp/>, #gentoo-{lisp,ml} on FreeNode -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.11 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkn1g2MACgkQp/VmCx0OL2z42wCgwi1eNmJ0c97KTX5KdZlqvdVm amQAoMGS6Ocs2B9Hi3GSPFQlFFXraywP =qVCf -----END PGP SIGNATURE-----
