close
FUNCTION

Syntax: #FU name value [classname]

這個指令用來建立使用者定義的函式(function)。
name是function的名字,value是設給function的算式。可以使用參數%1到%99來拿到傳給function的參數。

FUNCTION Examples

#FU fact {%if(%1<=1,1,%1*@fact(%eval(%1-1)))}

建立一個使用者定義function,來算階乘。
如果參數小於等於1,回傳1,否則回傳 參數 乘上 參數減1的階乘。
注意:function的參數通常只是展開而不是求值,所以我們需要%eval函式來強迫減1的動作。

#EVAL @fact(5)

依上面的定義將顯示120

#SHOW @fact(5)

依上面的定義將顯示 5*4*3*2*1


===============   紅貓碎碎念  ====================
實用程度: 40% 我沒有在用,可能有用到的時候

不是那麼的好用,常常想到要用這個指令,但每次都是失望而歸。
主要是因為function的內容大致上要由單一回傳值的function組成,對於複雜的算式很難使用,
但通常就是複雜的算式才會想用寫成一個function來簡化,
所以最後還是直接多用幾行算式,把結果存在特定變數裡,目前還沒用到過這個指令。

翻譯時遇到的二個單字,expand跟evaluate,看原文的人可能比較看不懂這二個字,請參考這裡
arrow
arrow
    全站熱搜

    suzin 發表在 痞客邦 留言(0) 人氣()