diff --git a/implementations/Elm/src/Joy.elm b/implementations/Elm/src/Joy.elm index 41982f0..e355054 100644 --- a/implementations/Elm/src/Joy.elm +++ b/implementations/Elm/src/Joy.elm @@ -34,6 +34,7 @@ joy stack expression = joy_eval : String -> JList -> JList -> Result String (JList, JList) joy_eval symbol stack expression = 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 @@ -56,6 +57,13 @@ joy_eval symbol stack expression = _ -> 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 op stack expression = case pop_int(stack) of