X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fes%2Fuser%2Fscheme-tutorial.itely;h=e2edb910ea3f04affe1b75ec292c7e2044d24515;hb=b97565a9af1c13369ac7e7e9ea80c2638dbc0e51;hp=af1840e94696ef57023d1f97576599a08eef63de;hpb=68f72665036fbb310c64f17a15fff20470b5fba2;p=lilypond.git diff --git a/Documentation/es/user/scheme-tutorial.itely b/Documentation/es/user/scheme-tutorial.itely index af1840e946..e2edb910ea 100644 --- a/Documentation/es/user/scheme-tutorial.itely +++ b/Documentation/es/user/scheme-tutorial.itely @@ -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: fb3d84753a9c3af53e6078cd957322dbfd328dbf + Translation of GIT committish: 46e1b0a15ecf324b3272645224f3a2b3068dce73 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.51" +@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 @@ -222,7 +272,7 @@ símbolos, una lista de símbolos y una lista de listas respectivamente: @menu -* Tweaking with Scheme:: +* Tweaking with Scheme:: @end menu @node Tweaking with Scheme @@ -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