2017-11-16 7 views
0

どのように私はハズケルで複素数演算を行うことができますか?ハスケルでの複素数演算式

例:ほとんどちょうどそのような、いくつかのわずかな構文の調整と

eval numb(1) = 1 
eval (add(numb(1),numb(2))) = 3 
eval (add(mult(numb(1),numb(2)),diff(numb(3),numb(4)))) = 1 

答えて

1

あなたはGHCの言語を話しているようにします。 GHCiの中

data Expr = Numb Int | Add Expr Expr | Diff Expr Expr | Mult Expr Expr 

eval :: Expr -> Int 
eval (Numb x) = x 
eval (Add e e') = eval e + eval e' 
eval (Diff e e') = eval e - eval e' 
eval (Mult e e') = eval e * eval e' 

> eval (Numb 1) 
1 
> eval (Add (Numb 1) (Numb 2)) 
3 
> eval (Add (Mult (Numb 1) (Numb 2)) (Diff (Numb 3) (Numb 4))) 
1 
+0

うわー、おかげ@Danielワーグナー。私の日を救った。さらに、あなたはそのような簡単な方法で表現しました。あなたがmaster haskellを参照する参照(リンク、書籍)はありますか? –

+1

@CosmicBadal [タグ情報](https://stackoverflow.com/tags/haskell/info)の最後を見てください。 –

関連する問題