WinHugs - как объявить переменную и функцию

Я загрузил WinHugs 2 часа назад и до сих пор не могу понять, как объявить простые вещи. Я пытаюсь следовать книге "7 языков за 7 недель", но такие вещи, как let x = 10 и double x = x * 2 выдает синтаксические ошибки.

2 ответов


Я не на 100% уверен, что то, что вы пытаетесь сделать, не работает. Вы не можете объявлять привязки в сеансе WinHugs, вы можете оценивать только полные выражения. Таким образом, вы могли бы делать такие вещи, как let x = 10 in x * x + x, но вы не можете сказать let x = 10 в интерактивном сеансе. Другими словами, вы не можете сделать заявление "палкой".

чтобы обойти это, либо поместите свои декларации в .hs файл и загрузите его в WinHugs или используйте GHCi вместо этого (это лучший вариант , на мой взгляд-WinHugs довольно старый). Вы можете установить GHCi, загрузив Платформа Haskell.


в winhugs следующее дает синтаксическую ошибку

пусть double x = x * 2

но работает следующее:

пусть double x = x * 2 в double 10

однако в ghc у них есть интерактивная среда ghci, где все работает

пусть double x = x * 2

работает

двойной 10

работает

эта ссылка объясняет, как работать с средой ghci: https://downloads.haskell.org/~ghc/7.2.2/docs/html/users_guide/interactive-evaluation.html

одна незначительная проблема заключается в том, что в windows вам нужно присутствие cygwin - в противном случае ghci, скомпилированный для windows, не будет работать.