我坚持将过程分配给 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;
这以某种方式编译。
但是我不知道如何将打印过程分配给我的节点记录的访问成员。我需要这样的东西:
node^.visit^ := print;
(即使是 POINTER TO PROCEDURE 定义也花了我一段时间才弄清楚......)