我想知道在使用APL时是否应该大量使用每个运算符,还是应该尝试为给定问题找到另一种解决方案?
如何在APL中优化此运算符的使用?
答案 0 :(得分:1)
而不是写
之类的东西1 +" 2 x" 3|" (1 2 3) (4 5 6) // sorry, no apl chars
我会写
{1 + 2 x 3 | omega}" (1 2 3) (4 5 6)
或
foo" (1 2 3) (4 5 6)
其中foo包含计算。
换句话说,当组合函数时,避免链接每个操作。 Dyalog DFNs {...}提供了一种很好的方法来实现这一目标。
但最重要的是,我会首先尝试以最自然的方式解决问题,而不考虑是否存在运行速度更快的解决方法。如果解决方案足够好,也就是说,它能够充分发挥作用,您和您的同事将来能够理解它,我会不管它。
答案 1 :(得分:0)
在大多数情况下,每个都不会像不使用每个解决方案的数组解决方案那样具有良好的性能,但有时它是编写复杂表达式的最简单,最清晰的方法。但是,如果有两种方法可以完成大致相同的清晰度和复杂性的任务,而且一种方法不使用每种方法,我倾向于选择那一种。当然,重要的是仪器和措施。除非这对大量数据起作用,否则很可能无关紧要。上面用于调用长时间运行操作或外部服务的注释是准确的。