参考资料

https://xpqz.github.io/learnapl/intro.html
https://en.wikipedia.org/wiki/APL_(programming_language)
https://tryapl.org/

介绍

APL是一个Array Language,wiki上说又这样的思想的语言主要有 APL, J, Fortran 90, MATLAB, Analytica, Octave, R, Cilk Plus, Julia, Perl Data Language (PDL)。这些语言在我平常生活中很少用到,但是在模拟、数据处理的等方面又很大的用处(例如R)

APL的特色

APL最大的特色可能就是那难以阅读的符号了。在APL语言出现的时候,想要写APL代码可能需要去购买特制的键盘来辅助打出符号(见Wiki中的附图)

开始编写代码

首先我们先写一个Hello World吧

'Hello World'

就这么简单 那还是快点步入正题吧,先来点标量四则运算

1+1 ⍝<-这个符号代表注释
⍝2  
3-2 
⍝1 
5×6 ⍝<-你没有眼花,这不是*,也不是x,这就是个乘号 
⍝30 
6÷3 ⍝这里也确实是个除号 
⍝2

使用大量的特殊符号确实有些让人讨厌,例如打出注释符号时我还必须要特地复制粘贴一个。当然了,四则运算是相当简单的,接下来点复杂的。

1 2 3 + 4 5 6 ⍝ 每个量分别运算
⍝5 7 9
10*2 ⍝ 这个是power符号,和我们常用的^并不一样
⍝100
2⍟128 ⍝这是log
⍝7
⍝*和⍟如果前面没有指定的的数(就像上面的10和2)则默认为exp和ln

⌈ 这是ceilling
⌊ 这是floor
参见https://en.wikipedia.org/wiki/Floor_and_ceiling_functions

1 5 10 ⌈ 3
⍝3 5 10 就是输出较大的那个
1 5 10 ⌊ 3 6 7
⍝1 5 7 就是输出较小的那个,但在这种用法下两边必须等长
a ← 2×3+1
⎕ ← a
⍝8

APL是严格的从右往左的语言,在不加括号的情况下所有运算又是从右向左的。
最后的⎕符号是输出符号

总结

APL这个语言还是只适合浅尝,不然太难啃了,可以去上面的资料中继续学习。


金金金金金金金,钱钱钱钱钱钱钱,芜~