-----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-----

Reply via email to