Albert Gräf, автор периодически упоминаемого здесь языка Q, выпустил бета-версию нового языка Pure, тоже основанного на term rewriting.
Язык динамически типизированный, а реализация использует LLVM для JIT-компиляции.
Код на Pure выглядят примерно так:
// Пресловутая быстрая сортировка в пару строк.
qsort p [] = [];
qsort p (x:xs) = qsort p [l; l = xs; l<x] + (x : qsort p [r; r = xs; r>=x])
with x<y = p x y; x>=y = not p x y end;
// Решето Эратосфена
primes n = sieve (2..n) with
sieve [] = [];
sieve (p:qs) = p : sieve [q; q = qs; q mod p];
end;
// Символьные вычисления: дифференцирование
diff x (u+v) = diff x u + diff x v;
diff x (u*v) = u*diff x v + v*diff x u;
diff x y = 1 if str x==str y;
= 0 otherwise;
Здравствуйте, the_void, Вы писали:
_>Albert Gräf, автор периодически упоминаемого здесь языка Q, выпустил бета-версию нового языка Pure, тоже основанного на term rewriting.
Actually, being on vacation right now, I started playing around with
LLVM. In the beginning that was just for fun, but then I began writing a
"tiny demo interpreter" to see how well it works out. Well, actually
it's not quite so tiny any more, after hacking away on it for two weeks,
in some ways it's already much better than Q, with a much cleaner
syntax, a more minimalistic and dynamic design, real closures (local
functions, yay!) and a few other goodies.
Мне показалось интересным в основном из-за бэкэнда на LLVM. Насколько я знаю, до сих пор ни одной серьёзной реализации ФЯ на нём не было.
Здравствуйте, the_void, Вы писали:
_>Мне показалось интересным в основном из-за бэкэнда на LLVM. Насколько я знаю, до сих пор ни одной серьёзной реализации ФЯ на нём не было.
если не считать хаскела, точнее его обрезанного аналога от common business objects
Здравствуйте, BulatZiganshin, Вы писали:
BZ>Здравствуйте, the_void, Вы писали:
_>>Мне показалось интересным в основном из-за бэкэнда на LLVM. Насколько я знаю, до сих пор ни одной серьёзной реализации ФЯ на нём не было.
BZ>если не считать хаскела, точнее его обрезанного аналога от common business objects
Это про cal от business objects? Он вроде всё время был на Java
А для ллвм есть хотяб схема.
Здравствуйте, Курилка, Вы писали:
BZ>>если не считать хаскела, точнее его обрезанного аналога от common business objects К>Это про cal от business objects? Он вроде всё время был на Java