Хороший функциональный язык программирования - Agda: http://www.cse.chalmers.se/~ulfn/papers/afp08/tutorial.pdf
Из-за зависимого типа могут быть определены некоторые функции, которые не могут быть определены в других языках, таких как haskell.Например, тип функций (Vec n -> Vec n), которые возвращают вектор той же длины, что и их аргумент, например, sort имеет этот тип.[БЫЛО «Я полагаю, что некоторые газеты считают это чище, чем haskell».перед редактированием.]
Преимущество agda в том, что код souce очень приятный и похож на haskell.Кроме того, любая функция haskell может быть вызвана и использована.Недостаток состоит в том, что стандартная библиотека в настоящее время слишком часто меняется.
Просто посмотрите на исходный код для списков: http://www.cse.chalmers.se/~nad/listings/lib-0.4/Data.List.html#209
Конечно, существуют подобные функциональные языки программирования, такие как coq, epigramи т. д.
И ссылка на Карри-Ховарда в википедии:
http://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspondence
Некоторые ссылки, относящиеся к зависимым типам (и некоторые ссылки agda): http://www.reddit.com/r/dependent_types/