From: sforman Date: Sat, 29 Jul 2023 16:17:27 +0000 (-0700) Subject: cons X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=eb8b282bc24cd6331b94af72972d135095af7890;p=joypy%2FThun.git cons --- diff --git a/implementations/Elm/src/Joy.elm b/implementations/Elm/src/Joy.elm index cdb3829..da79796 100644 --- a/implementations/Elm/src/Joy.elm +++ b/implementations/Elm/src/Joy.elm @@ -44,6 +44,7 @@ joy_eval symbol stack expression = "xor" -> joy_binary_math_op (Bitwise.xor) stack expression "clear" -> Ok ([], expression) "concat" -> joy_concat stack expression + "cons" -> joy_cons stack expression _ -> Err ("Unknown word: " ++ symbol) @@ -68,6 +69,17 @@ joy_concat stack expression = Err msg -> Err msg +joy_cons : JList -> JList -> Result String (JList, JList) +joy_cons stack expression = + case pop_list(stack) of + Ok (a, s0) -> + case pop_any(s0) of + Ok (b, s1) -> + Ok ((push_list (b :: a) s1), expression) + Err msg -> Err msg + Err msg -> Err msg + + push_int : Int -> JList -> JList push_int i stack = (JoyInt i) :: stack