[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: scheme with Frescobaldi
From: |
Aaron Hill |
Subject: |
Re: scheme with Frescobaldi |
Date: |
Mon, 25 Jun 2018 18:02:06 -0700 |
User-agent: |
Roundcube Webmail/1.3.6 |
On 2018-06-25 17:25, Freeman Gilmore wrote:
On Mon, Jun 25, 2018 at 9:29 AM, Urs Liska <address@hidden>
wrote:
Try this file:
\version "2.19.80"
#(let
((something 'something-else))
(display something)
(newline)
(display something)(display something))
In you first example #(let...) what function does 'let' preform?
Here is the reference on `let` for Guile:
https://www.gnu.org/software/guile/manual/html_node/Local-Bindings.html#Local-Bindings
Without repeating verbatim what is there, `let` is a way of defining
locally-scoped variables.
In the example above, `something` is being defined as `'something-else`,
and it is being referenced later in the function body several times.
But as a local variable, `something` is ephemeral and will no longer be
valid outside of the scope of the let-block body. Consider:
%%%%
#(let
((a 1) (b 2))
(display (+ a b)) #! should output 3 !#
(let
((a b) (c 3))
(display (+ a c)) #! should output 5 !#
)
(display a) #! should output 1 !#
#!(display c)!# #! error: unbound variable c !#
)
%%%%
The inner let here redefines `a` while also defining `c`. Outside of
its body, the original value of `a` is effectively restored but then `c`
is no longer bound so you cannot refer to it.
Hope that helps,
-- Aaron Hill
- scheme with Frescobaldi, Freeman Gilmore, 2018/06/25
- Re: scheme with Frescobaldi, Urs Liska, 2018/06/25
- Message not available
- Re: scheme with Frescobaldi, Urs Liska, 2018/06/25
- Re: scheme with Frescobaldi, Freeman Gilmore, 2018/06/25
- Re: scheme with Frescobaldi,
Aaron Hill <=
- Re: scheme with Frescobaldi, Freeman Gilmore, 2018/06/25
- Re: scheme with Frescobaldi, Andrew Bernard, 2018/06/26
- Re: scheme with Frescobaldi, Urs Liska, 2018/06/26
- Re: scheme with Frescobaldi, Freeman Gilmore, 2018/06/26
- Re: scheme with Frescobaldi, Simon Albrecht, 2018/06/27
- Re: scheme with Frescobaldi, Aaron Hill, 2018/06/27
- Re: scheme with Frescobaldi, David Kastrup, 2018/06/27
- Re: scheme with Frescobaldi, Urs Liska, 2018/06/26
- Re: scheme with Frescobaldi, Freeman Gilmore, 2018/06/27
- Re: scheme with Frescobaldi, Urs Liska, 2018/06/27