現在的Kernel FP已經支持列表語法和操作符語法了。
列表語法為[1,2,3,4,5]。原來是需要寫成list 1 (list 2 (list 3 (list 4 (list 5 empty))))的。不過后面這種寫法仍然是支持的。
操作符可以自定義,凡是僅由“+-*/%<>=!&^|~@#$?”構成,而又不是“|”和“=”的記號都可以視為二元操作符。如果是+、-、*、/、%、<、<=、>、>=、==、!=、^、&&和||的話,優先級跟C++一樣。如果是其他操作符,那么優先級一致而且最低。
因為操作符也是個函數,因此將操作符作為函數使用的時候只需要加一對括號就可以了,不過中間不可以有空格。所以我們就可以定義“+”并寫出下面的代碼:
1 def (+) = iadd
2 def (+) = fadd
3 def (+) = concat
4 def main102 = (+) 1 2
5 def main103 = (+) 1.0 2.0
6 def main104 = (+) "Genius" " Vczh!"
7 def main105 = 1 + 2
8 def main106 = 1.0 + 2.0
9 def main107 = "Genius" + " Vczh!"
下面是執行結果:
1 main102返回值:3
2 main103返回值:3.0
3 main104返回值:"Genius Vczh!"
4 main105返回值:3
5 main106返回值:3.0
6 main107返回值:"Genius Vczh!"
操作符的優先級比函數低,因此sin a + sin b實際上是(sin a)+(sin b)。 于是下面的代碼返回8.0:
1 def main108 = ln (exp 3.0) + ln (exp 5.0)
有了操作符之后,就可以慢慢為IO、Exception等復雜對象建模并且開發語法糖了。
posted on 2008-12-14 08:37
陳梓瀚(vczh) 閱讀(1771)
評論(2) 編輯 收藏 引用 所屬分類:
腳本技術