RosettaCodeData/Task/Stack/ArkScript/stack.ark
2026-04-30 12:34:36 -04:00

26 lines
526 B
Text

(let stack (fun () {
(mut data [])
(let push (fun (value) (set data (concat [value] data))))
(let popTop (fun () {
(let res (head data))
(pop! data 0)
res }))
(let isEmpty? (fun () (empty? data)))
(fun (&data &push &popTop &isEmpty?) ()) }))
(let myStack (stack))
(myStack.push 1)
(myStack.push 2)
(myStack.push 3)
(print myStack.data)
(print "top: " (myStack.popTop))
(print myStack.data)
(print "empty: " (myStack.isEmpty?))
(myStack.popTop)
(myStack.popTop)
(print "empty: " (myStack.isEmpty?))