[ << Tutorial de Scheme ] | [Arriba][Índice general][Índice][ ? ] | [ Interfaces para programadores >> ] | ||
[ < Scheme dentro de LilyPond ] | [ Subir : Scheme dentro de LilyPond ] | [ Variables de LilyPond > ] |
A.2.1 Sintaxis del Scheme de LilyPond
El intérprete Guile forma parte de LilyPond, lo que significa que se
puede incluir Scheme dentro de los archivos de entrada de LilyPond.
La marca de almohadilla #
se utiliza para indicar al analizador
sintáctico de LilyPond que lo siguiente es un valor de Scheme.
Una vez el analizador sintáctico se encuentra con un símbolo de almohadilla, la entrada se le pasa al intérprete Guile para evaluar la expresión de Scheme. El intérprete continúa procesando la entrada hasta que se encuentra con el final de una expresión de Scheme.
Los procedimientos de Scheme se pueden definir dentro de los archivos de entrada de LilyPond:
#(define (average a b c) (/ (+ a b c) 3))
Observe que los comentarios de LilyPond (%
y %{ %}
) no
se pueden utilizar dentro del código de Scheme, ni siquiera dentro de
un archivo de entrada de LilyPond input file, porque es el intérprete
Guile, y no el analizador sintáctico de LilyPond, el que está
interpretando la expresión de Scheme. Los comentarios en el Scheme de
Guile se introducen como sigue:
; esto es un comentario de una línea #! Esto es un comentario de bloque (no anidable) estilo Guile Pero se usan rara vez por parte de los Schemers y nunca dentro del código fuente de LilyPond !#
Durante el resto de esta sección, supondremos que los datos se
introducen en un archivo de música, por lo que añadiremos almohadillas
#
al principio de todas las expresiones de Scheme.
Todas las expresiones de Scheme del nivel jerárquico superior dentro
de un archivo de entrada de LilyPond se pueden combinar en una sola
expresión de Scheme mediante la utilización del operador begin
:
#(begin (define fulanito 0) (define menganito 1))
[ << Tutorial de Scheme ] | [Arriba][Índice general][Índice][ ? ] | [ Interfaces para programadores >> ] | ||
[ < Scheme dentro de LilyPond ] | [ Subir : Scheme dentro de LilyPond ] | [ Variables de LilyPond > ] |
Otros idiomas: English.