]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/es/user/scheme-tutorial.itely
lilypond-book robustness: ensure EOL at the end of @verbatim
[lilypond.git] / Documentation / es / user / scheme-tutorial.itely
index 3a2592afb2640637d8e326068fd1158e9a254a73..b08ece054fbebd08ae0463491161d75d13f591f2 100644 (file)
@@ -1,13 +1,13 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @c This file is part of lilypond-learning.tely
 @ignore
-    Translation of GIT committish: 65de1f93ce93ef45f179ca91d9db29666b51a4c1
+    Translation of GIT committish: 45945bd973aa9161b10e3f517902afb7ef4b4a56
 
     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.11.61"
+@c \version "2.12.0"
 
 
 @node Scheme tutorial
@@ -28,9 +28,29 @@ 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.
+LilyPond utiliza la implementación GNU Guile de Scheme, que está
+basada en el estándar @qq{R5RS} del lenguaje.  Si está aprendiendo
+Scheme para usarlo con LilyPond, no se recomienda trabajar con una
+implementación distinta (o que se refiera a un estándar diferente).
+Hay información sobre Guile en
+@uref{http://www.gnu.org/software/guile/}.  El estándar de Scheme
+@qq{R5RS} se encuentra en
+@uref{http://www.schemers.org/Documents/Standards/R5RS/}.
+
+La instalación de LilyPond inclute también la de la implementación
+Guile de Scheme.  Sobre casi todos los sistemas puede experimentar en
+una @qq{caja de arena} de Scheme abriendo una ventana del terminal y
+tecleando @q{guile}.  En algunos sistemas, sobre todo en Windows,
+podría necesitar ajustar la variable de entorno @code{GUILE_LOAD_PATH}
+a la carpeta @code{../usr/shr/guile/1.8} dentro de la instalación de
+LilyPond (para conocer la ruta completa a esta carpeta, consulte
+@ref{Other sources of information}).  Como alternativa, los usuarios
+de Windows pueden seleccionar simplemente @q{Ejecutar} del menú Inicio
+e introducir @q{guile}.
+
+El concepto más básico de un lenguaje son sus tipos de 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
@@ -84,6 +104,36 @@ es
 una cadena"
 @end example
 
+Observe que los comentarios de LilyPond (@code{%} y @code{%@{ %@}}) no
+se puedden utilizar dentro del código de Scheme.  Los comentarios en
+el Scheme de Guile se introducen como sigue:
+
+@example
+; 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
+!#
+@end example
+
+Se pueden combinar en un mismo archivo de música varias expresiones de
+Scheme consecutivas mediante la utilización del operador @code{begin}.
+Ello permite que el número de marcas de cuadradillo se redizca a una.
+
+@example
+#(begin
+  (define fulanito 0)
+  (define menganito 1))
+@end example
+
+Si el @code{#} va seguido de un paréntesis de apertura, @code{(}, como
+en el ejemplo anterior, el analizador sintáctico permanece dentro del
+modo de Scheme hasta que encuentra el paréntesis de cierre
+correspondiente, @code{)}, por lo que no son necesarios más símbolos
+de @code{#} para introducir una sección de Scheme.
+
 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.
@@ -140,7 +190,7 @@ un número o una cadena.  Se introduce como
 @funindex #'symbol
 @cindex comillas en Scheme
 
-El apóstrofe @code{'} evita que el intérprete de Scheme sustituya
+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}.
 
@@ -174,7 +224,7 @@ 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óstrofe:
+preceder de un apóstrofo:
 
 @example
 \override TextScript #'extra-offset = #'(1 . 2)
@@ -195,7 +245,7 @@ ejemplo
 @end example
 
 Una lista se escribe encerrando sus elementos entre paréntesis, y
-añadiendo un apóstrofe.  Por ejemplo,
+añadiendo un apóstrofo.  Por ejemplo,
 
 @example
 #'(1 2 3)
@@ -207,11 +257,11 @@ Todo el tiempo hemos estado usando listas.  Un cálculo, como @code{(+
 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óstrofe @code{'}.  Así, para los
-cálculos no usamos ningún apóstrofe.
+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óstrofe, no hay necesidad
-de escribir ningún apóstrofe más.  Lo siguiente es una pareja de
+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
@@ -264,18 +314,18 @@ Lo podemos usar para crear instrucciones nuevas:
 @c It is - 'padding still works
 
 @lilypond[quote,verbatim,ragged-right]
-tempoMark = #(define-music-function (parser location padding marktext)
-                                    (number? string?)
+tempoPadded = #(define-music-function (parser location padding tempotext)
+  (number? string?)
 #{
-  \once \override Score . RehearsalMark #'padding = $padding
-  \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
-  \mark \markup { \bold $marktext }
+  \once \override Score.MetronomeMark #'padding = $padding
+  \tempo \markup { \bold $tempotext }
 #})
 
 \relative c'' {
-  c2 e
-  \tempoMark #3.0 #"Allegro"
-  g c
+  \tempo \markup { "Low tempo" }
+  c4 d e f g1
+  \tempoPadded #4.0 #"High tempo"
+  g4 f e d c1
 }
 @end lilypond