тут кто-то предлагал делиться новогодними подарками, ну так вот оно: https://chiselapp.com/user/nektomk/repository/fun/home.
выдалось время, набросал прототип итераторов в Tcl и даже слегка покрыл тестами. Пока-что это скажем так «api preview», то есть посмотреть/оценить насколько получается удобно и выразительно.
извините, из документации пока только cheats на основной странице, тесты и две «демки» в репозитарии;
# "lines of code" :-)
# iter`s concatenations demo
set loc [ fold { accum x } {
# simple, count elements
incr accum
# from other iterator
# [] - combination sign
} 0 [] filter { x } {
# filter elements
set x [ string trim $x ]
if { $x == {} || [ string index $x 0 ] == {#} } {
# empty lines and lines started from # (comment)
# wil drop
return false
}
return true
# from file
} <| $filename ]
Цель: чтобы удобно было писать на Tcl в функциональном стиле; В планах сделать внутри функциональную и комбинаторную оптимизацию.
в более дальних планах на следующий год: добавить операцию [] (та которая в функ. нотации точка по центру) уже непосредственно в парсер и исполнятор tcl.