Data update
This commit is contained in:
parent
8e4e15fa56
commit
72eb4943cb
1853 changed files with 35514 additions and 9441 deletions
35
Task/Abstract-type/Arturo/abstract-type.arturo
Normal file
35
Task/Abstract-type/Arturo/abstract-type.arturo
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
define :queue [
|
||||
init: method [][
|
||||
\items: []
|
||||
]
|
||||
|
||||
enqueue: method [item][
|
||||
panic "enqueue must be implemented by concrete type"
|
||||
]
|
||||
|
||||
dequeue: method [][
|
||||
panic "dequeue must be implemented by concrete type"
|
||||
]
|
||||
]
|
||||
|
||||
define :simpleQueue is :queue [
|
||||
enqueue: method [item][
|
||||
\items: \items ++ item
|
||||
]
|
||||
|
||||
dequeue: method [][
|
||||
if empty? \items -> return null
|
||||
ret: first \items
|
||||
\items: drop \items
|
||||
return ret
|
||||
]
|
||||
]
|
||||
|
||||
q: to :simpleQueue []!
|
||||
|
||||
q\enqueue "first"
|
||||
q\enqueue "second"
|
||||
|
||||
print q\dequeue
|
||||
print q\dequeue
|
||||
print q\dequeue
|
||||
Loading…
Add table
Add a link
Reference in a new issue