[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: new function
From: |
Taylan Kammer |
Subject: |
Re: new function |
Date: |
Sun, 19 Sep 2021 23:38:59 +0200 |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 |
On 19.09.2021 09:54, Damien Mattei wrote:
> hello,
> i'm developing an extension to Scheme
> and i need a procedure or macro that define a variable only if it is not bind
> and if it is just set! it.
>
> I can not do it in Guile or any Scheme,and i'm desperately searching a way to
> do that. I finally conclude that it can be done only by adding it in the
> language.
>
> Can someone include a such function in Guile next release?
> i know guile have a predicate defined? to test binfing of a vairable but
> writing a macro with it is not possible because define can be used in an
> expression context.
>
> Thank in advance for any help
> Damien
What is the utility of such a function? Since Scheme is lexically scoped,
it's generally obvious whether a variable has already been defined or not,
rendering such an operation useless.
If you're constructing code from outside input so that you don't know
whether a provided variable name represents a variable that's already been
defined or not, then you could use the module reflection API:
https://www.gnu.org/software/guile/manual/html_node/Module-System-Reflection.html
Sounds like 'module-define!' does exactly what you ask for. I wonder what
exactly your use-case is though. Chances are that your use-case is best
served with a simple data structure like a hash table...
--
Taylan
- new function, Damien Mattei, 2021/09/19
- Re: new function, Matt Wette, 2021/09/19
- Re: new function,
Taylan Kammer <=
- Re: new function, Damien Mattei, 2021/09/21
- Re: new function, Damien Mattei, 2021/09/22
- Re: new function, William ML Leslie, 2021/09/22
- Re: new function, Damien Mattei, 2021/09/22
- Re: new function, Taylan Kammer, 2021/09/22
- Re: new function, William ML Leslie, 2021/09/22
- Re: new function, Damien Mattei, 2021/09/23
- Re: new function, Taylan Kammer, 2021/09/23
- Re: new function, Damien Mattei, 2021/09/23
- Re: new function, Maxime Devos, 2021/09/23