我试图弄清楚如何在Haskell中进行书写:
有一个由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代码中?
答案 0 :(得分:5)
如果我正确理解了您想要的内容,则可以定义一个函数,将所谓的“含义”分配给单个整数,然后在其上映射集合列表:
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"]
我为您的定义中未包含的范围添加了错误情况;更改它们以适合您的逻辑。