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の定義でさえ、理解するのにしばらく時間がかかりました...)