From 43dd950c4e3c9e17b619af56dd34394e0a4779b6 Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Mon, 10 Aug 2026 14:47:36 -0700 Subject: Add a aryi64 swap --- chapter25/docs/examples/BubbleSort.smp | 4 +--- chapter25/src/main/smp/sys/aryi64.smp | 7 +++++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/chapter25/docs/examples/BubbleSort.smp b/chapter25/docs/examples/BubbleSort.smp index f2298c0c..864e26da 100644 --- a/chapter25/docs/examples/BubbleSort.smp +++ b/chapter25/docs/examples/BubbleSort.smp @@ -11,9 +11,7 @@ val sort = { sys.aryi64 nums -> done = true; for( var i = 0; i < nums.len-1; i++ ) if( nums.buf[i] > nums.buf[i+1] ) { - int tmp = nums.buf[i]; - nums.buf[i] = nums.buf[i+1]; - nums.buf[i+1] = tmp; // Swap + nums.swap(i,i+1); done = false; } } diff --git a/chapter25/src/main/smp/sys/aryi64.smp b/chapter25/src/main/smp/sys/aryi64.smp index 499431d8..8a154f34 100644 --- a/chapter25/src/main/smp/sys/aryi64.smp +++ b/chapter25/src/main/smp/sys/aryi64.smp @@ -35,6 +35,13 @@ struct aryi64 { str.num(buf[i]).add(',').add(' '); str.undo(2).add(']'); }; + + val swap = { int i, int j -> + i64 tmp = buf[i]; + buf[i] = buf[j]; + buf[j] = tmp; + self; + }; }; -- cgit v1.2.3