This is the mail archive of the guile@cygnus.com mailing list for the guile project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
I tried to read the text, but it's 5:30 AM (the time I managed to finish getting my email after 2 days out) so I'll read it tomorrow. But what I'm writing about is an idea I had as soon as I left home Wednesday. I planned to take these days off to do some design work on FEAST, and came up with a very interesting idea. Imagine that you could code this in Guile: (define top-environment (current-environment)) (define foo (make-environment top-environment)) ; the parameters to make-environment ; are all symbols I want it to ; inherit from the current one (foo (define bar 1)) ; execute (define bar 1) inside foo (foo bar) ; evaluate bar inside foo => 1 bar => undefined (define bar 2) ; not the same bar ;-) (foo bar) ; still 1 => 1 ; now for something advanced (foo (top-environment bar)) ; read bar from inside the copy of ; top-environment we added to foo => 2 (foo (+ bar (top-environment bar))) => 3 I just used the word "environment" because that's what's in discussion; my draft (on paper) used "namespace", and any other word could be used as well. I think something like that is absolutely necessary for Guile's stated goal of emulating other languages; for example, someone would have a nasty time writing a python->guile translator without something similar. Now the questions: a: Do you guys think this is good? Suggestions to improve it? b: Do you think the syntax is good? Suggestions to improve it? c: Can this be done with this "environments" proposal, or be implemented on top of it? d: Should I start to work on it? e: If "d" is #t, can someone send me the copyright assignment I need to sign? (No boss, all future contributions) []s, |alo +---- -- I am Lalo of deB-org. You will be freed. Resistance is futile. http://www.webcom.com/lalo mailto:lalo@webcom.com pgp key in the web page Debian GNU/Linux -- http://www.debian.org