我已經使用J了幾個月了,我發現閱讀不熟悉的代碼(例如,我沒有寫自己)是該語言最具挑戰性的方面之一,特別是當它默默無聞。過了一會兒,我想出了這個策略:閱讀J代碼的最佳策略
1)代碼段複製到word文檔
2)取從(1)每個操作員,並將其放置在單獨的行,以便讀取垂直
3)更換各運營商,在詞彙頁面
4)不要自J語法粗略翻譯成英語語法
5)它的文字描述使用翻譯,以確定概念相關的組件和與換行
6)收件的什麼從(5)假定每個組件做一個描述它們分開,用簡單的英語散文
7)收件的什麼整個程序是應該做的說明,基於(6)
8)寫一個解釋爲什麼從(1)的代碼可以說代表從(7)的設計概念。
儘管我從這個過程中學到了很多東西,但我覺得它很費時費力 - 尤其是如果有人使用我以前從未遇到過的概念設計他們的程序。所以我想知道:J社區中的其他人有最喜歡的方式來找出隱藏的代碼?如果是這樣,這些方法的優點和缺點是什麼?
編輯:
排序的代碼,我需要打破的一個例子是:
binconv =: +/@ ((|[email protected](2^[email protected]#@])) * ]) @ ((3&#.)^:_1)
我寫了這一個我自己,所以我碰巧知道,它需要一個數值輸入,將其重新解釋爲三元數組,並將結果解釋爲基數爲2的數字的表示,並且至多有一次重複。 (例如,binconv 5 =(3^1)+ 2 *(3^0) - > 1 2 - >(2^1)+ 2 *(2^0)= 4。)但是如果我沒有偶然發現它任何以前的歷史或文檔,搞清楚這是它的一個非平凡的練習。
有趣。我以前從來沒有明確地將事情按照詞類分解 - 通常我的思維停留在結構與物質操作者的層面上,至少在我解釋J練習中的默示動詞時,或者試圖羅傑輝在撰寫他的歐拉項目解決方案時想到了什麼。 – estanford 2010-05-05 22:43:42