问题描述
最近,我发现了一种将dict应用于dict的技术。就像这样:
NSOutlineView
甚至是这样,从左到右阅读时看起来更自然:
(3 4 5!6 7 8)[(`a`b)!(2 3)] ~ (`a`b!0N 6)
我可以使用这种行为(有任何警告)吗?在官方文档的某个地方有描述吗?
这似乎是一种令人难以置信的技术:我们肯定将函数(列表/字典/表)应用于其参数,而不仅仅是将参数传递给函数。
解决方法
如果您认为字典像一个以键作为输入并输出值的函数一样,我认为这是合理的。
以同样的方式,使函数加倍将使输入值加倍,同时保留输入键:
q)f1:2*
q)f1[`a`b!2 3]
a| 4
b| 6
使用键并输出值的“函数”(字典)将执行类似的操作:
q)f2:3 4 5!6 7 8
q)f2[`a`b!2 3]
a|
b| 6