From f95894a53930cd3c205d82fa706bd2635630f8c7 Mon Sep 17 00:00:00 2001
From: David Kastrup <dak@gnu.org>
Date: Wed, 19 Oct 2011 21:51:06 +0200
Subject: [PATCH] display-woodwind-diagrams.scm: reorganize loops

---
 scm/display-woodwind-diagrams.scm | 46 +++++++++++--------------------
 1 file changed, 16 insertions(+), 30 deletions(-)

diff --git a/scm/display-woodwind-diagrams.scm b/scm/display-woodwind-diagrams.scm
index 642e37a34f..7f6def714e 100644
--- a/scm/display-woodwind-diagrams.scm
+++ b/scm/display-woodwind-diagrams.scm
@@ -1823,19 +1823,13 @@
          (assoc-get 'stencils stencil-alist))))
 
 (define-public (print-keys instrument)
-  (let*
-    ((chosen-instrument
-      (begin
-        (format #t "\nPrinting keys for: ~a\n" instrument)
-        (assoc-get instrument woodwind-data-alist)))
-   (key-list (list-all-possible-keys (assoc-get 'keys chosen-instrument))))
-  (define (key-list-loop key-list)
-    (if (null? key-list)
-      0
-      (begin
-        (format #t "~a\n   ~a\n" (caar key-list) (cdar key-list))
-        (key-list-loop (cdr key-list)))))
-  (key-list-loop key-list)))
+  (format #t "\nPrinting keys for: ~a\n" instrument)
+  (let ((chosen-instrument (assoc-get instrument woodwind-data-alist)))
+    (do	((key-list
+	  (list-all-possible-keys (assoc-get 'keys chosen-instrument))
+	  (cdr key-list)))
+	((null? key-list))
+      (format #t "~a\n   ~a\n" (caar key-list) (cdar key-list)))))
 
 (define-public (get-woodwind-key-list instrument)
   (list-all-possible-keys-verbose
@@ -1844,23 +1838,15 @@
       (assoc-get instrument woodwind-data-alist))))
 
 (define-public (print-keys-verbose instrument)
-  (let*
-    ((chosen-instrument
-      (begin
-        (format #t "\nPrinting keys in verbose mode for: ~a\n" instrument)
-        (assoc-get instrument woodwind-data-alist)))
-   (key-list
-     (list-all-possible-keys-verbose (assoc-get 'keys chosen-instrument))))
-  (define (key-list-loop key-list)
-    (if (null? key-list)
-      0
-      (begin
-        (format #t "~a\n" (caar key-list))
-        (map (lambda (x)
-               (format #t "   possibilities for ~a:\n      ~a\n" (car x) (cdr x)))
-             (cdar key-list))
-        (key-list-loop (cdr key-list)))))
-  (key-list-loop key-list)))
+  (format #t "\nPrinting keys in verbose mode for: ~a\n" instrument)
+  (do ((key-list (get-woodwind-key-list instrument)
+		 (cdr key-list)))
+      ((null? key-list))
+    (format #t "~a\n" (caar key-list))
+    (for-each
+     (lambda (x)
+       (format #t "   possibilities for ~a:\n      ~a\n" (car x) (cdr x)))
+     (cdar key-list))))
 
 (define-markup-command
   (woodwind-diagram layout props instrument user-draw-commands)
-- 
2.39.5