私はここ数ヶ月Jを使用していますが、なじみのないコードを読むこと(たとえば、自分で書いたものではないこと)は、特に暗黙の中で、言語の最も難しい側面の1つであることがわかりました。しばらくして、私はこの戦略を思いつきました:
1)コードセグメントをWord文書にコピーします
2)(1)から各演算子を取り出し、垂直方向に読み取れるように別々の行に配置します
3)各演算子を語彙ページの口頭での説明に置き換えます
4)J構文から英語の文法への大まかな翻訳を行う
5)翻訳を使用して、概念的に関連するコンポーネントを識別し、それらを改行で区切ります
6)(5)の各コンポーネントが何をすることになっているのかを、わかりやすい英語の散文で説明します。
7)(6)に基づいて、プログラム全体が実行することになっていることの説明を書きます。
8)(1)のコードが(7)の設計コンセプトを表していると言える理由を説明してください。
このプロセスから多くのことを学びますが、特に誰かがこれまでに出会ったことのない概念を使用してプログラムを設計した場合は、かなり困難で時間がかかることがわかります。だから私は疑問に思います:Jコミュニティの他の人々はあいまいなコードを理解するための好きな方法を持っていますか?もしそうなら、これらの方法の長所と短所は何ですか?
編集:
分解する必要がある種類のコードの例は次のとおりです。
binconv =: +/@ ((|.@(2^i.@#@])) * ]) @ ((3&#.)^:_1)
私はこれを自分で書いたので、数値入力を受け取り、それを3進配列として再解釈し、結果を2進数の数値の表現として解釈します。(例:binconv 5 =(3 ^ 1)+ 2 *(3 ^ 0)-> 1 2->(2 ^ 1)+ 2 *(2 ^ 0)= 4.)しかし、これがそれが行うことであると理解することは、重要な演習になるでしょう。