0
我正在編寫一個基本的Haskell解釋器,並且有以下用例: 有2個變量,var1和var2。檢查Haskell腳本中的變量的類型
if((typeOf var1 is Integer) and (typeOf var2 is Integer)) then var1 + var2;
if((typeOf var1 is String) and (typeOf var2 is String)) then concatenate var1 to var2;
如何在Haskell中編寫它?
有代碼的一部分:
evaluate:: Expr -> Env -> Val
evaluate expr env =
trace("expr= " ++ (show expr) ++ "\n env= " ++ (show env)) $
case expr of
Const v -> v
lhs :+: rhs ->
let valLhs = evaluate lhs env
valRhs = evaluate rhs env
in case() of
_ | <both are Integer> ->(IntVal $ (valToInteger valLhs) + (valToInteger valRhs))
| <both are String> -> (StringVal $ (valToString valLhs) ++ (valToString valRhs))
| otherwise....
什麼是'Expr','Env'和'Val'? – bheklilr
您正在使用大量退款括號。 –