Documentation Version for Comments and Changes

Changes will `eventually` be merged into the offical documentation.

Leave any commnents here...

...

... back to index page OE documentation

Example Programs

Hello, World

The mandatory 'Hello World' program is a one-liner in Euphoria.

puts(1, "Hello, World\n")

The built-in routine puts does the job of displaying text on a screen. It requires two arguments. The first argument, 1, directs the output to STDOUT or the console. The second argument, is a string of text that will be output.

The result is:

Hello, World

Sorting

The following is an example of a more useful Euphoria program.

include std/console.e
sequence original_list

function merge_sort(sequence x)
-- put x into ascending order using a recursive merge sort
integer n, mid
sequence merged, a, b

n = length(x)
if n = 0 or n = 1 then
return x  -- trivial case
end if

mid = floor(n/2)
a = merge_sort(x[1..mid])       -- sort first half of x
b = merge_sort(x[mid+1..n])     -- sort second half of x

-- merge the two sorted halves into one
merged = {}
while length(a) > 0 and length(b) > 0 do
if compare(a, b) < 0 then
merged = append(merged, a)
a = a[2..length(a)]
else
merged = append(merged, b)
b = b[2..length(b)]
end if
end while
return merged & a & b  -- merged data plus leftovers
end function

procedure print_sorted_list()
-- generate sorted_list from original_list
sequence sorted_list

original_list = {19, 10, 23, 41, 84, 55, 98, 67, 76, 32}
sorted_list = merge_sort(original_list)
for i = 1 to length(sorted_list) do
display("Number [] was at position [:2], now at [:2]",
{sorted_list[i], find(sorted_list[i], original_list), i}
)
end for
end procedure