私はAPL(コナ)を学ぼうとしています。経験豊富なAPL担当者が自分のコードをどのように整理するかを理解できるように、プロジェクトの例を探しています。
どんなオープンソースプロジェクトも役に立ちますが、非財務的なものや重い数学が欠けているものは素晴らしいでしょう。
私はAPL(コナ)を学ぼうとしています。経験豊富なAPL担当者が自分のコードをどのように整理するかを理解できるように、プロジェクトの例を探しています。
どんなオープンソースプロジェクトも役に立ちますが、非財務的なものや重い数学が欠けているものは素晴らしいでしょう。
私も探していましたが、まだ見つかりませんでした。APLは非常に古い言語です。それは完全にオープンソース運動全体よりも前のものです。同じように古いLisp(その歴史には多くのAIラボ研究とオープンコラボレーションの精神が含まれています)とは異なり、APLの文化は歴史的にIBM、商用タイムシェアリングシステム、および金融に関連付けられてきました。しかし、ケビンと私はコナでこれを変えようとしています。
悪臭を放つループがない場合は、かなりの量のkコードがあります。ただし、その一部は、コナが対象としているものとは異なるバージョンのk用に作成されています。HakanKjellerstrandにも優れた Kページがあります。
素晴らしいAPL/J / K/Qの本もいくつかあります。特に、KennethIversonのAProgramming Language、 HenryRichのJfor C Programmers、JeffryBorrorのQfor Mortals(QはKxのKの最新バージョン)、Gilman&RoseのAPL:InteractiveApproachをお勧めします。最後を除くすべては、オンラインですぐに利用できます。
多くの人がAPLをプログラミング自体ではなく数学ツール(R、mathematica、gnuplotなど)として使用していることに注意してください。(IMHO、Jはそのために最適です。)Kは、より汎用的なプログラミング言語として設計されており、APL、Lisp、およびCの合成のように感じます。ただし、言語族の外れ値です。
これを読むと、Konaが「Kプログラミング言語(K3.2)のオープンソース実装」であることがわかります。残念ながら、Kプログラミング言語の作成者のホームページにアクセスして製品の下を見ると、Kがサポートされていないように見えることがわかります。
また、APLとKの両方のウィキペディアの記事を見ると、構文は非常に複雑なようです(たとえば、x @>#:'xは、文字列のリストを長さで並べ替えるために使用されます)。アセンブラー(nasmを介して;最も人気のあるアセンブラーの1つ)、C ++、C、そしておそらくAPLやKではなくPython(どちらもサポートされておらず未使用のようです)を学ぶことをお勧めします。