This commit is contained in:
sforman 2023-07-29 10:09:40 -07:00
parent fcdf916013
commit 7c9ea764ea
1 changed files with 11 additions and 0 deletions

View File

@ -51,6 +51,7 @@ joy_eval symbol stack expression =
"rest" -> joy_rest stack expression "rest" -> joy_rest stack expression
"stack" -> joy_stack stack expression "stack" -> joy_stack stack expression
"swaack" -> joy_swaack stack expression "swaack" -> joy_swaack stack expression
"swap" -> joy_swap stack expression
_ -> Err ("Unknown word: " ++ symbol) _ -> Err ("Unknown word: " ++ symbol)
@ -132,6 +133,16 @@ joy_swaack stack expression =
Err msg -> Err msg 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 : Int -> JList -> JList
push_int i stack = (JoyInt i) :: stack push_int i stack = (JoyInt i) :: stack