На конференции EuroTcl 2014 широкой публике было представлено расширение VecTcl, добавляющее в стандартный Tcl новый тип данных — числовые массивы и включающее в себя средства для эффективной работы с ними.
Это расширение предназначается для выполнения инженерных вычислений и является аналогом NumPy+SciPy в Python, PDL в Perl (напомню, что в Perl6 подобные массивы поддерживаются на уровне языка), языков APL, J, K, R.
Синтаксис для описания массивов представляет собой стандартный синтаксис для создания списков в Tcl. Для работы с массивами предназначена специальная команда vexpr, компилирующая переданный ей блок кода в код на обычном Tcl и исполняющая его. Также расширение вводит в язык комплексные числа.
Пример кода:
set x { 1 2 3 }
set A {{1.0 2.0 3.0} {4.0 5.0 6.0} {7.0 8.0 9.0}}
vexpr { A*x }
# 14.0 32.0 50.0
Здесь необходимо отметить, что имена переменных в теле vexpr не имеют сигила $.
Расширение пока что имеет версию 0.1.7alpha и распространяется в виде исходных кодов, бинарных архивов и старкита/старпака.
Здесь можно почитать презентацию с EuroTcl.
>>> Официальный сайт