Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2010-01-22

KMRCLを眺める (70) PRINT-ROWS

| 01:11 | KMRCLを眺める (70) PRINT-ROWS - わだばLisperになる を含むブックマーク はてなブックマーク - KMRCLを眺める (70) PRINT-ROWS - わだばLisperになる

今回はKMRCLのio.lisp中からPRINT-ROWSです。

動作は、

(WITH-OUTPUT-TO-STRING (OUT)
  (PRINT-ROWS '((A     B 
                 C
                 D
                 E)
                (1
                 2 3 4 5)
                (1 2 3 4 5))
              OUT))

⇒ "A B C D E
1 2 3 4 5
1 2 3 4 5
"

となっていて、リストのリストの内容を綺麗に表示するもののようです。

定義は、

(defun print-rows (rows &optional (ostrm *standard-output*))
  "Print a list of list rows to a stream"
  (dolist (r rows) (format ostrm "~{~A~^ ~}~%" r)))

です。そのままです。

(format t
        "~{~{~A~^ ~}~%~}" 
        '((A     B 
           C
           D
           E)
          (1
           2 3 4 5)
          (1 2 3 4 5)))

と書いて解決、という人も多い気がします…。

ゲスト



トラックバック - http://cadr.g.hatena.ne.jp/g000001/20100122