+++ /dev/null
-@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
-@c This file is part of lilypond-learning.tely
-@ignore
- Translation of GIT committish: 41ef91786a08102d9b9a839f6a2f40cec263d723
-
- When revising a translation, copy the HEAD committish of the
- version that you are working on. See TRANSLATION for details.
-@end ignore
-
-@c \version "2.12.0"
-
-
-@node Scheme tutorial
-@appendix Scheme tutorial
-
-@funindex #
-@cindex Scheme
-@cindex GUILE
-@cindex Scheme, código en línea
-@cindex acceder a Scheme
-@cindex evaluar Scheme
-@cindex LISP
-
-LilyPond utiliza el lenguaje de programación Scheme, tanto como parte
-de la sintaxis del código de entrada, como para servir de mecanismo
-interno que une los módulos del programa entre sí. Esta sección es
-una panorámica muy breve sobre cómo introducir datos en Scheme. Si
-quiere saber más sobre Scheme, consulte
-@uref{http://@/www@/.schemers@/.org}.
-
-Lo más básico de un lenguaje son los datos: números, cadenas de
-caracteres, listas, etc. He aquí una lista de los tipos de datos que
-son de relevancia respecto de la entrada de LilyPond.
-
-@table @asis
-@item Booleanos
-Los valores Booleanos son Verdadero y Falso. Verdadero en Scheme es @code{#t}
-y Falso es @code{#f}.
-@funindex ##t
-@funindex ##f
-
-@item Números
-Los números se escriben de la forma normal, @code{1} es el número
-(entero) uno, mientras que @code{-1.5} es un número en coma flotante
-(un número no entero).
-
-@item Cadenas
-Las cadenas se encierran entre comillas:
-
-@example
-"esto es una cadena"
-@end example
-
-Las cadenas pueden abarcar varias líneas:
-
-@example
-"esto
-es
-una cadena"
-@end example
-
-También se pueden añadir comillas y saltos de línea con las llamadas
-secuencias de escape. La cadena @code{a dijo "b"} se escribe como
-
-@example
-"a dijo \"b\""
-@end example
-
-Los saltos de línea t las barras invertidas se escapan mediante
-@code{\n} y @code{\\} respectivamente.
-@end table
-
-
-En un archivo de música, los fragmentos de código de Scheme se
-escriben con el signo de almohadilla @code{#}. Así, los ejemplos
-anteriores traducidos a LilyPond son:
-
-@example
-##t ##f
-#1 #-1.5
-#"esto es una cadena"
-#"esto
-es
-una cadena"
-@end example
-
-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
-@code{#} en todas partes.
-
-Scheme se puede usar para hacer cálculos. Utiliza sintaxis
-@emph{prefija}. Sumar 1 y@tie{}2 se escribe como @code{(+ 1 2)} y no
-como el tradicional @math{1+2}.
-
-@lisp
-#(+ 1 2)
- @result{} #3
-@end lisp
-
-La flecha @result{} muestra que el resultado de evaluar @code{(+ 1 2)}
-es@tie{}@code{3}. Los cálculos se pueden anidar; el resultado de una
-función se puede usar para otro cálculo.
-
-@lisp
-#(+ 1 (* 3 4))
- @result{} #(+ 1 12)
- @result{} #13
-@end lisp
-
-Estos cálculos son ejemplos de evaluaciones; una expresión como
-@code{(* 3 4)} se sustituye por su valor @code{12}. Algo similar
-ocurre con las variables. Después de haber definido una variable
-
-@example
-doce = #12
-@end example
-
-@noindent
-las variables se pueden usar también dentro de las expresiones, aquí
-
-@example
-veintiCuatro = #(* 2 doce)
-@end example
-
-@noindent
-el número 24 se almacena dentro de la variable @code{veintiCuatro}.
-La misma asignación se puede hacer también completamente en Scheme,
-
-@example
-#(define veintiCuatro (* 2 doce))
-@end example
-
-El @emph{nombre} de una variable también es una expresión, similar a
-un número o una cadena. Se introduce como
-
-@example
-#'veintiCuatro
-@end example
-
-@funindex #'symbol
-@cindex comillas en Scheme
-
-El apóstrofo @code{'} evita que el intérprete de Scheme sustituya
-@code{veintiCuatro} por @code{24}. En vez de esto, obtenemos el
-nombre @code{veintiCuatro}.
-
-Esta sintaxis se usará con mucha frecuencia, pues muchos de los trucos
-de presentación consisten en asignar valores (de Scheme) a variables
-internas, por ejemplo
-
-@example
-\override Stem #'thickness = #2.6
-@end example
-
-Esta instrucción ajusta el aspecto de las plicas. El valor @code{2.6}
-se pone dentro de la variable @code{thickness} de un objeto
-@code{Stem}. @code{thickness} se mide a partir del grosor de las
-líneas del pentagrama, y así estas plicas serán @code{2.6} veces el
-grosor de las líneas del pentagrama. Esto hace que las plicas sean
-casi el doble de gruesas de lo normal. Para distinguir entre las
-variables que se definen en los archivos de entrada (como
-@code{veintiCuatro} en el ejemplo anterior) y las variables de los
-objetos internos, llamaremos a las últimas @q{propiedades} y a las
-primeras @q{variables.} Así, el objeto plica tiene una propiedad
-@code{thickness} (grosor), mientras que @code{veintiCuatro} es una
-variable.
-
-@cindex propiedades frente a variables
-@cindex variables frente a propiedades
-
-Los desplazamientos bidimensionales (coordenadas X e Y) así como los
-tamaños de los objetos (intervalos con un punto izquierdo y otro
-derecho) se introducen como @code{parejas}. Una pareja@footnote{En la
-terminología de Scheme, la pareja se llama @code{cons}, y sus dos
-elementos se llaman @code{car} y @code{cdr} respectivamente.} se
-introduce como @code{(primero . segundo)} y, como los símbolos, se deben
-preceder de un apóstrofo:
-
-@example
-\override TextScript #'extra-offset = #'(1 . 2)
-@end example
-
-Esto asigna la pareja (1, 2) a la propiedad @code{extra-offset} del
-objeto TextScript. Estos números se miden en espacios de pentagrama,
-y así esta instrucción mueve el objeto un espacio de pentagrama a la
-derecha, y dos espacios hacia arriba.
-
-Los dos elementos de una pareja pueden ser valores arbitrarios, por
-ejemplo
-
-@example
-#'(1 . 2)
-#'(#t . #f)
-#'("bla-bla" . 3.14159265)
-@end example
-
-Una lista se escribe encerrando sus elementos entre paréntesis, y
-añadiendo un apóstrofo. Por ejemplo,
-
-@example
-#'(1 2 3)
-#'(1 2 "cadena" #f)
-@end example
-
-Todo el tiempo hemos estado usando listas. Un cálculo, como @code{(+
-1 2)} también es una lista (que contiene el símbolo @code{+} y los
-números 1 y@tie{}2). Normalmente, las listas se interpretan como
-cálculos, y el intérprete de Scheme sustituye el resultado del
-cálculo. Para escribir una lista, detenemos la evaluación. Esto se
-hace precediendo la lista por un apóstrofo @code{'}. Así, para los
-cálculos no usamos ningún apóstrofo.
-
-Dentro de una lista o pareja precedida de apóstrofo, no hay necesidad
-de escribir ningún apóstrofo más. Lo siguiente es una pareja de
-símbolos, una lista de símbolos y una lista de listas respectivamente:
-
-@example
-#'(stem . head)
-#'(staff clef key-signature)
-#'((1) (2))
-@end example
-
-
-@menu
-* Tweaking with Scheme::
-@end menu
-
-@node Tweaking with Scheme
-@appendixsec Tweaking with Scheme
-
-Hemos visto cómo la salida de LilyPond se puede modificar
-profundamente usando instrucciones como @code{\override TextScript
-#'extra-offset = ( 1 . -1)}. Pero tenemos incluso mucho más poder si
-utilizamos Scheme. Para ver una explicación completa de esto,
-consulte el @ref{Scheme tutorial}, y @ruser{Interfaces for
-programmers}.
-
-Podemos usar Scheme simplemente para sobreescribir instrucciones con
-@code{\override},
-
-@c This isn't a valid example with skylining
-@c It works fine without padText -td
-
-@ignore
-@lilypond[quote,verbatim,ragged-right]
-padText = #(define-music-function (parser location padding) (number?)
-#{
- \once \override TextScript #'padding = #$padding
-#})
-
-\relative c''' {
- c4^"piu mosso" b a b
- \padText #1.8
- c4^"piu mosso" d e f
- \padText #2.6
- c4^"piu mosso" fis a g
-}
-@end lilypond
-@end ignore
-
-Lo podemos usar para crear instrucciones nuevas:
-
-@c Check this is a valid example with skylining
-@c It is - 'padding still works
-
-@lilypond[quote,verbatim,ragged-right]
-tempoMark = #(define-music-function (parser location padding marktext)
- (number? string?)
-#{
- \once \override Score . RehearsalMark #'padding = $padding
- \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
- \mark \markup { \bold $marktext }
-#})
-
-\relative c'' {
- c2 e
- \tempoMark #3.0 #"Allegro"
- g c
-}
-@end lilypond
-
-Incluso se le pueden pasar expresiones musicales:
-
-@lilypond[quote,verbatim,ragged-right]
-pattern = #(define-music-function (parser location x y) (ly:music? ly:music?)
-#{
- $x e8 a b $y b a e
-#})
-
-\relative c''{
- \pattern c8 c8\f
- \pattern {d16 dis} { ais16-> b\p }
-}
-@end lilypond
-