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.1puts(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.1function 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.1include 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
]]>