公告:本站正式转型为非交互式静态网站!
转型:本站将通过笔记和博客的形式继续为大家服务,关于 Mathematica 问答服务请移步至QQ群:365716997
联系:如有问题请联系QQ群管理员,或发送邮件至:lixuan.xyz@qq.com。
感谢:最后非常感谢大家多年来的支持与帮助!
参考《互联网跟帖评论服务管理规定》《中华人民共和国网络安全法》《网络信息内容生态治理规定》《互联网用户账号信息管理规定》

—— 2022-11-27

欢迎来到 Mathematica 问答社区

提问时请贴上文本代码

语法高亮:在编辑器中点击

被禁止的话题:广告破解

请阅读:《提问的智慧》

备用域名:mma.ooo

支持LaTex数学公式
行内公式标识符:\$ 或“$\backslash ($”+“$\backslash )$”,
行间公式标识符:\$\$ 或 “$\backslash [$”+“$\backslash ]$”

社区建议QQ群:365716997

分类

+1 投票
4.3k 浏览
请问一下:
定义
{c[1], c[2], c[3]} = {1, 2, 3};
后,
在 {c[1], c[2], c[3]} 保持有赋值的情况下,
是否还能将 Array[c, 3] 展开成 {c[1], c[2], c[3]} 的形式,但不代入数值?
即,有没有办法控制对 Array[c, 3] 的计算在代入数值那一步之前停下来(并输出结果)?
用户: wonderlands0 (451 分)

1个回答

+2 投票
 
已采纳

这样?

{c[1], c[2], c[3]} = {1, 2, 3};
ccc = Trace[Array[c, 3]][[2]]
ccc // ReleaseHold

 

用户: 野鹤 (5.1k 分)
采纳于 用户:wonderlands0
但 step[{c[1], c[2], c[3]}] 被计算了。
嗯,链接是很好的内容!
看了野鹤的回答又看了SE上的类似问题,现在明白,看来MMA里没有针对原始函数其内部运算的 evaluation control 。
因为那个函数就是控制计算进行一次啊……你从显式的表开始计算一次当然就变数字了……其实对于此类控制我比较喜欢基于模式匹配的那个思路,能达成的效果差不多,但模式匹配更好懂。
嗯嗯。------
...