0
어떻게하면 haskell에서 복잡한 산술 계산을 수행 할 수 있습니까?하스켈에서 복잡한 산술 식
예 :
eval numb(1) = 1
eval (add(numb(1),numb(2))) = 3
eval (add(mult(numb(1),numb(2)),diff(numb(3),numb(4)))) = 1
어떻게하면 haskell에서 복잡한 산술 계산을 수행 할 수 있습니까?하스켈에서 복잡한 산술 식
예 :
eval numb(1) = 1
eval (add(numb(1),numb(2))) = 3
eval (add(mult(numb(1),numb(2)),diff(numb(3),numb(4)))) = 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
와우, 감사 @Daniel 바그너. 내 하루를 구했다. 게다가, 당신은 그렇게 간단한 방법으로 표현했습니다. master haskell이라고 부르는 참조 (링크, 책)가 있습니까? –
@CosmicBadal [태그 정보] (https://stackoverflow.com/tags/haskell/info)의 끝 부분을 살펴보십시오. –