Представляю вашему вниманию свеженький релиз так полюбившегося всем вам ЯП — гибрид хаскеля с питоном, руби и крестами. Этот код почти никогда не писался на трезвую голову и поэтому разобраться в этом месиве могу только я.
1. Самое главное: оно поддерживает три типа комментариев и новые способы легко добавить!
# shell
// кресты
/* си */
2. Синтаксис слегка пришибленый (пришлось подпилить под нужды парсера), но какой уж есть. Вот небольшой пример стандартной программы «привет, Ад»:
main = (argv, argc) -> # объявили лямбда-функцию и сохранили её в main
name = "Hell"
the_string = p "Hello, {name}" # оператор p печатает на экран
# и возвращает значение своего аргумента
# fancy string interpolation
num = 1
string_with_number = "num = {num}"
# shell invocation
ret = `echo -e 'Bye!\nrm -rf ~'`
p "script terminated with {ret}"
# built-in repexp matching
p "Hello" =~ /(H.*)/
# branching
1 if 1+1 == 2 else 3
# expression-oriented!
score = match
name =~ "true_(.*)" => 666
name == "tailgunner" => 7
_ => -1
# Higher-order functions: a(b(c()) is ...
a . b . c
c $ b $ a # pipe-line style
Итд итп. Самое главное что он expression-oriented и со статической типизацией**.
В ближайших планах переписать этот ЯП на нём же самом.
Ведутся активные переговоры с Леннартом Поттерингом по включению этого ЯП в состав systemd как средства написания юнитов.
Фичи и плюши: строгая типизация, expression-oriented, компилируемый*, есть примитивный вывод типов**. Некоторые операторы (в данный момент только print) полиморфны. Вскоре: замыкания, pattern matching, ADT, ООП с public/private/close, генерация llvm bitcode и многое другое. Циклов ещё нет, поэтому используйте рекурсию. На данный момент поддерживается только работа с целыми числами (произвольной длины) и строками. Поддержка других типов будет хорошим упражнением для пытливого читателя.
Отдельно хотелось бы отметить будущую программу сертификации. Программа сертификации задумана чтобы повысить квалификацию программистов. Программа бесплатная и, в общем- то, никаких реальных бонусов и привилегий не даст (мы же не проприетарщики). Так что я пока не знаю зачем кто-то захочет её проходить. Может, приплачивать надо...
PS Про nanopass читал
PPS Формочку заполнил
*Эта функция не работает
**Есть, но оочень глючит.
Лицензия BDSM-like
>>> Исходники