Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:23
erlang
6991-queue-add-examples.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 6991-queue-add-examples.patch of Package erlang
From 7a5d27ddfc1a5b8f50926842dd2314ac8b5731ec Mon Sep 17 00:00:00 2001 From: Kiko Fernandez-Reyes <kiko@erlang.org> Date: Tue, 21 Mar 2023 10:58:13 +0100 Subject: [PATCH] queue: add examples --- lib/stdlib/doc/src/queue.xml | 201 +++++++++++++++++++++++++++++++++-- 1 file changed, 195 insertions(+), 6 deletions(-) diff --git a/lib/stdlib/doc/src/queue.xml b/lib/stdlib/doc/src/queue.xml index 2e6f424a84..b5fe0dc512 100644 --- a/lib/stdlib/doc/src/queue.xml +++ b/lib/stdlib/doc/src/queue.xml @@ -44,7 +44,6 @@ not lists. Improper lists cause internal crashes. An index out of range for a queue also causes a failure with reason <c>badarg</c>.</p> - <p>Some functions, where noted, fail with reason <c>empty</c> for an empty queue.</p> @@ -89,7 +88,7 @@ are reverse operations on the queue.</p> <p>This module has three sets of interface functions: the - "Original API", the "Extended API", and the "Okasaki API".</p> + <em>"Original API"</em>, the <em>"Extended API"</em>, and the <em>"Okasaki API"</em>.</p> <p>The "Original API" and the "Extended API" both use the mental picture of a waiting line of items. Both @@ -133,6 +132,13 @@ <p>Returns <c>true</c> if <c><anno>Pred</anno>(<anno>Item</anno>)</c> returns <c>true</c> for all items <c><anno>Item</anno></c> in <c><anno>Q</anno></c>, otherwise <c>false</c>.</p> + <p><em>Example:</em></p> + <pre> +1> <input>Queue = queue:from_list([1,2,3,4,5]).</input> +2> <input>queue:all(fun (E) -> E > 3 end, Queue).</input> +false +3> <input>queue:all(fun (E) -> E > 0 end, Queue).</input> +true</pre> </desc> </func> @@ -144,6 +150,13 @@ <p>Returns <c>true</c> if <c><anno>Pred</anno>(<anno>Item</anno>)</c> returns <c>true</c> for at least one item <c><anno>Item</anno></c> in <c><anno>Q</anno></c>, otherwise <c>false</c>.</p> + <p><em>Example:</em></p> + <pre> +1> <input>Queue = queue:from_list([1,2,3,4,5]).</input> +2> <input>queue:any(fun (E) -> E > 10 end, Queue).</input> +false +3> <input>queue:any(fun (E) -> E > 3 end, Queue).</input> +true</pre> </desc> </func> @@ -154,6 +167,12 @@ <p>Returns a copy of <c><anno>Q1</anno></c> where the first item matching <c><anno>Item</anno></c> is deleted, if there is such an item.</p> + <p><em>Example:</em></p> + <pre> +1> <input>Queue = queue:from_list([1,2,3,4,5]).</input> +2> <input>Queue1 = queue:delete(3, Queue).</input> +3> <input>queue:member(3, Queue1).</input> +false</pre> </desc> </func> @@ -164,6 +183,12 @@ <p>Returns a copy of <c><anno>Q1</anno></c> where the last item matching <c><anno>Item</anno></c> is deleted, if there is such an item.</p> + <p><em>Example:</em></p> + <pre> +1> <input>Queue = queue:from_list([1,2,3,4,3,5]).</input> +2> <input>Queue1 = queue:delete_r(3, Queue).</input> +3> <input>queue:to_list(Queue1).</input> +[1,2,3,4,5]</pre> </desc> </func> @@ -175,6 +200,12 @@ <p>Returns a copy of <c><anno>Q1</anno></c> where the first item for which <c><anno>Pred</anno></c> returns <c>true</c> is deleted, if there is such an item.</p> + <p><em>Example:</em></p> + <pre> +1> <input>Queue = queue:from_list([100,1,2,3,4,5]).</input> +2> <input>Queue1 = queue:delete_with(fun (E) -> E > 0, Queue).</input> +3> <input>queue:to_list(Queue1).</input> +[1,2,3,4,5]</pre> </desc> </func> @@ -186,6 +217,12 @@ <p>Returns a copy of <c><anno>Q1</anno></c> where the last item for which <c><anno>Pred</anno></c> returns <c>true</c> is deleted, if there is such an item.</p> + <p><em>Example:</em></p> + <pre> +1> <input>Queue = queue:from_list([1,2,3,4,5,100]).</input> +2> <input>Queue1 = queue:delete_with(fun (E) -> E > 10, Queue).</input> +3> <input>queue:to_list(Queue1).</input> +[1,2,3,4,5]</pre> </desc> </func> @@ -201,12 +238,28 @@ <c><anno>Item</anno></c> is not copied. If it returns a list, the list elements are inserted instead of <c>Item</c> in the result queue.</p> + <p><em>Example 1:</em></p> + <pre> +1> <input>Queue = queue:from_list([1,2,3,4,5]).</input> +{[5,4,3],[1,2]} +2> <input>Queue1 = queue:filter(fun (E) -> E > 2 end, Queue).</input> +{[5],[3,4]} +3> <input>queue:to_list(Queue1).</input> +[3,4,5]</pre> <p>So, <c><anno>Fun</anno>(<anno>Item</anno>)</c> returning <c>[<anno>Item</anno>]</c> is thereby semantically equivalent to returning <c>true</c>, just as returning <c>[]</c> is semantically equivalent to returning <c>false</c>. But returning a list builds more garbage than returning an atom.</p> + <p><em>Example 2:</em></p> + <pre> +1> <input>Queue = queue:from_list([1,2,3,4,5]).</input> +{[5,4,3],[1,2]} +2> <input>Queue1 = queue:filter(fun (E) -> [E, E+1] end, Queue).</input> +{[6,5,5,4,4,3],[1,2,2,3]} +3> <input>queue:to_list(Queue1).</input> +[1,2,2,3,3,4,4,5,5,6]</pre> </desc> </func> @@ -222,6 +275,18 @@ <c><anno>Item</anno></c> is not copied. If it returns <c>{true, NewItem}</c>, the queue element at this position is replaced with <c>NewItem</c> in the result queue.</p> + <p><em>Example 1:</em></p> + <pre> +1> <input>Queue = queue:from_list([1,2,3,4,5]).</input> +{[5,4,3],[1,2]} +2> <input>Queue1 = queue:filtermap(fun (E) -> E > 2 end, Queue).</input> +{[5],[3,4]} +3> <input>queue:to_list(Queue1).</input> +[3,4,5] +4> <input>Queue1 = queue:filtermap(fun (E) -> {true, E+100} end, Queue).</input> +{"ihg","ef"} +5> <input>queue:to_list(Queue1).</input> +"efghi</pre> </desc> </func> @@ -239,9 +304,9 @@ empty.</p> <p><em>Example:</em></p> <pre> -> <input>queue:fold(fun(X, Sum) -> X + Sum end, 0, queue:from_list([1,2,3,4,5])).</input> +1> <input>queue:fold(fun(X, Sum) -> X + Sum end, 0, queue:from_list([1,2,3,4,5])).</input> 15 -> <input>queue:fold(fun(X, Prod) -> X * Prod end, 1, queue:from_list([1,2,3,4,5])).</input> +2> <input>queue:fold(fun(X, Prod) -> X * Prod end, 1, queue:from_list([1,2,3,4,5])).</input> 120</pre> </desc> </func> @@ -263,6 +328,14 @@ <p>Inserts <c><anno>Item</anno></c> at the rear of queue <c><anno>Q1</anno></c>. Returns the resulting queue <c><anno>Q2</anno></c>.</p> + <p><em>Example:</em></p> + <pre> +1> <input>Queue = queue:from_list([1,2,3,4,5]).</input> +{[5,4,3],[1,2]} +2> <input>Queue1 = queue:in(100, Queue).</input> +{[100,5,4,3],[1,2]} +3> <input>queue:to_list(Queue1).</input> +[1,2,3,4,5,100]</pre> </desc> </func> @@ -273,6 +346,14 @@ <p>Inserts <c><anno>Item</anno></c> at the front of queue <c><anno>Q1</anno></c>. Returns the resulting queue <c><anno>Q2</anno></c>.</p> + <p><em>Example:</em></p> + <pre> +1> <input>Queue = queue:from_list([1,2,3,4,5]).</input> +{[5,4,3],[1,2]} +2> <input>Queue1 = queue:in_r(100, Queue).</input> +{[5,4,3],[100,1,2]} +3> <input>queue:to_list(Queue1).</input> +[100,1,2,3,4,5]</pre> </desc> </func> @@ -306,6 +387,14 @@ <p>Returns a queue <c><anno>Q3</anno></c> that is the result of joining <c><anno>Q1</anno></c> and <c><anno>Q2</anno></c> with <c><anno>Q1</anno></c> in front of <c><anno>Q2</anno></c>.</p> + <p><em>Example:</em></p> + <pre> +1> <input>Queue1 = queue:from_list([1,3]).</input> +{[3],[1]} +2> <input>Queue2 = queue:from_list([2,4]).</input> +{[4],[2]} +3> <input>queue:to_list(queue:join(Queue1, Queue2)).</input> +[1,3,2,4]</pre> </desc> </func> @@ -344,6 +433,14 @@ <c><anno>Q2</anno></c> is the resulting queue. If <c><anno>Q1</anno></c> is empty, tuple <c>{empty, <anno>Q1</anno>}</c> is returned.</p> + <p><em>Example:</em></p> + <pre> +1> <input>Queue = queue:from_list([1,2,3,4,5]).</input> +{[5,4,3],[1,2]} +2> <input>{{value, 1=Item}, Queue1} = queue:out(Queue).</input> +{{value,1},{[5,4,3],[2]}} +3> <input>queue:to_list(Queue1).</input> +[2,3,4,5]</pre> </desc> </func> @@ -356,6 +453,14 @@ where <c><anno>Item</anno></c> is the item removed and <c><anno>Q2</anno></c> is the new queue. If <c><anno>Q1</anno></c> is empty, tuple <c>{empty, <anno>Q1</anno>}</c> is returned.</p> + <p><em>Example:</em></p> + <pre> +1> <input>Queue = queue:from_list([1,2,3,4,5]).</input> +{[5,4,3],[1,2]} +2> <input>{{value, 5=Item}, Queue1} = queue:out_r(Queue).</input> +{{value,5},{[4,3],[1,2]}} +3> <input>queue:to_list(Queue1).</input> +[1,2,3,4]</pre> </desc> </func> @@ -384,6 +489,12 @@ <desc> <p>Returns a list of the items in the queue in the same order; the front item of the queue becomes the head of the list.</p> + <p><em>Example:</em></p> + <pre> +1> <input>Queue = queue:from_list([1,2,3,4,5]).</input> +{[5,4,3],[1,2]} +2> <input>List == queue:to_list(Queue).</input> +true</pre> </desc> </func> </funcs> @@ -401,6 +512,14 @@ <p>Returns a queue <c><anno>Q2</anno></c> that is the result of removing the front item from <c><anno>Q1</anno></c>.</p> <p>Fails with reason <c>empty</c> if <c><anno>Q1</anno></c> is empty.</p> + <p><em>Example:</em></p> + <pre> +1> <input>Queue = queue:from_list([1,2,3,4,5]).</input> +{[5,4,3],[1,2]} +2> <input>Queue = queue:drop(Queue).</input> +{[5,4,3],[2]} +3> <input>queue:to_list(Queue1).</input> +[2,3,4,5]</pre> </desc> </func> @@ -411,6 +530,14 @@ <p>Returns a queue <c><anno>Q2</anno></c> that is the result of removing the rear item from <c><anno>Q1</anno></c>.</p> <p>Fails with reason <c>empty</c> if <c><anno>Q1</anno></c> is empty.</p> + <p><em>Example:</em></p> + <pre> +1> <input>Queue = queue:from_list([1,2,3,4,5]).</input> +{[5,4,3],[1,2]} +2> <input>Queue = queue:drop_r(Queue).</input> +{[4,3],[1,2]} +3> <input>queue:to_list(Queue1).</input> +[1,2,3,4]</pre> </desc> </func> @@ -421,6 +548,12 @@ <p>Returns <c><anno>Item</anno></c> at the front of queue <c><anno>Q</anno></c>.</p> <p>Fails with reason <c>empty</c> if <c><anno>Q</anno></c> is empty.</p> + <p><em>Example 1:</em></p> + <pre> +1> <input>Queue = queue:from_list([1,2,3,4,5]).</input> +{[5,4,3],[1,2]} +2> <input>1 == queue:get(Queue).</input> +true</pre> </desc> </func> @@ -431,6 +564,12 @@ <p>Returns <c><anno>Item</anno></c> at the rear of queue <c><anno>Q</anno></c>.</p> <p>Fails with reason <c>empty</c> if <c><anno>Q</anno></c> is empty.</p> + <p><em>Example 1:</em></p> + <pre> +1> <input>Queue = queue:from_list([1,2,3,4,5]).</input> +{[5,4,3],[1,2]} +2> <input>5 == queue:get_r(Queue).</input> +true</pre> </desc> </func> @@ -441,6 +580,14 @@ <p>Returns tuple <c>{value, <anno>Item</anno>}</c>, where <c><anno>Item</anno></c> is the front item of <c><anno>Q</anno></c>, or <c>empty</c> if <c><anno>Q</anno></c> is empty.</p> + <p><em>Example 1:</em></p> + <pre> +1> <input>queue:peek(queue:new()).</input> +empty +2> <input>Queue = queue:from_list([1,2,3,4,5]).</input> +{[5,4,3],[1,2]} +3> <input>queue:peek(Queue).</input> +{value, 1}</pre> </desc> </func> @@ -451,12 +598,18 @@ <p>Returns tuple <c>{value, <anno>Item</anno>}</c>, where <c><anno>Item</anno></c> is the rear item of <c><anno>Q</anno></c>, or <c>empty</c> if <c><anno>Q</anno></c> is empty.</p> + <p><em>Example 1:</em></p> + <pre> +1> <input>queue:peek_r(queue:new()).</input> +empty +2> <input>Queue = queue:from_list([1,2,3,4,5]).</input> +{[5,4,3],[1,2]} +3> <input>queue:peek_r(Queue).</input> +{value, 5}</pre> </desc> </func> </funcs> - - <funcs> <fsdescription> <title>Okasaki API</title> @@ -468,6 +621,12 @@ <p>Inserts <c><anno>Item</anno></c> at the head of queue <c><anno>Q1</anno></c>. Returns the new queue <c><anno>Q2</anno></c>.</p> + <p><em>Example:</em></p> + <pre> +1> <input>Queue = queue:cons(0, queue:from_list([1,2,3])).</input> +{[3,2],[0,1]} +2> <input>queue:to_list(Queue).</input> +[0,1,2,3]</pre> </desc> </func> @@ -477,6 +636,10 @@ <desc> <p>Returns the tail item of queue <c><anno>Q</anno></c>.</p> <p>Fails with reason <c>empty</c> if <c><anno>Q</anno></c> is empty.</p> + <p><em>Example 1:</em></p> + <pre> +1> <input>queue:daeh(queue:from_list([1,2,3])).</input> +3</pre> </desc> </func> @@ -487,6 +650,10 @@ <p>Returns <c><anno>Item</anno></c> from the head of queue <c><anno>Q</anno></c>.</p> <p>Fails with reason <c>empty</c> if <c><anno>Q</anno></c> is empty.</p> + <p><em>Example 1:</em></p> + <pre> +1> <input>queue:head(queue:from_list([1,2,3])).</input> +1</pre> </desc> </func> @@ -497,6 +664,12 @@ <p>Returns a queue <c><anno>Q2</anno></c> that is the result of removing the tail item from <c><anno>Q1</anno></c>.</p> <p>Fails with reason <c>empty</c> if <c><anno>Q1</anno></c> is empty.</p> + <p><em>Example:</em></p> + <pre> +1> <input>Queue = queue:init(queue:from_list([1,2,3])).</input> +{[2],[1]} +2> <input>queue:to_list(Queue).</input> +[1,2]</pre> </desc> </func> @@ -517,6 +690,10 @@ <desc> <p>Returns the tail item of queue <c><anno>Q</anno></c>.</p> <p>Fails with reason <c>empty</c> if <c><anno>Q</anno></c> is empty.</p> + <p><em>Example:</em></p> + <pre> +1> <input>queue:last(queue:from_list([1,2,3])).</input> +3</pre> </desc> </func> @@ -527,6 +704,12 @@ <p>Returns a queue <c><anno>Q2</anno></c> that is the result of removing the tail item from <c><anno>Q1</anno></c>.</p> <p>Fails with reason <c>empty</c> if <c><anno>Q1</anno></c> is empty.</p> + <p><em>Example:</em></p> + <pre> +1> <input>Queue = queue:liat(queue:from_list([1,2,3])).</input> +{[2],[1]} +2> <input>queue:to_list(Queue).</input> +[1,2]</pre> </desc> </func> @@ -537,6 +720,12 @@ <p>Inserts <c><anno>Item</anno></c> as the tail item of queue <c><anno>Q1</anno></c>. Returns the new queue <c><anno>Q2</anno></c>.</p> + <p><em>Example:</em></p> + <pre> +1> <input>Queue = queue:snoc(queue:from_list([1,2,3]), 4).</input> +{[4,3,2],[1]} +2> <input>queue:to_list(Queue).</input> +[1,2,3,4]</pre> </desc> </func> -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor