This commit is contained in:
parent
99a5fd93b1
commit
9c381f0e8f
|
|
@ -34,6 +34,7 @@ joy stack expression =
|
||||||
joy_eval : String -> JList -> JList -> Result String (JList, JList)
|
joy_eval : String -> JList -> JList -> Result String (JList, JList)
|
||||||
joy_eval symbol stack expression =
|
joy_eval symbol stack expression =
|
||||||
case symbol of
|
case symbol of
|
||||||
|
"i" -> joy_i stack expression
|
||||||
"+" -> joy_binary_math_op (+) stack expression
|
"+" -> joy_binary_math_op (+) stack expression
|
||||||
"-" -> joy_binary_math_op (-) stack expression
|
"-" -> joy_binary_math_op (-) stack expression
|
||||||
"*" -> joy_binary_math_op (*) stack expression
|
"*" -> joy_binary_math_op (*) stack expression
|
||||||
|
|
@ -56,6 +57,13 @@ joy_eval symbol stack expression =
|
||||||
_ -> Err ("Unknown word: " ++ symbol)
|
_ -> Err ("Unknown word: " ++ symbol)
|
||||||
|
|
||||||
|
|
||||||
|
joy_i : JList -> JList -> Result String (JList, JList)
|
||||||
|
joy_i stack expression =
|
||||||
|
case pop_list(stack) of
|
||||||
|
Ok (a, s0) -> Ok (s0, a ++ expression)
|
||||||
|
Err msg -> Err msg
|
||||||
|
|
||||||
|
|
||||||
joy_binary_math_op : (Int -> Int -> Int) -> JList -> JList -> Result String (JList, JList)
|
joy_binary_math_op : (Int -> Int -> Int) -> JList -> JList -> Result String (JList, JList)
|
||||||
joy_binary_math_op op stack expression =
|
joy_binary_math_op op stack expression =
|
||||||
case pop_int(stack) of
|
case pop_int(stack) of
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue