[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Scheme pattern for retrieving data in objects
From: |
Jean Abou Samra |
Subject: |
Re: Scheme pattern for retrieving data in objects |
Date: |
Fri, 1 Apr 2022 18:44:32 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 |
Le 01/04/2022 à 18:43, Jean Abou Samra a écrit :
\version "2.23.8"
#(define-syntax-rule (fetch obj getter (sym ...) body body* ...)
(let ((evald-obj obj)
(evald-getter getter))
(let ((sym (getter obj 'sym))
...)
body body* ...)))
{
c'1
\tweak after-line-breaking
#(lambda (grob)
(fetch grob ly:grob-property (left-bound-info)
(fetch left-bound-info assoc-ref (common-Y X padding attach-dir)
(ly:message "common-Y=~a X=~a padding=~a attach-dir=~a"
common-Y X padding attach-dir))))
\startTextSpan
c'1\stopTextSpan
}
Sorry, should have been:
\version "2.23.8"
#(define-syntax-rule (fetch obj getter (sym ...) body body* ...)
(let ((evald-obj obj)
(evald-getter getter))
(let ((sym (evald-getter evald-obj 'sym))
...)
body body* ...)))
{
c'1
\tweak after-line-breaking
#(lambda (grob)
(fetch grob ly:grob-property (left-bound-info)
(fetch left-bound-info assoc-ref (common-Y X padding attach-dir)
(ly:message "common-Y=~a X=~a padding=~a attach-dir=~a"
common-Y X padding attach-dir))))
\startTextSpan
c'1\stopTextSpan
}