\version "2.19.17" #(define (get-binding-list iface) (let* ((iface (resolve-module iface)) (bindings (struct-ref iface 0))) (hash-map->list cons bindings))) #(define (symbol-closure-list iface) (let* ((bindings (get-binding-list iface)) (bindings (map (lambda (b) (cons (car b) (variable-ref (cdr b)))) bindings)) (closures (filter (lambda (b) (closure? (cdr b))) bindings)) (closures (sort closures (lambda (x y) (symbolstring (car elt)) "markup")) lst)) #(define (symbol-closure-doc-list iface omit-markups?) (let* ((closures (symbol-closure-list iface)) (closures (if omit-markups? (omit-markup-functions closures) closures))) (map (lambda (c) (list (car c) (cdr c) (let ((doc (procedure-documentation (cdr c)))) (if doc doc "DOCME")))) closures))) % UNCOMMENT THE FOLLOWING TO SEND TO A FILE: %#(set-current-output-port (open-output-file "closures.txt")) %% boolean determines whether markup commands (which are documented %% in their Lily syntax) are included. #(format #t "~:{~a~%~a~%~3t~s~%__________~%~%~}" (symbol-closure-doc-list '(lily) #t)) %#(format #t "~:{~a~%~a~%~3t~s~%__________~%~%~}" (symbol-closure-doc-list '(srfi srfi-1) #f))