Can you summarize the following document?
        
  在許多應用場合下(數學、科學、工程技術、電腦設計、機器人、資料顯示、保險技術、傳統的資料處理等等),APL是一種非常有力的、表達豐富的和簡明的程式語言。它一般被用在一個與使用者介面的環境中。它最初的設計目的是將數學公式寫成一種電腦可以理解的方式。學它一般很容易,但要分析 APL 寫成的程式往往需要一段時間。與傳統的結構式程式語言不同的是,APL 的程式一般由一系列使用在序列上的單元的或雙元的函式或運算子號組成。由於APL擁有許多非標準的運算子號,這些符號之間沒有優先性(比如一般數學中的乘號、除號較加號、減號有優先權,APL中沒有這樣的優先權)。最初的APL語言沒有任何控制結構如迴圈(do-while)或者條件選擇(if-then-else),但一些序列運算子號可以用來模擬程式設計結構,比如iota(用來獲得一個從1至N的序列)可以用來模擬迴圈(for)。  APL 的工作環境被稱為工作場。在這個工作場內使用者可以定義程式和資料。資料也可以在工作場在程式外存在。使用者可以在程式外改變資料,比如:  將一個系列的資料4、5、6、7授予N。  輸出8、9、10、11。  輸出N內所有數的和,即22。  使用者可以將工作場連同其中的所有資料和程式儲存起來。在任何情況下,這些程式不是編譯執行,而是解釋執行的。  APL 最著名的就是它使用一組非ASCII符號。這些符號比一般常見的代數和計算符號要多。有人開玩笑說,用兩行這樣的奇形怪狀的符號就可以將所有航空控制的問題解決了。事實上,在一些APL版本中,用一行程式就可以將任何可計算的函式表達出來。在用一行你可以將這個函式的結構表達出來。由於它的精密的結構和非標準的符號,也有人將APL稱為“只寫語言”。除數學家外,其他人要讀APL寫的程式都感到非常困難。有些數學家覺得其它語言比APL難懂。由於APL使用不尋常的符號,許多程式設計員在寫APL程式時使用專門的APL鍵盤。今天也有不同的只使用ASCII字母寫APL的方法。  艾佛森後來還設計了一個APL的後續,稱為J語言,這個語言只使用ASCII符號。至今為止只有一種J語言。一些其它語言也提供類似APL的功能。A+是一種開源的程式語言,其許多指令與APL相同。  下面這個例子排列一個存在X裡的詞的序列,排列標準是每個詞的長度:  下面是一個尋找所有1和R之間的質數的例子:  下面是這個程式的讀法(從右向左):  以下是Perl語言的相應程式:  以下是J語言的相應程式:

  從一開始就有人批評APL使用一套特別的、非標準的字母表。學過APL的人一般很喜歡這些特別的符號,這說明當時艾佛森選擇這些符號時是有一定的用意的。Unicode包含這些字母,Unicode被引入後,要尋找特別的字型的問題開始有所減緩。雖然如此依然有人批評當初APL設計時所選擇的特殊的符號。這些專門為APL設計的鍵盤無論如何不會非常普及。

  GNU APL是一個免費的APL實現,它可以執行在Linux,Windows還有Mac OS X系統上。
APL 是 A Programming Language 或 Array Processing Language 的縮寫。肯尼斯·艾佛森在1962年設計這個語言時他正在哈佛大學工作,1979年他因對數學表示式和程式語言理論的貢獻而得到圖靈獎。在過去數十年的使用歷史中,APL 從它的原始版本開始不斷改變和發展,今天的版本與1963年發表時的版本已經非常不一樣了。但它始終是一種解釋執行的計算機語言。現代的 APL 版本支援其初始版本不支援的結構和模式程式設計。APL 至今依然使用一種非標準化的字母表,這一直是他人對 APL 的批評。