Одна вещь, которая меня поразила в Haskell, это то, что функции и переменные одинаковы.В большинстве языков переменная содержит значение, в то время как функция что-то делает, а затем, в конце концов, возвращает значение.В Haskell вы не видите этой разницы и после использования Haskell, возвращаясь к более «традиционному» программированию, где переменные отличаются от функций или методов, чувствует себя неловко.Если я хочу получить значение, мне не нужно беспокоиться о его происхождении, будь то постоянное значение, изменяемая переменная или результат сложных вычислений!В Haskell переменные - это просто 0-ые функции .
Многие объектно-ориентированные языки имеют свойства, которые ощущают небольшой пробел.
Может ли кто-нибудь указать любой другой язык с помощьюсистема, похожая на Haskell?Я думал, что это было общим для функциональных языков из-за ссылочной прозрачности , но я видел, что это не так.Например, в Лиспе у вас есть (defun)
для явного объявления функций.