0

上記のコードがあるとしましょう:

(require-extension defstruct)

(defstruct tree height age leaf-color)

(define coconut
  (make-tree height:30
             age: 5
             leaf-color: 'green))

(tree-height ココナッツ) を使用してココナッツの高さを表示できることは知っていますが、1 つのコマンドでココナッツのすべての情報を確認するにはどうすればよいでしょうか? 私はまた、生成する (tree->alist ココナッツ) を試しました: ((height . 30) (age . 5) (leaf-color . 'green)) しかし、次のようなものは使用できません: (for-each pp ココナッツ)。そのようにすることは可能ですか、それとも適切なコマンドで私の印刷ツリーを書くことが唯一の解決策でしょうか?

4

1 に答える 1

1

したがって、これは特定のtree->alist手順を使用するため、一般的な解決策ではありません。また、出力は特にきれいではありません。コメントで述べたように、非常に具体的な印刷ニーズがある場合は、format卵を調べる必要があります.

(use defstruct)

(defstruct tree height age leaf-color)

(define coconut (make-tree height: 30 age: 5 leaf-color: 'green))

(define (pp-tree t)
  (let loop ((attr (tree->alist t)))
    (cond ((null? attr) 'done)
          (else
            (display (caar attr))(display ": ")
            (display (cdar attr))(newline)
            (loop (cdr attr))))))
于 2012-05-06T02:07:52.653 に答える