summaryrefslogtreecommitdiff
path: root/chapter25
diff options
context:
space:
mode:
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;
+ };
};