Family Day update
This commit is contained in:
parent
aac6731f2c
commit
9ad63ea473
2442 changed files with 39761 additions and 8255 deletions
8
Task/Stack/Crystal/stack.crystal
Normal file
8
Task/Stack/Crystal/stack.crystal
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
stack = [] of Int32
|
||||
(1..10).each do |x|
|
||||
stack.push x
|
||||
end
|
||||
|
||||
10.times do
|
||||
puts stack.pop
|
||||
end
|
||||
42
Task/Stack/Ol/stack-1.ol
Normal file
42
Task/Stack/Ol/stack-1.ol
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
(define stack #null)
|
||||
(print "stack is: " stack)
|
||||
(print "is stack empty: " (eq? stack #null))
|
||||
|
||||
(print "* pushing 1")
|
||||
(define stack (cons 1 stack))
|
||||
(print "stack is: " stack)
|
||||
(print "is stack empty: " (eq? stack #null))
|
||||
|
||||
(print "* pushing 2")
|
||||
(define stack (cons 2 stack))
|
||||
(print "stack is: " stack)
|
||||
(print "is stack empty: " (eq? stack #null))
|
||||
|
||||
(print "* pushing 3")
|
||||
(define stack (cons 3 stack))
|
||||
(print "stack is: " stack)
|
||||
(print "is stack empty: " (eq? stack #null))
|
||||
|
||||
(print "* poping")
|
||||
(define-values (value stack) (uncons stack #f))
|
||||
(print "value: " value)
|
||||
(print "stack: " stack)
|
||||
(print "is stack empty: " (eq? stack #null))
|
||||
|
||||
(print "* poping")
|
||||
(define-values (value stack) (uncons stack #f))
|
||||
(print "value: " value)
|
||||
(print "stack: " stack)
|
||||
(print "is stack empty: " (eq? stack #null))
|
||||
|
||||
(print "* poping")
|
||||
(define-values (value stack) (uncons stack #f))
|
||||
(print "value: " value)
|
||||
(print "stack: " stack)
|
||||
(print "is stack empty: " (eq? stack #null))
|
||||
|
||||
(print "* poping")
|
||||
(define-values (value stack) (uncons stack #f))
|
||||
(print "value: " value)
|
||||
(print "stack: " stack)
|
||||
(print "is stack empty: " (eq? stack #null))
|
||||
37
Task/Stack/Ol/stack-2.ol
Normal file
37
Task/Stack/Ol/stack-2.ol
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
(fork-server 'stack (lambda ()
|
||||
(let this ((me '()))
|
||||
(let*((envelope (wait-mail))
|
||||
(sender msg envelope))
|
||||
(case msg
|
||||
(['empty]
|
||||
(mail sender (null? me))
|
||||
(this me))
|
||||
(['push value]
|
||||
(this (cons value me)))
|
||||
(['pop]
|
||||
(cond
|
||||
((null? me)
|
||||
(mail sender #false)
|
||||
(this me))
|
||||
(else
|
||||
(mail sender (car me))
|
||||
(this (cdr me))))))))))
|
||||
(define (push value)
|
||||
(mail 'stack ['push value]))
|
||||
(define (pop)
|
||||
(interact 'stack ['pop]))
|
||||
(define (empty)
|
||||
(interact 'stack ['empty]))
|
||||
|
||||
(for-each (lambda (n)
|
||||
(print "pushing " n)
|
||||
(push n))
|
||||
(iota 5 1)) ; '(1 2 3 4 5)
|
||||
|
||||
(let loop ()
|
||||
(print "is stack empty: " (empty))
|
||||
(unless (empty)
|
||||
(begin
|
||||
(print "popping value, got " (pop))
|
||||
(loop))))
|
||||
(print "done.")
|
||||
6
Task/Stack/Pike/stack.pike
Normal file
6
Task/Stack/Pike/stack.pike
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
object s = ADT.Stack();
|
||||
s->push("a");
|
||||
s->push("b");
|
||||
write("top: %O, pop1: %O, pop2: %O\n",
|
||||
s->top(), s->pop(), s->pop());
|
||||
s->reset(); // Empty the stack
|
||||
Loading…
Add table
Add a link
Reference in a new issue