Anonymous user
Priority queue: Difference between revisions
m
→version 1: added/changed comments, indentations, and whitespace.
(Added Elixir) |
m (→version 1: added/changed comments, indentations, and whitespace.) |
||
Line 3,591:
=={{header|REXX}}==
===version 1===
Programming note: this REXX version allows any number (with or without decimals, say, 5.7) for the priority, including negative numbers.
<lang rexx>/*REXX program implements a priority queue; with insert/
say '══════ inserting tasks.'; call .ins 3
call .ins 4
call .ins 5
call .ins 1
call .ins 2
call .ins 6
call .ins 6
say '══════ showing tasks.'; call .show
say '══════ deletes top task.'; say .del()
exit /*stick a fork in it, we're all done. */
/*──────────────────────────────────────────────────────────────────────────────────────*/
.del: procedure expose @. #; parse arg p;
/*──────────────────────────────────────────────────────────────────────────────────────*/
return x /*return the task that was just deleted*/▼
.ins: procedure expose @. #; #=#+1; @.#=arg(1); return # /*entry, P, task.*/▼
/*──────────────────────────────────────────────────────────────────────────────────────*/
▲.ins: procedure expose @. #; #=#+1; @.#=arg(1); return # /*entry,P,task.*/
/*──────────────────────────────────────────────────────────────────────────────────────*/
▲ do j=1 for #; _=@.j; if _=='' then iterate; say _; end
.top: procedure expose @. #; top=; top#=
do j=1 for #; _=word(@.j,1); if _=='' then iterate
|