Allgemein > Hilfe beim Einstieg in Lilypond
Variablenübergabe in eine Scheme-Funktion
(1/1)
ingmar:
hallo,
zur Übung hab ich eine kleine Funktion in scheme erstellt, die mir ein wenig Notentext drucken soll. Den Name des Schlüssels möchte ich per Parameter übergeben. Leider gelingt es mir nicht, und ich verstehe einfach das Problem nicht.
--- Code: ---\version "2.19.37"
MyScore = #(define-scheme-function ( myString ) (string) (string? ) #{
\score {
\new Staff \with { \clef \myString } { \relative { c' d e f g2 a g4 f e d c1 } }
}
#})
\MyScore "alto"
--- Ende Code ---
Fehlermeldung: Wrong type (expecting character): "alto". Tja! Kann jemand helfen? Danke..!
Edit: Hatte in der Funktionsdeklaration "(string)" oben vergessen, und so ist auch die Fehlermeldung eine andere.
--ingmar
fugenkomponist:
--- Zitat von: ingmar am Samstag, 11. Februar 2017, 15:50 ---Edit: Hatte in der Funktionsdeklaration "(string)" oben vergessen, und so ist auch die Fehlermeldung eine andere.
--- Ende Zitat ---
Wofür brauchst du das? In der Dokumentation (Extending Abschnitt 2.2.1) steht da nichts davon.
Zu deiner Frage: Ein Argument einer so in Scheme definierten Funktion wird per $ oder # verwendet, nicht per \.
--- Code: ---\version "2.19.37"
MyScore = #(define-scheme-function (myString) (string?) #{
\score {
\new Staff \with { \clef #myString } { \relative { c' d e f g2 a g4 f e d c1 } }
}
#})
\MyScore "alto"
--- Ende Code ---
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln