Вышел релиз языка программирования truthon
Представляю вашему вниманию свеженький релиз так полюбившегося всем вам ЯП — гибрид хаскеля с питоном, руби и крестами. Этот код почти никогда не писался на трезвую голову и поэтому разобраться в этом месиве могу только я.
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
Changelog
python, программирование, упорин