summaryrefslogtreecommitdiff
path: root/chapter25
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2026-08-10 14:47:36 -0700
committerCliff Click <cliffc@acm.org>2026-08-10 14:47:36 -0700
commit43dd950c4e3c9e17b619af56dd34394e0a4779b6 (patch)
treefb08f5955ed41abf153d0f703583a5ac2d9caa38 /chapter25
parent34c2efae1f2dac2449a52fd2913b4737111e692c (diff)
downloadSimple-43dd950c4e3c9e17b619af56dd34394e0a4779b6.tar.gz
Simple-43dd950c4e3c9e17b619af56dd34394e0a4779b6.zip
Add a aryi64 swap
Diffstat (limited to 'chapter25')
-rw-r--r--chapter25/docs/examples/BubbleSort.smp4
-rw-r--r--chapter25/src/main/smp/sys/aryi64.smp7
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;
+ };
};