tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
33
Task/Queue-Definition/REBOL/queue-definition.rebol
Normal file
33
Task/Queue-Definition/REBOL/queue-definition.rebol
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
rebol [
|
||||
Title: "FIFO"
|
||||
Author: oofoe
|
||||
Date: 2009-12-11
|
||||
URL: http://rosettacode.org/wiki/FIFO
|
||||
]
|
||||
|
||||
; Define fifo class:
|
||||
|
||||
fifo: make object! [
|
||||
queue: copy []
|
||||
push: func [x][append queue x]
|
||||
pop: func [/local x][ ; Make 'x' local so it won't pollute global namespace.
|
||||
if empty [return none]
|
||||
x: first queue remove queue x]
|
||||
empty: does [empty? queue]
|
||||
]
|
||||
|
||||
; Create and populate a FIFO:
|
||||
|
||||
q: make fifo []
|
||||
q/push 'a
|
||||
q/push 2
|
||||
q/push USD$12.34 ; Did I mention that REBOL has 'money!' datatype?
|
||||
q/push [Athos Porthos Aramis] ; List elements pushed on one by one.
|
||||
q/push [[Huey Dewey Lewey]] ; This list is preserved as a list.
|
||||
|
||||
; Dump it out, with narrative:
|
||||
|
||||
print rejoin ["Queue is " either q/empty [""]["not "] "empty."]
|
||||
while [not q/empty][print [" " q/pop]]
|
||||
print rejoin ["Queue is " either q/empty [""]["not "] "empty."]
|
||||
print ["Trying to pop an empty queue yields:" q/pop]
|
||||
Loading…
Add table
Add a link
Reference in a new issue