diff --git a/main.py b/main.py index 74ea579..0e828e6 100644 --- a/main.py +++ b/main.py @@ -56,3 +56,5 @@ with TimeSample(' full'): sys1 = sync(sys1.call(eproxy(77))) sys1 = sync(sys1.call(eproxy(194))) print(sys1) +with TimeSample(' full'): + print(with_common_interface(synced(readfile('src/sys4')))) diff --git a/src/@.bu4 b/src/@.bu4 index 95c0d8b..f4847fa 100644 --- a/src/@.bu4 +++ b/src/@.bu4 @@ -4,4 +4,5 @@ @convert/@ @io/@ @serialization/@ +@collections/@ @numbers diff --git a/src/collections/@.bu4 b/src/collections/@.bu4 new file mode 100644 index 0000000..b398509 --- /dev/null +++ b/src/collections/@.bu4 @@ -0,0 +1 @@ +@deque diff --git a/src/collections/deque.bu4 b/src/collections/deque.bu4 new file mode 100644 index 0000000..89b1191 --- /dev/null +++ b/src/collections/deque.bu4 @@ -0,0 +1,96 @@ +{ (g) /? /? /? /? /[1][g] | dequeEmpty } +{ (item) (g) /[item]/[dequeEmpty]/[item]/[dequeEmpty]/[0][g] | dequeSingle } + +{ + (isEmpty)(lPopped)(lItem)(rPopped)(rItem) + [lPopped] +| + dequeLPopped +} + +{ + (isEmpty)(lPopped)(lItem)(rPopped)(rItem) + [lItem] +| + dequeLItem +} + +{ + (isEmpty)(lPopped)(lItem)(rPopped)(rItem) + [rPopped] +| + dequeRPopped +} + +{ + (isEmpty)(lPopped)(lItem)(rPopped)(rItem) + [rItem] +| + dequeRItem +} + +{ + /(dequeLPush) + (deque)(item) + /(isEmpty)(lPopped)(lItem)(rPopped)(rItem) + / + (g) /[rItem]//[item]/[deque]/[0] [g] + / + /[item][dequeSingle] + [isEmpty] + [deque] + [YC] +| + dequeLPush +} + +{ + /(dequeRPush) + (deque)(item) + /(isEmpty)(lPopped)(lItem)(rPopped)(rItem) + / + (g) /[item]/[deque]/[lItem]//[0] [g] + / + /[item][dequeSingle] + [isEmpty] + [deque] + [YC] +| + dequeRPush +} + +{ + (_0)(_1)(_add) + /(dequeLength) + (isEmpty)(lPopped)(lItem)(rPopped)(rItem) + / + / + /[dequeLength][lPopped] + / + [_1] + [_add] + / + [_0] + [isEmpty] + [YC] +| + dequeLLength +} + +{ + (_0)(_1)(_add) + /(dequeLength) + (isEmpty)(lPopped)(lItem)(rPopped)(rItem) + / + / + /[dequeLength][rPopped] + / + [_1] + [_add] + / + [_0] + [isEmpty] + [YC] +| + dequeRLength +} diff --git a/src/sys4.bu4 b/src/sys4.bu4 new file mode 100644 index 0000000..a15973f --- /dev/null +++ b/src/sys4.bu4 @@ -0,0 +1,12 @@ +@@ + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +@ci + + { /[b_add]/[b1]/[b0][dequeLLength] | dequeLength } + { /[b!]//[pair]/[dequeEmpty][dequeLPush][dequeLPush] | deque } + + / + /[dequeLength][deque] + [b_to_nx] +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""