當您撰寫自定義動詞(函式)時,您應該使用以下約定:
將華氏度轉換為攝氏度。
centigrade =: 3 : 0
t1 =. y - 32
t2 =. t1 * 5
t3 =. t2 % 9
)
或者,我已經看到了這個:
ftoc=:(5 % 9)* (-&*32)
在第一個示例中是否有必要使用3 : 0和y。應該遵循哪些一般準則?
uj5u.com熱心網友回復:
多行定義來自 Primer,旨在展示如何定義多行顯式定義以及它們如何與除錯器一起作業。這不是良好編程實踐的一個例子。
有一點經驗你會寫:
f=: 3 : '9%~5*y-32'
f _40 32 212
_40 0 100
這也可以默認完成(不顯式使用 y)。
g=: 13 : '9%~5*y-32' NB. get tacit from explicit
g
9 %~ 5 * 32 -~ ]
g _40 32 100
_40 0 37.7778
uj5u.com熱心網友回復:
入門中顯示的格式(即縮進)是在終端中用 3 空格縮進定義動詞的結果(與在腳本中的格式相反。以下是定義動詞的多種方法。沒有一個公認的“好風格”。“最佳”方法可能取決于用例和用戶偏好。
“經典”明確
f=: 3 : 0
9 %~ 5 * y -32
)
顯式參考變數。適用于具有多個變數的更長、更復雜的動詞。這里的關鍵符號/原語是連詞:或def。有關其形式的更詳盡串列,請參閱JWiki 頁面。
新手友好的顯式
f=: verb define
9 %~ 5 * y -32
)
與“經典”相同,但具有一些定義的名稱以幫助提高可讀性。
“字串”顯式
f=: 3 : '9 %~ 5 * y - 32'
顯式的單行版本,但如果動詞包含用單引號分隔的字串/文字,則可能會變得丑陋。也不能很好地使用語法高亮器。
默契
f=: (5%9) * -&32
f=: 9 %~ 5 * 32 -~ ] NB. alternative that ignores any left argument
也稱為無點風格,默認動詞不明確參考它們的引數。非常適合帶有一兩個引數的更小、更簡單、定義明確的動詞。在動詞被多次呼叫的情況下可以提高性能,因為它只被決議一次。可能在顯式定義中定義和使用。
直接定義
f=: {{ 9 %~ 5 * y -32 }}
J9.02 中引入了直接定義。它是一種更清晰、更傳統的顯式定義語法,它支持單行顯式定義,可以很好地與語法高亮器配合使用,以及更長、更復雜的帶有嵌入式顯式定義的動詞。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/350623.html
