Haskell中的元组如何访问第二和第三个元素

use*_*840 1 haskell tuples

我有以下内容:

type Description = String
type WeeklyHours = Float
type HourlyPay = Float
type JobDB = [(Description, WeeklyHours, HourlyPay)]

weeklyJobPay :: JobDB -> [(Description,Float)]
weeklyJobPay jDB = undefined
Run Code Online (Sandbox Code Playgroud)

对于JobDB中的每个元组,我需要函数weeklyJobPay将每周小时乘以HourlyPay.我怎么能这样做?

Don*_*art 6

根据模式匹配定义访问器:

sndthd :: (a,b,c) -> (b,c)
sndthd (_,b,c) = (b,c)
Run Code Online (Sandbox Code Playgroud)

如果你有其他转变,例如小时*支付,类似的功能将是:

flatten :: JobDB -> (Description, Float)
flatten (d,h,p) = (d, h*p)
Run Code Online (Sandbox Code Playgroud)

请注意,您应该使用Double而不是Float.