在APL中,单行是否更喜欢传统的变量大码?

Chr*_*ang 3 apl

来自Java和Python的程序员,优雅而强大的APL解决问题解决方案的语法常常令人困惑.我写的代码看起来同样令人生畏,但我更倾向于使用具有良好变量名的变量块来理解.哪个是更受欢迎的发展过程?即使计算是相同的(尽管由于变量导致更多的内存使用),是否存在更多代码行的缺点.

Pau*_*our 6

不,不是我,如果你重视稳定性,清晰度,甚至效率,那就不是了(一个衬里实际上效率很低.)拥有更多线条和更少冗长的单线并没有任何缺点.

问题当然取决于什么是单线?在APL中可以用很短的单行程来完成,这可能需要传统语言中的许多行.在一行代码中表达单个概念没有错.例如,通过打破用于将字符串中的前导空格删除到其组成部分的表达式(除了可能在介绍性教室中),几乎没有什么可获得的:

(?\' '?a)/a 
Run Code Online (Sandbox Code Playgroud)

但就像英语一样,一个句子可能会变得太长,即使它在语法上是正确的,也可以通过将它分成更小的部分来改进.

换句话说,短单线是好的.长单行很糟糕.显然,两者之间的区别在于艺术而不是科学,也是品味问题.

我认为展示正确平衡的代码的一个很好的例子是Dyalog APL 的dfns集合.