Variablenliste ausgeben

Zur Navigation springen Zur Suche springen

Dies ist ein Hilfprogramm, das alle bisher definierten Variablen in das Log schreibt.

Genauer gesagt, alle Variablen, die zwischen der Codezeile

#(define current-module-bindings (ly:module->alist (current-module)))

und dem Aufruf des Codes, der mit #(let beginnt, liegen.}}

Scheme-Code

#(define current-module-bindings (ly:module->alist (current-module)))
%% alle Variablen, die ab hier bis zum Aufruf des Programms definiert werden, werden ausgegeben
#(let ((bindings
        (assoc-remove!
         (lset-difference
          equal?
          (ly:module->alist (current-module))
          current-module-bindings)
         'current-module-bindings)))
   (pretty-print
    (sort
     (map car bindings) symbol<?)))

#(define current-module-bindings (ly:module->alist (current-module)))
%% alle Variablen, die ab hier bis zum Aufruf des Programms definiert werden, werden ausgegeben
#(let ((bindings
        (assoc-remove!
         (lset-difference
          equal?
          (ly:module->alist (current-module))
          current-module-bindings)
         'current-module-bindings)))
   (pretty-print
    (sort
     (map car bindings) symbol<?)))

Anwendung

#(define current-module-bindings (ly:module->alist (current-module)))
A = 1
BB = "zwei"
CCC = { c d e f g }
DDDD = "auskommentiert"
#(let ((bindings
        (assoc-remove!
         (lset-difference
          equal?
          (ly:module->alist (current-module))
          current-module-bindings)
         'current-module-bindings)))
   (pretty-print
    (sort
     (map car bindings) symbol<?)))

#(define current-module-bindings (ly:module->alist (current-module)))
A = 1
BB = "zwei"
CCC = { c d e f g }
DDDD = "auskommentiert"
#(let ((bindings
        (assoc-remove!
         (lset-difference
          equal?
          (ly:module->alist (current-module))
          current-module-bindings)
         'current-module-bindings)))
   (pretty-print
    (sort
     (map car bindings) symbol<?)))

Ausgabe

(A BB CCC DDDD)