例如,我可能有
{1, 2, 3, 4, 5} // Select[#1, ((*** + 1 &) > 2) &] &
这里,***
也想成为#1,但不被识别为最外层的#1。有什么方法可以区分这两者吗?
谢谢。
最佳答案
我不确定我是否理解这个问题。您的预期输出是什么?.. {2,3,4,5}?... 如果是这样,插槽之间没有逻辑上的混淆:列表中作为 Select
的第一个参数的每个元素都会被输入一个函数(第二个参数)。以下工作正常:
{1, 2, 3, 4, 5}//选择[#, ((# + 1) > 2) &] &
如果发生冲突,您可以使用 Function[{x,y,...},...]
表示法,而不是槽/& 符号,例如
{1, 2, 3, 4, 5}//选择[#, Function[{x}, (x + 1) > 2]] &
关于wolfram-mathematica - 如何区分mathematica中多级纯函数中的槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4813431/