该ASSOCIATE
功能原则上非常有用,因为它允许将值分配给名称,而不会产生显式定义局部变量的语法开销。但是,它的效用是有限的,因为值仅在ASSOCIATE
语句之后绑定。这很快导致需要嵌套关联语句,例如
PROGRAM toyexample
IMPLICIT NONE
ASSOCIATE(a => 2)
ASSOCIATE(b => [a, 2*a, 3*a])
PRINT *, a
PRINT *, b
END ASSOCIATE
END ASSOCIATE
END PROGRAM toyexample
在 Lisp 术语中,这将是 的行为let
,而我试图模仿 的行为let*
,这将允许我编写
PROGRAM toyexample
IMPLICIT NONE
ASSOCIATE(a => 2, b => [a, 2*a, 3*a])
PRINT *, a
PRINT *, b
END ASSOCIATE
END PROGRAM toyexample
Fortran 中是否有任何功能允许我这样做?