我想编写一个函数,接受一个数字i
和数字xs
和 回报i
列表xs
位置的列表,计数第一个位置为1。如果i
确实 找到元素不会发生xs
,然后position
返回0Haskell-在列表
到目前为止,我有这样的:
import Data.List
position :: Int -> [Int] -> Int
position i xs
| i `elem` xs = i `elemIndex` xs
| otherwise = 0
但是当我编译,它提供了以下错误:
Couldn't match expected type ‘Int’ with actual type ‘Maybe Int’
我知道elemIndex
返回Maybe Int
类型,我定义我的函数返回Int
,但我不知道如何去改变它。有任何想法吗?
您可以使用fromJust(在Data.Maybe定义)如果你确信它总是一个Just,就打开它的价值。 – erdeszt 2014-12-09 11:59:29