Nesla 0.8.0
Версия реализации Nesla языка программирования NeslaСамая последная версия Nesla.
Изменения относительно предыдущей версии:
-
добавлен объект
this
- фукнции теперь можно объявлять внутри выражений
-
x=x+1
больше не затираетx
перед вычислением выражения - все библиотеки расширений теперь могут быть собраны как разделяемые объекты (за исключением библиотеки, добавляющей поддержку разделяемых объектов)
- добавлена поддержка postgresql
-
значения теперь полностью уничтожаются при установке в
null
- смешанные операции со строками и числами теперь корректно выполняются
- вычисление выражений теперь происходит более чем в два раза быстрее
- масштабная переработка внутреннего двоичного формата скриптов
- присваивание переменной внутри выражения теперь корректно работает
- исправлено несколько случаев некорректного возвращаемого значения сравнения объектов разных типов
- исправлено использование прямого объявления таблиц в параметрах функций
- добавлена библиотека расширения dl для динамической загрузки модулей
-
добавлены функции
added gmtime()
,localtime()
,string.tolower()
,string.toupper()
иstring.join()
в базовую библиотеку - добавлена библиотека расширения winapi
-
type()
иsize()
заменены наtypeof()
иsizeof()
-
+=
теперь работает и для строк - makefile-ы для расширений переписаны на чистом nesla
Ссылки:
Примеры:
Факториал - Nesla (11):
Для факториала 13-16 из-за арифметического переполнения возвращается nan (not a number). В результате вывод программы имеет следующий вид:
0! = 1
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
11! = 39916800
12! = 479001600
13! = nan
14! = nan
15! = nan
16! = nan
#!/usr/bin/nesla
function factorial(n)
{
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
for (n = 0; n <= 16; n++) {
print(n, "! = ", factorial(n), "\n");
}
Комментарии
]]>blog comments powered by Disqus
]]>