О, вы вот еще что упустили — про становление функционального программирования:
1924 г. — Впервые понятие комбинатора и основанная на нём теория были сформулированны М.И.Шейнфинкелем в работе Schonfinkel (1924) ещё до появления лямбда-исчисления. Вскоре после этого аналогичные результаты были получены Карри, независимо от Шейнфинкеля и Чёрча. Когда Карри ознакомился с работами Шейнфинкеля, он предпринял попытку с ним связаться, но к этому времени Шейнфинкель оказался в психиатрической лечебнице.
… и еще — про 2003 г. и Scala: абсолютно то же самое можно написать про 2001г., про Камила Скальски и его Nemerle. Попытка оказалась настолько удачной, что ключевые фичи языка были спи%%ены позаимствованны фирмой Microsoft в ее новом языке F#.net.
В синтаксисе он да, на ML-семейство похож. Макросов нет — решили, видимо, не травмировать нежную психику девелоперов :)
А на Nemerle — кортежи, анонимные функции; типы функций и кортежей обозначаются в REPL или подсказках так же. Я после Nemerle на F# пересел, можно сказать, с минимумом напрягов.
Всё это было задолго до Nemerle в том же OCaml.
Похож на Nemerle — да, позаимствовали оттуда — очень вряд ли. А вот синтаксис указания типа и типов кортежа как раз наоборот, в Nemerle взяли из OCaml, о чём написано в документации.
Ну если учесть, что MS тщательно обходят Nemerle вниманием, но предложили тому же Скальски работу в MS Research как раз над выводом типов в функциональных языках для платформы .net, у меня появился вывод, что что-то позаимствуют :) Надеюсь, ошибался.
Краткая, неполная и вымышленная история языков программирования