Haskell. Присвоение имени порогу значений - PullRequest
0 голосов
/ 01 июля 2018

Я пытаюсь понять, как писать на Хаскеле:

Существует список из 4 переменных: [w, x, y, z] После выполнения следующих действий через ghci:

collection :: Int -> Int -> Int -> Int -> [Int]
collection w x y z = [w,x,y,z]

Я хочу присвоить «значение» каждому пороговому значению для w, x, y, z. Пример: когда 0

Как поместить это в код на Haskell?

1 Ответ

0 голосов
/ 01 июля 2018

Если я правильно понимаю, что вы хотите, вы можете определить функцию, которая присваивает то, что вы называете «значением», одному целому числу, а затем сопоставить список сбора с ним:

bin :: Int -> String
bin x
  | x <= 0    = error "nonpositive value"
  | x < 60    = "Low"
  | x < 80    = "Medium"
  | x < 100   = "High"
  | otherwise = error "value greater than or equal to 100"

binnedCollection :: Int -> Int -> Int -> Int -> [String]
binnedCollection w x y z = map bin $ collection w x y z

Например,

Prelude> binnedCollection 0 20 60 80
["Low","Low","Medium","High"]

Я добавил ошибки для диапазонов, не включенных в ваше определение; измените их на те, которые соответствуют вашей логике.

...