我来自 C、Fortran、Python、R、Matlab 和一些 Lisp 的背景 - 我已经阅读了一些关于 Haskell 的内容。在 J 或来自 APL 家族的其他语言中,有哪些巧妙的想法/示例是独一无二的,并且没有以更常见的语言实现?我总是有兴趣找出我错过的东西......
最佳答案
J 有一组非常大的运算符,可以轻松地编写复杂的程序,而无需寻找库。它具有极其强大的数组处理能力,以及使显式控制结构与大多数用途无关的迭代构造——如此之多以至于我更喜欢使用张量代数来声明显式循环,因为它更方便。 J 在解释器中运行,但一个好的 J 脚本可以和用编译器语言编写的程序一样快。 (当您取出显式循环时,解释器不必在每次执行时编译循环的内容。)
J 的另一个有趣功能是默认编程。您可以在不显式引用输入变量的情况下构建脚本,这让您可以纯粹根据您打算做什么来表达想法。例如,我可以将平均函数定义为“将列表中的项相加并将它们除以列表中的条目数”,如下所示:(+/ % #)
或者我可以制作一个脚本,将其切成二维数组并只返回平均值大于 10 的行的平均值:(10&<#])(+/%#)"1
你可以用 J 做很多其他的事情;它是一种可执行的数学符号形式。想法很容易概括,因此您可以从学习语言工作方式的任何一个方面中获得很多好处。
关于tacit-programming - J 有哪些独特之处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3217976/