]]> ]]>
Править | Обсудить | История

Euphoria

Русское название:
Эйфория
Дата создания:
1993
Парадигма:
Типизация:
Принятые расширения файлов:
.ex, .exu, .exw, .e, .eu, .ew
Диалекты:
Реализации и версии (свернуть все | развернуть все):
Язык программирования

Euphoria — высокоуровневый интерпретируемый язык программирования, созданный Робертом Крейгом в 1993 году. Расшифровывается как “End-User Programming with Hierarchical Objects for Robust Interpreted Applications”. Хотя язык не является объектно-ориентированным, в нем можно имитировать объектно ориентированный подход.

Элементы синтаксиса:

Комментарий до конца строки --
Регистрозависимость да
Регулярное выражение идентификатора переменной [A-Za-z][A-Za-z0-9_]*
Регулярное выражение идентификатора функции [A-Za-z][A-Za-z0-9_]*
Присваивание значения переменной =
Объявление переменной type variable
Группировка выражений ( ... )
Равенство =
Неравенство !=
Сравнение < > <= >=
Определение функции function f(type1 p1, type2 p2, ...) ... end function
Вызов функции f(a, b, ...)
Вызов функции без параметров f()
Если - то if condition then ... end if
Если - то - иначе if condition then ... else ... end if
Бесконечный цикл while 1 do ... end while
Цикл с предусловием while condition do ... end while
Цикл for - next для диапазона целых чисел с инкрементом на 1 for i = 1 to 10 do ... end for
Цикл for - next для диапазона целых чисел с декрементом на 1 for i = 1 to 10 by -1 do ... end for

Примеры:

Hello, World!:

Пример для версий Euphoria 3.1.1
puts(1,"Hello, World!")

Факториал:

Пример для версий Euphoria 3.1.1

Используется рекурсивное определение факториала.

function factorial(integer n)
    if n = 0 then
        return 1
    else
        return n*factorial(n-1)
    end if
end function

for n = 0 to 16 do
    printf(1,"%d! = %d\n",{n,factorial(n)})
end for

Числа Фибоначчи:

Пример для версий Euphoria 3.1.1
function fib(integer n)
    sequence f
    if n = 1 then
        return {1}
    elsif n = 2 then
        return {1,1}
    else
        f = fib(n-1)
        f = append(f, f[$-1] + f[$])
        return f
    end if
end function

print(1,fib(16))

Квадратное уравнение:

Пример для версий Euphoria 3.1.1
include get.e

atom A
atom B, C
atom D

A = prompt_number("A=", {})
if A = 0 then
    puts(1,"Not a quadratic equation.\n")
else
    B = prompt_number("B=", {})
    C = prompt_number("C=", {})
    D = B*B - 4*A*C
    if D = 0 then
        printf(1,"x = %g\n", -B/2/A)
    else
        if D > 0 then
            printf(1,"x1 = %g\n", -B+sqrt(D)/2/A)
            printf(1,"x2 = %g\n", -B-sqrt(D)/2/A)
        else
            printf(1,"x1 = (%g,%g)\n", {-B/2/A, sqrt(-D)/2/A})
            printf(1,"x2 = (%g,%g)\n", {-B/2/A, sqrt(-D)/2/A})
        end if
    end if
end if

Факториал:

Пример для версий Euphoria 3.1.1

Используется итеративное определение факториала

integer f
f = 1
for n = 0 to 15 do
  printf(1,"%d! = %d\n",{n,f})
  f *= n+1
end for

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам