blob: ac59f19cd381e0ea9d25933ddb665573dc62ede5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
%%---------------------------------------------------------------------------
%% A clone of 'queue_adt' so as to test its combination with 'rec_adt'
%%---------------------------------------------------------------------------
-module(mixed_opaque_queue_adt).
-export([new/0, add/2, dequeue/1, is_empty/1]).
-opaque my_queue() :: list().
-spec new() -> my_queue().
new() ->
[].
-spec add(term(), my_queue()) -> my_queue().
add(E, Q) ->
Q ++ [E].
-spec dequeue(my_queue()) -> {term(), my_queue()}.
dequeue([H|T]) ->
{H, T}.
-spec is_empty(my_queue()) -> boolean().
is_empty([]) ->
true;
is_empty([_|_]) ->
false.
|