@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@ignore
-Translation of GIT committish: e90fa9a8a1d71251a2c047e69798be05938a1241
+Translation of GIT committish: eb98dcb8ece687486640a5dc3ec3aa2395ec31cf
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
Dondequiera que se necesite reutilizar trucos con distintas
expresiones musicales, con frecuencia conviene hacer que el truco
-forme parte de una función musical. En esta sección estudiaremos
-solamente las funciones de @emph{sustitución}, en las que el objeto es
-sustituir una variable dentro de un fragmento de código de entrada de
-LilyPond. Se describen otras funciones más complejas en
-@rextend{Music functions}.
+forme parte de una @emph{función musical}. En esta sección
+estudiaremos solamente las funciones de @emph{sustitución}, en las que
+el objeto es sustituir una variable dentro de un fragmento de código
+de entrada de LilyPond. Se describen otras funciones más complejas en
+@rextend{Funciones musicales}.
@menu
* Sintaxis de las funciones de sustitución::
-* Tipos de argumento comunes::
* Ejemplos de funciones de sustitución::
@end menu
@example
funcion =
-#(define-music-function (parser location @var{var1} @var{var2}...@var{vari}... )
- (@var{tipo-de-var1?} @var{tipo-de-var2?}...@var{tipo-de-vari?}...)
- #@{
- @emph{...música...}
- #@})
+#(define-music-function
+ (parser location @var{arg1} @var{arg2} @dots{})
+ (@var{type1?} @var{type2?} @dots{})
+ #@{
+ @var{@dots{}música@dots{}}
+ #@})
@end example
@noindent
donde
@multitable @columnfractions .33 .66
-@item @var{vari} @tab @var{i}-ésima variable
-@item @var{tipo-de-vari?} @tab tipo de la variable @var{i}-ésima
-@item @var{...música...} @tab entrada de LilyPond normal, que utiliza variables como @code{#$var1}, etc.
-@end multitable
+@item @code{@var{argN}}
+@tab @var{n}-ésimo argumento
-Los tipos de variable comunes se describen en @ref{Tipos de argumento
-comunes}. Hay una descripción más completa de los tipos de variable
-en @rextend{Music function syntax}. La lista completa de los tipos de
-variable definidos está en el elemento @var{type-p-name-alist} de
-@file{scm/lily.scm}.
+@item @code{@var{typeN?}}
+@tab @emph{predicado de tipo} de Scheme para el que @code{@var{argN}}
+debe devolver @code{#t}.
-@c TODO -- find an automatic way of documenting the type-p-name-alist
+@item @code{@var{@dots{}música@dots{}}}
+@tab entrada de LilyPond normal, que utiliza @code{$} para
+referenciar argumentos (p.ej. @samp{$arg1}).
+@end multitable
Los argumentos @code{parser} y @code{location} son necesarios, y se
en @rextend{Music function syntax}. Para las funciones de
sustitución, tan sólo hemos de asegurarnos de incluirlos.
-@seealso
-
-Referencia de la notación:
-@ref{Tipos de argumento comunes}.
-
-Expansión de LilyPond:
-@rextend{Music function syntax}.
-
-@node Tipos de argumento comunes
-@subsection Tipos de argumento comunes
-@translationof Common argument types
+También es necesaria la lista de predicados de tipo. Algunos de los
+predicados de tipo más comunes que se utilizan en las funciones
+musicales son:
-Para hacer posible la comprobación de errores, se debe definir el tipo
-de cada argumento que se pasa a una función musical. Algunos de los
-tipos de variable comunes están relacionados en la tabla que aparece
-más abajo.
+@example
+boolean?
+cheap-list? @emph{(utilizar en lugar de }@q{list?}@emph{ para un procesado más rápido)}
+ly:music?
+markup?
+number?
+pair?
+string?
+symbol?
+@end example
-Los siguientes tipos de entrada se pueden utilizar como variables
-dentro de una función musical. La lista no es exhaustiva; hay más
-información sobre los posibles tipos de variable en
-@rextendnamed{Music function syntax,Sintaxis de las funciones
-musicales}.
+@noindent
+Para ver una lista de los predicados de tipo disponibles, consulte
+@ref{Predicados de tipo predefinidos}. También se permiten los
+predicados de tipo definidos por el usuario.
-@multitable @columnfractions .33 .66
-@headitem Tipo de entrada @tab notación de @var{tipo-de-vari?}
-@item Entero @tab @code{integer?}
-@item Flotante (número decimal) @tab @code{number?}
-@item Cadena de caracteres @tab @code{string?}
-@item Marcado @tab @code{markup?}
-@item Expresión musical @tab @code{ly:music?}
-@item Dupla de Scheme @tab @code{pair?}
-@end multitable
@seealso
+Referencia de la notación:
+@ref{Tipos de argumento comunes}.
+
Expansión de LilyPond:
-@rextend {Music function syntax}.
+@rextend{Sintaxis de las funciones musicales}.
Archivos instalados:
@file{lily/music-scheme.cc},
-@file{scm/c++.scm}.
+@file{scm/c++.scm},
+@file{scm/lily.scm}.
@node Ejemplos de funciones de sustitución
del relleno de un elemento de inscripción de texto TextScript:
@lilypond[quote,verbatim,ragged-right]
-padText = #(define-music-function (parser location padding) (number?)
- #{
- \once \override TextScript #'padding = #$padding
- #})
+padText =
+#(define-music-function
+ (parser location padding)
+ (number?)
+ #{
+ \once \override TextScript #'padding = $padding
+ #})
\relative c''' {
c4^"piu mosso" b a b
para los argumentos de las funciones musicales:
@lilypond[quote,verbatim,ragged-right]
-custosNote = #(define-music-function (parser location note)
- (ly:music?)
- #{
- \once \override Voice.NoteHead #'stencil =
- #ly:text-interface::print
- \once \override Voice.NoteHead #'text =
- \markup \musicglyph #"custodes.mensural.u0"
- \once \override Voice.Stem #'stencil = ##f
- $note
- #})
+custosNote =
+#(define-music-function
+ (parser location note)
+ (ly:music?)
+ #{
+ \once \override Voice.NoteHead #'stencil =
+ #ly:text-interface::print
+ \once \override Voice.NoteHead #'text =
+ \markup \musicglyph #"custodes.mensural.u0"
+ \once \override Voice.Stem #'stencil = ##f
+ $note
+ #})
-{ c' d' e' f' \custosNote g' }
+\relative c' { c4 d e f \custosNote g }
@end lilypond
-Se pueden definir funciones de sustitución con varios argumentos:
+Substitution functions with multiple arguments can be defined:
@lilypond[quote,verbatim,ragged-right]
-tempoPadded = #(define-music-function (parser location padding tempotext)
- (number? string?)
-#{
- \once \override Score.MetronomeMark #'padding = $padding
- \tempo \markup { \bold $tempotext }
-#})
+tempoPadded =
+#(define-music-function
+ (parser location padding tempotext)
+ (number? string?)
+ #{
+ \once \override Score.MetronomeMark #'padding = $padding
+ \tempo \markup { \bold $tempotext }
+ #})
\relative c'' {
\tempo \markup { "Low tempo" }