]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/es/extending/scheme-tutorial.itely
Merge branch 'translation' of ssh://git.sv.gnu.org/srv/git/lilypond into translation
[lilypond.git] / Documentation / es / extending / scheme-tutorial.itely
index 73d867b5f6119e68930cb2fe8807f405b345912e..fdc27da0cc948669a1b0d5add5262fd8afcdf01a 100644 (file)
@@ -1,14 +1,14 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: 1551dd6bf65c0236b9620ee966599f5d811d77d8
+    Translation of GIT committish: 26a079ca2393d053315ef8dbef626c897dc9645a
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.15.20"
+@c \version "2.16.0"
 
 @node Tutorial de Scheme
 @appendix Tutorial de Scheme
@@ -643,6 +643,7 @@ guile> (cond ((< a b) "a es menor que b")
 * Sintaxis del Scheme de LilyPond::
 * Variables de LilyPond::
 * Variables de entrada y Scheme::
+* Importación de Scheme dentro de LilyPond::
 * Propiedades de los objetos::
 * Variables de LilyPond compuestas::
 * Representación interna de la música::
@@ -701,7 +702,7 @@ no se pasa nada en absoluto al analizador sintáctico.
 
 Éste es, de hecho, el mismo mecanismo exactamente que LilyPond emplea
 cuando llamamos a cualquier variable o función musical por su nombre,
-como @code{\nombre}, con la única diferencia de que su final viene
+como @code{\nombre}, con la única diferencia de que el nombre viene
 determinado por el analizador léxico de LilyPond sin consultar al
 lector de Scheme, y así solamente se aceptan los nombres de variable
 consistentes con el modo actual de LilyPond.
@@ -709,7 +710,17 @@ consistentes con el modo actual de LilyPond.
 La acción inmediata de @code{$} puede llevar a alguna que otra
 sorpresa, véase @ref{Variables de entrada y Scheme}.  La utilización
 de @code{#} donde el analizador sintáctico lo contempla es normalmente
-preferible.
+preferible.  Dentro de las expresiones musicales, aquellas que se
+crean utilizando @code{#} @emph{se interprentan} como música.  Sin
+embargo, @emph{no se copian} antes de ser utilizadas.  Si forman parte
+de alguna estructura que aún podría tener algún uso, quizá tenga que
+utilizar explícitamente @code{ly:music-deep-copy}.
+
+@funindex $@@
+@funindex #@@
+También existen los operadores de @q{división de listas} @code{$@@} y
+@code{#@@} que insertan todos los elementos de una lista dentro del
+contexto circundante.
 
 Ahora echemos un vistazo a algo de código de Scheme real.  Los
 procedimientos de Scheme se pueden definir dentro de los archivos de
@@ -849,7 +860,7 @@ traLaLa = { c'4 d'4 }
 #(define twice
   (make-sequential-music newLa))
 
-{ \twice }
+\twice
 @end lilypond
 
 @c Due to parser lookahead
@@ -862,6 +873,12 @@ que necesita comprobar lo que viene a continuación.  Lee el símbolo
 forma que puede proceder a la asignación, y @emph{posteriormente}
 ejecutar el código de Scheme sin problema.
 
+@node Importación de Scheme dentro de LilyPond
+@subsection Importación de Scheme dentro de LilyPond
+@translationof Importing Scheme in LilyPond
+@funindex $
+@funindex #
+
 El ejemplo anterior muestra cómo @q{exportar} expresiones musicales
 desde la entrada al intérprete de Scheme.  Lo contrario también es
 posible.  Colocándolo después de @code{$}, un valor de Scheme se
@@ -871,7 +888,7 @@ podría también haberse escrito como
 
 @example
 ...
-@{ $(make-sequential-music (list newLa)) @}
+$(make-sequential-music newLa)
 @end example
 
 Podemos utilizar @code{$} con una expresión de Scheme en cualquier
@@ -887,11 +904,32 @@ habría fracasado porque @code{traLaLa} no habría sido definida aún.
 Para ver una explicación de este problema de momento temporal, véase
 @ref{Sintaxis del Scheme de LilyPond}.
 
-En cualquier caso, la evaluación del código de Scheme se produce
-dentro del analizador sintáctico como muy tarde.  Si necesitamos que
-se ejecute en un punto temporal más tardío,
-usaríamos @ref{Funciones de Scheme vacías}, o lo almacenaríamos en un
-macro:
+@funindex $@@
+@funindex #@@
+Un conveniente aspecto posterior pueden ser los operadores de
+@q{división de listas} @code{$@@} y @code{#@@} para la inserción de
+los elementos de una lista dentro del contexto circundante.
+Utilizándolos, la última parte del ejemplo se podría haber escrito
+como
+
+@example
+...
+@{ #@@newLa @}
+@end example
+
+Aquí, cada elemento de la lista que está almacenado en @code{newLa} se
+toma en secuencia y se inserta en la lista, como si hubiésemos escrito
+
+@example
+@{ #(first newLa) #(second newLa) @}
+@end example
+
+Ahora bien, en todas esas formas, el código de Scheme se evalúa en el
+momento en que el código de entrada aún se está procesando, ya sea en
+el analizador léxico o en el analizador sintáctico.  Si necesitamos
+que se ejecute en un momento posterior, debemos consultar
+@ref{Funciones de Scheme vacías}, o almacenarlo dentro de un
+procedimiento:
 
 @example
 #(define (nopc)
@@ -1143,7 +1181,7 @@ hacer que LilyPond dirija solamente esta salida a su propio archivo:
 
 @example
 @{
-  $(with-output-to-file "display.txt"
+  #(with-output-to-file "display.txt"
       (lambda () #@{ \displayMusic @{ c'4\f @} #@}))
 @}
 @end example
@@ -1366,10 +1404,10 @@ Sabemos que
 
 @noindent
 no funciona en LilyPond.  Podríamos evitar este problema adjuntando la
-articulación a una nota falsa,
+articulación a un acorde vacío,
 
 @example
-@{ << \music s1*0-.-> @}
+@{ << \music <> -. -> >> @}
 @end example
 
 @noindent
@@ -1581,16 +1619,16 @@ Lo podemos usar para crear instrucciones nuevas:
 
 @lilypond[quote,verbatim,ragged-right]
 tempoPadded = #(define-music-function (parser location padding tempotext)
-  (number? string?)
+  (number? markup?)
 #{
-  \once \override Score.MetronomeMark #'padding = $padding
+  \once \override Score.MetronomeMark #'padding = #padding
   \tempo \markup { \bold #tempotext }
 #})
 
 \relative c'' {
   \tempo \markup { "Low tempo" }
   c4 d e f g1
-  \tempoPadded #4.0 #"High tempo"
+  \tempoPadded #4.0 "High tempo"
   g4 f e d c1
 }
 @end lilypond
@@ -1601,7 +1639,7 @@ 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
+  #x e8 a b #y b a e
 #})
 
 \relative c''{