Queue/Usage: Difference between revisions

Add source for Rust
m (→‎{{header|Raku}}: .perl not needed)
(Add source for Rust)
Line 169:
 
<lang arturo>Queue #{
list #()
 
push {
list list+&
}
 
pop {
if $(empty) {
panic "trying to pop from an empty queue!"
}
}
 
first_item $(first list)
list $(deleteBy list 0)
return first_item
}
 
empty {
$(size list)=0
}
 
inspect {
log this
}
}
 
Line 208:
 
<pre>#{
empty <function: 0x1093917A0>
inspect <function: 0x109391800>
list #(
"one"
"two"
"three"
)
pop <function: 0x109391740>
push <function: 0x1093916E0>
}
popped = one
Line 576:
MODULE UseQueue;
IMPORT
Queue,
Boxes,
StdLog;
PROCEDURE Do*;
VAR
q: Queue.Instance;
b: Boxes.Box;
BEGIN
q := Queue.New(10);
q.Push(Boxes.NewInteger(1));
q.Push(Boxes.NewInteger(2));
q.Push(Boxes.NewInteger(3));
b := q.Pop();
b := q.Pop();
q.Push(Boxes.NewInteger(4));
b := q.Pop();
b := q.Pop();
StdLog.String("Is empty:> ");StdLog.Bool(q.IsEmpty());StdLog.Ln
END Do;
END UseQueue.
Line 980:
: ?full ( q -- ) cnt=msk? abort" queue is full" ;
: 1+! ( adr -- ) 1 swap +! ; \ increment contents of adr
: 1-! ( adr -- ) -1 swap +! ; \ decrement contents of adr
 
: qc@ ( queue -- char ) \ fetch next char in queue
Line 2,358:
=={{header|Ruby}}==
Sample usage at [[FIFO#Ruby]]
 
=={{header|Rust}}==
<lang rust>use std::collections::VecDeque;
 
fn main() {
let mut queue = VecDeque::new();
queue.push_back("Hello");
queue.push_back("World");
while let Some(item) = queue.pop_front() {
println!("{}", item);
}
 
if queue.is_empty() {
println!("Yes, it is empty!");
}
}
</lang>
 
=={{header|Scala}}==
Anonymous user