From 7c9ea764eafa374145bd2fb09b48cb390388e291 Mon Sep 17 00:00:00 2001 From: sforman Date: Sat, 29 Jul 2023 10:09:40 -0700 Subject: [PATCH] swap --- implementations/Elm/src/Joy.elm | 11 +++++++++++ 1 file changed, 11 insertions(+) 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 -- 2.11.0