学习 J/K/APL

8

我知道这三个都是相关的,我已经看到很多在Project Euler中用J语言解决问题的答案,也看到一些用K语言的。我想知道的是,你会建议学习哪种语言,并且你会建议从哪里获取学习材料?


1
@Mark:在十六进制查看器中查看编译后的C代码也不太有意义,但是这个混乱背后有一定的逻辑。 - MPelletier
6个回答

8

APL

APL是由Kenneth Iverson创建的原始数组编程语言。它使用非ASCII字符集,因为没有保留字。 英国APL协会 维护了一个最新的解释器列表(包括免费和商业版本),以及下面涵盖的受APL启发的语言的信息。

A+

A+是Arthur Whitney作为APL后续版本创建的。源代码可在GPL下获得,并带有XEmacs扩展。从网站下载。

J

J由Kenneth Iverson和Roger Hui创建,只需要ASCII字符。源代码曾经要花钱购买,但最近已在GPL下发布。从网站下载。

K

K是另一种Arthur Whitney语言,也使用ASCII字符。支持它的公司已经停用了这种语言,但有开源的Kona

Q

建立在K之上,包括类似SQL的查询/连接功能(表是内置容器),该语言建立在处理大量数据的基础上。可以从网站下载非商业许可版本。


至于目前活跃使用的语言,Q在金融领域相当流行,而J在学术界和爱好者中得到了一些支持。这两种语言是目前进行数组编程的最佳选择。


2

2

考虑到各种语言的特性和材料的可用性,我会选择 J 语言。

目前的 J 解释器不是开源的,但语言规范是公开的。因此,如果官方 J 解释器不再免费,一个开源项目可以实现它。

K 看起来已经死了,被 Q 取代。所有的许可证都是专有的,而且解释器似乎更难找到(因为他们正在销售 kdb,而不是 Q)。

我找不到可用的 APL 版本。


我发现 J 是目前最实用的工具。我也为缺乏现代的开源解决方案而懊恼,尤其是因为 J Software 不感兴趣支持我选择的某些平台,但看起来情况可能会改变,因为对这些语言似乎有一种重新关注的趋势。 - Julian Squires

1

1

1

有一个名为NAS2000的免费APL解释器,但我发现它只适用于概念证明。有时候我会得到错误的结果(我曾经在从8K IBM 1130到PC/XT的所有设备上编写过APL程序,有时我认为结果是错误的),而其他时候则非常缓慢。在J中,最好的情况是它运行得像任何东西一样快。我从未使用过K,我尝试在J中解决了大约100个欧拉问题,并且现在才开始真正理解排名。(其中大约有10个是用D完成的,一个是用Lisp完成的,支持计算是用J完成的,还有一个是用整数线性规划包完成的,但当我发现它不会给我正确的答案时,我就放弃了它,转而使用D编码约束条件)。

J本质上是一种数学语言,非常适合大多数欧拉问题,所以只需专注于解决这些问题,需要时查找jsoftware.com网站即可,这是您可以做的最好的事情。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接