Модуль Haskell и данные - PullRequest
       18

Модуль Haskell и данные

1 голос
/ 22 сентября 2019

Я новичок в Хаскеле.Следующий код показывает пару целых чисел.Допустим, я хочу суммировать или вычитать пары.Как мне это сделать?

module IntPair where

data IntPair = IntPair Int Int
   deriving(Show)

plusIntPair :: IntPair -> Int
plusIntPair = undefined

Допустим, я создал IntPair 1 2. Я должен получить ответ 3.

1 Ответ

0 голосов
/ 22 сентября 2019

Вам необходимо использовать шаблоны для деструктурирования вашего IntPair

Что-то вроде этого должно работать (для функции):

plusIntPair :: IntPair -> Int
plusIntPair (IntPair a b) = a + b

В приведенном выше фрагменте первой строки объявляется, чтоplusIntPair имеет тип IntPair -> Int.Во второй строке написано, что функция должна деструктурировать конструктор данных IntPair, связать первый и второй параметры с a и b соответственно и добавить их.

и запустить его:

plusIntPair (IntPair 1 2)

(IntPair 1 2) создает значение типа IntPair, plusIntPair применяется с аргументом IntPair 1 2.

...