Я бы предположил, что Haskell удовлетворяет вашим критериям.
- Может быть запущен как интерпретируемый язык?Да, через GHCI.
- Можно скомпилировать в собственный код?Да.
- Строго набирается?Даже очень.Возможно, даже самый строго типизированный язык сегодня, за исключением некоторых средств проверки теорем, таких как Agda.
- Поддержка макросов / шаблонов / морфинга?Если вы используете шаблон haskell.Это необязательное расширение языка, поэтому большинство библиотек не используют макросы.Я не использовал шаблон haskell сам, поэтому я не могу комментировать, если это хорошо.
- Имеет ли приличную поддержку библиотеки?Стандартная библиотека не плохая.Существует также Hackage, открытый репозиторий библиотек Haskell, немного в стиле CPAN.
Кроме того, похоже, что вы уже знаете много императивных / объектно-ориентированных языков.ИМХО, если вы узнаете еще один из этих языков.вероятно, это будет немного другая перестановка функций, которые вы уже видели где-то еще.Добавление другой парадигмы программирования, такой как функциональное программирование, в ваш инструментарий, вероятно, будет лучшим опытом обучения.Хотя я предполагаю, является ли это преимуществом или нет, зависит от того, хотите ли вы учиться чему-то новому или быстро работать.