From 28209703c72fb7e9955961dbdb84e24a0f871acd Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Mon, 10 Aug 2026 11:11:18 -0700 Subject: Chapter 25: Modules --- docs/chapter25/examples/A_helloWorld.smp | 3 +++ docs/chapter25/examples/BubbleSort.smp | 33 ++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 docs/chapter25/examples/A_helloWorld.smp create mode 100644 docs/chapter25/examples/BubbleSort.smp (limited to 'docs/chapter25/examples') diff --git a/docs/chapter25/examples/A_helloWorld.smp b/docs/chapter25/examples/A_helloWorld.smp new file mode 100644 index 00000000..ac399661 --- /dev/null +++ b/docs/chapter25/examples/A_helloWorld.smp @@ -0,0 +1,3 @@ +// -*- mode: java; -*- +sys.io.p("Hello, World!\n"); +return 0; diff --git a/docs/chapter25/examples/BubbleSort.smp b/docs/chapter25/examples/BubbleSort.smp new file mode 100644 index 00000000..864e26da --- /dev/null +++ b/docs/chapter25/examples/BubbleSort.smp @@ -0,0 +1,33 @@ +// -*- mode: java; -*- + +// An implementation of +// https://sampleprograms.io/projects/bubble-sort/ +// +// Bubble sort, with reading (parsing) and writing (formatting) the data. + +val sort = { sys.aryi64 nums -> + var done = false; + while( !done ) { + done = true; + for( var i = 0; i < nums.len-1; i++ ) + if( nums.buf[i] > nums.buf[i+1] ) { + nums.swap(i,i+1); + done = false; + } + } +}; + +// Read from stdin a line of the form "[ 4, 3, 2, 1]" and print it sorted. +val main = { -> + // Parse array of numbers from stdin + var nums = sys.aryi64.parseAryI64( sys.io.stdin() ); + if( !nums ) + return sys.io.p("stdin must look like [4, 3, 2, 1]"); + + // Bubble sort array of integers + sort(nums); + + // Print a list of numbers to stdout + nums.str().write(1); + return 0; +}; -- cgit v1.2.3