Определить элемент в Хаскеле - PullRequest
1 голос
/ 12 октября 2019

Привет, я новичок в Хаскелле, извините, если этот вопрос простой, но я не понимаю, что здесь происходит. Я хочу определить элемент из типа Maybe Int

m :: Maybe Int

m = Just m | Nothing 

, но я получаю сообщение об ошибке:

 parse error on input `|'
   |
3 | m = Just m | Nothing 
   |            ^
Failed, no modules loaded.

Почему это происходит.

1 Ответ

2 голосов
/ 12 октября 2019

Шаг за шагом, вы должны посмотреть на определение типа данных, может быть:

data Maybe a = Nothing | Just a

тогда вы можете увидеть две специальные функции, называемые конструкторами, в вашем примере это можно использовать как:

m :: Maybe Int
m = Just 5

в другом примере с использованием другого конструктора:

nothingHere :: Maybe a
nothingHere = Nothing

Если вы хотите создать свои собственные данные, возможно, это будет что-то вроде:

data MyMaybe a = None | Some a deriving Show

m :: MyMaybe Int
m = Some 5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...