我正在尝试创建一个函数,我需要指定如果列表只有1个元素会发生什么。我希望函数返回元素,但我不知道如何将元素转换为round
。有帮助吗?我尝试过frominteger
,realtofrac
,pMaiore :: Ord a => [a] -> Int
pMaiore [x]= --give x but converted to Int
pMaiore (x:xs:xss)= if x>=xs then pMaiore(x:xss)
else pMaiore(x:xss) --when x<xs
,但没有任何效果。
{{1}}
答案 0 :(得分:1)
这个怎么样?
pMaiore :: (Ord a, Integral a) => [a] -> Int
pMaiore [x]= fromIntegral x --give x but converted to Int
pMaiore (x:xs:xss)= if x>=xs then pMaiore(x:xss)
else pMaiore(x:xss) --when x<xs
如果您想将a
转换为Int
,则必须在它们之间建立连接。一种方法是使用类型类。如果您知道a
将成为浮点数,那么您可以改为使用RealFrac
,然后round
函数将起作用。