gpt4 book ai didi

wolfram-mathematica - 对函数体评估感到困惑

转载 作者:行者123 更新时间:2023-12-04 08:13:48 25 4
gpt4 key购买 nike

我对 Function 的以下行为感到困惑:

In[1]:= InlineCellInMessage=Function[expr,DisplayForm[Cell[BoxData[MakeBoxes[expr,StandardForm]],"Input"]],{HoldAllComplete}]
Out[1]= Function[expr,MakeBoxes[expr,StandardForm]]

我希望在输出中的 Function 中看到未计算的代码,如下例所示:

In[2]:= InlineCellInMessage=Function[x,x+1+1]
Out[2]= Function[x,x+1+1]

但是我在输出中得到了内联单元格。为什么会这样?

最佳答案

这是前端渲染的结果。考虑:

InlineCellInMessage = 
Function[expr,DisplayForm[Cell[BoxData[MakeBoxes[expr,StandardForm]],"Input"]],{HoldAllComplete}]

InlineCellInMessage // InputForm

输出:

InputForm[Function[expr, DisplayForm[Cell[BoxData[MakeBoxes[expr, StandardForm]], "Input"]], {HoldAll.Complete}]]

此外,在此使用参数 HoldAllComplete 影响函数的 future 输入,而不是函数本身的创建。如果你想让 Function 本身有 HoldAllComplete 你需要:

SetAttributes[Function, HoldAllComplete]

关于wolfram-mathematica - 对函数体评估感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5616305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com