【发布时间】:2015-02-07 07:30:33
【问题描述】:
我想编写一个函数,它接受一个数字 i 和一个数字列表 xs 和
返回i 在列表xs 中的位置,将第一个位置计为1。如果i 确实
在xs 中不出现,则position 返回 0。
到目前为止,我有这个:
import Data.List
position :: Int -> [Int] -> Int
position i xs
| i `elem` xs = i `elemIndex` xs
| otherwise = 0
但是当我编译时,它给出了以下错误:
无法将预期类型“Int”与实际类型“Maybe Int”匹配
我知道elemIndex 返回一个Maybe Int 类型,我定义了我的函数以返回Int,但我不知道如何更改它。有什么想法吗?
【问题讨论】:
-
如果你确定它总是一个 Just,你可以使用 fromJust(defined in Data.Maybe) 来解开这个值。
标签: haskell