在haskell中将list的元素转换为int?

时间:2017-10-21 17:08:35

标签: haskell

我正在尝试创建一个函数,我需要指定如果列表只有1个元素会发生什么。我希望函数返回元素,但我不知道如何将元素转换为round。有帮助吗?我尝试过fromintegerrealtofracpMaiore :: 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}}

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函数将起作用。