]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/ly-syntax-constructors.scm
Issue 4487/1: Implement partial function calls
[lilypond.git] / scm / ly-syntax-constructors.scm
index 04629bf65568389fd731030d89622355625fd72c..b53e0cb34e0a2bb479847e51ca553b5f5cabafb8 100644 (file)
            n (type-name pred) (music->make-music arg))
    (*location*)))
 
+(define-public (partial-music-function fun args)
+  (let* ((sig (ly:music-function-signature fun))
+         (args (and (list args) (reverse! args))))
+    (and args
+         (ly:make-music-function
+          (cons (car sig) (list-tail (cdr sig) (length args)))
+          (lambda rest
+            (apply (ly:music-function-extract fun)
+                   (append args rest)))))))
+
 (define-public (void-music)
   (ly:set-origin! (make-music 'Music)))