我知道在Maple中传递参数的方式总是通过值,所以我想知道是否有方法通过引用在Maple过程中传递参数。 我已阅读了关于REF标识符的一些信息,但我还没有很好的理解。 有人知道这件事吗?Maple通过引用传递参数
0
A
回答
0
你提到的REF
很可能只是`define_external中的参数限定词,用于链接到Maple内核和解释库之外的编译函数。对于Maple程序,它不提供更广义的传递引用。
在Maple rtables(矩阵,向量,数组)和表通过引用传递,允许在这些可变结构上的就地语义。
过程调用的其他参数大多是通过值完成的。也就是通过名称(变量)的值。在Maple的过程调用的正常评估规则中,传递的名称将在前面进行评估,并且它们的值将成为过程参数。
但是,如果名称在未评估报价(单引号)内传递,那么参数只是名称而不是其值。那么这个名字在过程调用中可用。该程序甚至可以分配给该名称(产生副作用)。或者程序可以做另一次评估,以获得价值。所以,在这种情况下,参数是按名称传递的,这是通过引用传递的方式。
获得相同效果的其他方法包括构造过程定义,以便参数按名称而非值传递。在这种情况下,当程序被调用时不需要额外的评估报价。
请注意,下面将如何调用p1
和p2
。如果用不同类型的参数调用它们,您也可以试验发生了什么(各种错误消息)。
p1 := proc(x)
local y;
y := eval(x);
print(x, y);
x := y^2;
return NULL;
end proc:
m := 4;
m := 4
p1('m');
m, 4
m;
16
p2 := proc(x::uneval)
local y;
y := eval(x);
print(x, y);
x := y^2;
return NULL;
end proc:
m := 4;
m := 4
p2(m);
m, 4
m;
16
相关问题
- 1. 通过引用传递数组参数
- 2. 通过引用的CreateInstance传递参数
- 3. 通过引用传递的ANT参数
- 4. 参数传递通过引用
- 5. 通过引用传递参数Java
- 6. 传递参数通过引用
- 7. 我是否正确传递参数并通过引用传递?
- 8. 传递通过引用和参考
- 9. 通过引用递归函数传递参数
- 10. 通过引用参数传递跟踪递归算法
- 11. 通过url传递参数
- 12. 通过ICommand传递参数
- 13. 通过server.execute传递参数?
- 14. 通过url传递参数
- 15. 通过url传递参数?
- 16. 通过传递参数
- 17. 传递参数通过powershell.exe
- 18. 通过URL传递参数
- 19. 通过Ajax传递参数
- 20. 通过PageFactory传递参数
- 21. 通过引用传递与值传递
- 22. connot通过参数传递参数
- 23. 通过http post参数传递参数
- 24. 通过引用传递C++
- 25. C++通过引用传递?
- 26. cpp通过引用传递
- 27. PHP通过引用传递?
- 28. Java通过引用传递
- 29. C++通过引用传递
- 30. 通过引用传递流
非常详尽..谢谢! –