例如,以下规则用于创建编辑给定变量的滑块:
EditorLine[stat_] := {
Labeled[Slider[Dynamic[stat], {1, 20, 1}],
{SymbolName[Unevaluated[stat]]}, {Left}], Dynamic[stat]}
SetAttributes[EditorLine, HoldFirst]
这适用于EditorLine[x]
,但使用地图(例如EditorLine /@ {x,y,z}
)会产生错误,因为地图函数会评估变量名称,因此不会保留它们。
这可以通过编写EditorLine /@ {Unevaluated[x],Unevaluated[y],Unevaluated[z]}
来完成,但如果我想编写重复的函数调用,那就不会使用地图了!
有没有更好的方法呢?
答案 0 :(得分:1)
这也可以:
EditorLine /@ Unevaluated[{x, y, z}]
如果您添加Listable
属性,则更短:
EditorLine[{x, y, z}]