Euphoria - Basic Syntax

The Euphoria language has many similarities to Perl, C, and Java. However, there are some definite differences between the languages. This chapter is designed to quickly get you up to speed on the syntax that is expected in Euphoria.

This tutorial assumes you are working with Linux and all the examples have been written on Linux platform. But it is observed that there is no any prominent difference in program syntax on Linux and WIN32. Hence you can follow the same steps on WIN32.

First Euphoria Program

Let us write a simple Euphoria program in a script. Type the following source code in test.ex file and save it.


puts(1, "Hello, Euphoria!\n")

Let us say, Euphoria interpreter is available in /home/euphoria-4.0b2/bin/ directory. Now run this program as follows −

$ chmod +x test.ex    # This is to make file executable
$ ./test.ex

This produces the following result −

Hello, Euphoria!

This script used a built-in function puts() which takes two arguments. First argument indicates file name or device number, and second argument indicates a string which you want to print. Here 1 indicates STDOUT device.

Euphoria Identifiers

A Euphoria identifier is a name used to identify a variable, function, class, module, or other object. An identifier starts with a letter A to Z or a to z and then followed by letters, digits, or underscores.

Euphoria does not allow punctuation characters such as @, $, and % within identifiers.

Euphoria is a case sensitive programming language. Thus Manpower and manpower are two different identifiers in Euphoria. For example, the valid identifiers are −

  • n
  • color26
  • ShellSort
  • quick_sort
  • a_very_long_indentifier

Reserved Words

The following list shows the reserved words in Euphoria. These reserved words may not be used as constant or variable or any other identifier names. Euphoria keywords contain lowercase letters only.

and exit override
as export procedure
break fallthru public
by for retry
case function return
constant global routine
continue goto switch
do if then
else ifdef to
elsedef include type
elsif label until
elsifdef loop while
end namespace with
entry not without
enum or xor


Euphoria lets you calculate results by forming expressions. However, in Euphoria you can perform calculations on entire sequences of data with one expression.

You can handle a sequence much as you would handle a single number. It can be copied, passed to a subroutine, or calculated upon as a unit. For example −

{1,2,3} + 5

This is an expression that adds the sequence {1, 2, 3} and the atom 5 to get the resulting sequence {6, 7, 8}. You would learn sequences in subsequent chapters.

Blocks of code

One of the first caveats programmers encounter when learning Euphoria is the fact that there are no braces to indicate blocks of code for procedure and function definitions or flow control. Blocks of code are denoted by associated keywords.

The following example shows if...then...end if block −

if condition then
   code block comes here
end if

Multi-Line Statements

Statements in Euphoria typically end with a new line. Euphoria does however, allow to write a single statement in multiple lines. For example −

total = item_one + 
   item_two + 

Escape Characters

Escape characters may be entered using a back-slash. For example −

The following table is a list of escape or non-printable characters that can be represented with backslash notation.

Backslash notation Description
\n Newline
\r Carriage return
\t Tab
\\ Backslash
\" Double quote
\' Single quote

Comments in Euphoria

Any comments are ignored by the compiler and have no effect on execution speed. It is advisable to use more comments in your program to make it more readable.

There are three forms of comment text −

  • Comments start by two dashes and extend to the end of the current line.

  • The multi-line format comment is kept inside /*...*/, even if that occurs on a different line.

  • You can use a special comment beginning with the two character sequence “#!” only on the first line of the program.


-- First comment
puts(1, "Hello, Euphoria!\n") -- second comment

/* This is a comment which extends over a number
   of text lines and has no impact on the program

This produces the following result −

Hello, Euphoria!

Note − You can use a special comment beginning with “#!”. This informs the Linux shell that your file should be executed by the Euphoria interpreter.

Kickstart Your Career

Get certified by completing the course

Get Started