From: sforman Date: Sat, 29 Jul 2023 17:09:40 +0000 (-0700) Subject: swap X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=7c9ea764eafa374145bd2fb09b48cb390388e291;p=joypy%2FThun.git swap --- diff --git a/implementations/Elm/src/Joy.elm b/implementations/Elm/src/Joy.elm index 91a4340..96625d2 100644 --- a/implementations/Elm/src/Joy.elm +++ b/implementations/Elm/src/Joy.elm @@ -51,6 +51,7 @@ joy_eval symbol stack expression = "rest" -> joy_rest stack expression "stack" -> joy_stack stack expression "swaack" -> joy_swaack stack expression + "swap" -> joy_swap stack expression _ -> Err ("Unknown word: " ++ symbol) @@ -132,6 +133,16 @@ joy_swaack stack expression = Err msg -> Err msg +joy_swap : JList -> JList -> Result String (JList, JList) +joy_swap stack expression = + case pop_any(stack) of + Ok (a, s0) -> + case pop_any(s0) of + Ok (b, s1) -> Ok ((b :: a :: s1), expression) + Err msg -> Err msg + Err msg -> Err msg + + push_int : Int -> JList -> JList push_int i stack = (JoyInt i) :: stack