问题描述
我一直在运行许多功能来更新表格,并且我会不断添加更多功能,因为我希望更新并调用其他各种项目。我还没有遇到任何问题(目前有7个功能),但我很清楚可能会有限制。我确实发现单个函数最多只能有8个参数,但下面没有什么限制。如果没有,那就太好了。在扩大规模时,我想保持警惕。
updateTable: FuncG FuncF FunE FuncD FuncC FuncB FuncA ::; // max number of functions?
t: updateTable t;
解决方法
我用大量的函数调用制作了一个伪造的更新语句,看来您还不错:
q)t:([]a:1 2 3)
q)f:{x+1}
q)value "update ",(raze 1000#enlist"f "),"a from t"
a
----
1001
1002
1003
您可能想做的一件事是从函数列表中创建一个函数composed
:
q)f:{x+1}
q)g:{2*x}
q)h:{x+1+2}
q)(('[;])/)(f;g;h)
{x+1}{2*x}{x+1+2}
q)composed:(('[;])/)(f;g;h)
q)t:([]a:1 2 3)
q)update composed a from t
a
--
9
11
13
所以您的update语句中只有一个功能,并且可以扩展。