5.6.1 置換関数の構文

変数を LilyPond コードに置換する関数を作成することは簡単にできます。置換関数の一般的な形式は以下のようなものです:

function =
#(define-music-function
     (parser location arg1 arg2 …)
     (type1? type2? …)
   #{
     …music…
   #})

ここで

argN

n 番目の引数

typeN?

argN#t を返す Scheme の 型述語 (type predicate)。

…music…

通常の LilyPond 入力。引数を参照するには $ (LilyPond 構造が許可されている場合のみ) や # (引数を Scheme 値、音楽関数の引数、あるいは音楽リスト内部の音楽として使う場合) を用います (例: ‘#arg1’)。

です。

引数 parserlocation を省略することはできず、 Music functions で記述されている高度な状況で使用されることがあります。 置換関数において、必ずこれらの引数を記述してください。

引数として、型述語のリストも必須です。音楽関数で用いられる一般的な型述語には下記のものがあります:

boolean?
cheap-list?  (‘list?’ の代わりに用いることで、処理を高速にします)
ly:music?
markup?
number?
pair?
string?
symbol?

利用可能な型述語のリストは、Predefined type predicates を参照してください。ユーザが型述語を定義することもできます。

参照

記譜法リファレンス: Predefined type predicates

拡張: Music functions

インストールされているファイル: ‘lily/music-scheme.cc’, ‘scm/c++.scm’, ‘scm/lily.scm


他の言語: English, deutsch, español, français, italiano
About automatic language selection.

LilyPond — 記譜法リファレンス v2.18.2 (安定版).