diff options
Diffstat (limited to 'chapter25')
| -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; + }; }; |
