В Haskell каква е разликата между "нека x = 5" и "x = 5"?


Отговор 1:

x = 5 може да бъде

  • локална декларация от най-високо ниво в рамките на израза „let“ или „където“
x = 5 - декларация за най-високо ниво foo = - глупав пример func, добавя 5 след това divs с 2 нека y = 2 x = 5 в (/ y). (+ x) foo = (/ y). (+ x) където y = 2 x = 5

нека x = 5 може да бъде

  • началото на израз на пускане (виж по-горе) локална декларация в списъка за разбиране на локална декларация в блок за нотиране.

Това, което не може да бъде, е декларация от най-високо ниво.

Новодошлите в Haskell често са объркани от последната точка, защото трябва да напишат x = 5, а не просто x = 5, ако работят в GHCi черупката. Но това е така, защото GHCI работи, като обвива всеки въведен ред в неявно пуснато, така че кодът, който въвеждате интерактивно в GHCi, се превръща в един дълго вложен израз. В резултат кодът, въведен в CHCi, не следва абсолютно същия формат като обикновения код на Haskell.