============= 型別 ============= 簡單型別 ============= 數字 ------------- * `int`:整數,初期可用 64 位元帶符號整數處理。 * `dou`:雙精度浮點數 字串 ------------- * `str`:字串 暫不支援 `char`。 布林 ------------ * `bool`:布林值。#t:真值,#f:假值。 複雜型別 ============ 自訂型別 ------------ 可以自訂 product type 或 sum type。為求簡化,不支援型別當參數。 .. function :: (Type TYPE-NAME (Type-constronctor x1 x2 ...)) .. function :: (Type TYPE-NAME (U (Type-const1 x1 x2 ...)(Type-const2 x1 x2 ...)...)) .. function :: (Type TYPE-NAME (Type-constronctor)) .. function :: (Type TYPE-NAME (U (Type-const1)(Type-const2)...)) U 是 union 的意思,指 Sum Type。 例如: :: (Type IntPair (IntPair Int Int)) 如果可以模式匹配,就變這樣: :: (\ ((IntPair x)) (match (x) ((IntPair 7 9) 9) ((IntPair 8 a) a) ((IntPair x y) (+ x y)))) Sum Type 的用法: (Type OrigColor (U (Red)(Green)(Blue))) ; 三原色 如果可以模式匹配,就變這樣: :: (orig-color-to-str ((OrigColor x)) (match (x) ((Red) "Red") ((Green) "Green") ((Blue) "Blue")))