diff options
| author | Cliff Click <cliffc@acm.org> | 2026-08-10 14:47:36 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2026-08-10 14:47:36 -0700 |
| commit | 43dd950c4e3c9e17b619af56dd34394e0a4779b6 (patch) | |
| tree | fb08f5955ed41abf153d0f703583a5ac2d9caa38 | |
| parent | 34c2efae1f2dac2449a52fd2913b4737111e692c (diff) | |
| download | Simple-43dd950c4e3c9e17b619af56dd34394e0a4779b6.tar.gz Simple-43dd950c4e3c9e17b619af56dd34394e0a4779b6.zip | |
Add a aryi64 swap
| -rw-r--r-- | chapter25/docs/examples/BubbleSort.smp | 4 | ||||
| -rw-r--r-- | 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; + }; }; |
