0

Modula-2 のポインタへのプロシージャの割り当てに行き詰まっています。

PROCEDURE print(node : Node_ptr);
BEGIN
(* some code *)
END print;

TYPE Node_ptr   = POINTER TO Node;
TYPE Visit_ptr  = POINTER TO PROCEDURE (Node_ptr);

TYPE
    Node = RECORD
        parent  : Node_ptr;
        left    : Node_ptr;
        right   : Node_ptr;
        id      : INTEGER;
        visit   : Visit_ptr;
END;

これでなんとかコンパイル完了。

しかし、ノード レコードの訪問メンバーに print プロシージャを割り当てる方法がわかりません。私はこのようなものが必要です:

node^.visit^ := print;

(POINTER TO PROCEDUREの定義でさえ、理解するのにしばらく時間がかかりました...)

4

1 に答える 1

2

割り当て構文は正しいです(ノードを Node_ptr として宣言し、それにスペースを割り当てた後)。

詳細については、Wirth の「Modula-2 でのプログラミング」を読むことをお勧めします。良い中古のコピー USD を見つけることができます。簡潔ですが、おそらく必要なものはすべて含まれています。(他のチュートリアルはhttp://freepages.modula2.org/tutor.htmlにあります。)

于 2015-05-29T23:06:08.277 に答える