簡體   English   中英

獲取 Haskell 列表中元素的索引

[英]Get the Index of elements in list in Haskell

我有一個列表[4539, 5646, 6547, 7546]

我怎樣才能得到每個元素的索引?

索引 4539 --> 0

索引 5646 --> 1

索引 6547 --> 2

索引 7546 --> 3

-- >> elemIndex 4539 [4539, 5646, 6547, 7546]
-- 0
-- >> elemIndex 5646 [4539, 5646, 6547, 7546]
-- 1
-- >> elemIndex 6547 [4539, 5646, 6547, 7546]
-- 2
elemIndex :: Eq a => a -> [a] -> Int

找不到元素時會發生什么?

>> elemIndex 20 []
*** Exception: elemIndex: empty list

通常的解決方案是將索引包裝在Maybe中。 elemIndex函數存在於Data.List

-- >> elemIndex 4539 [4539, 5646, 6547, 7546]
-- Just 0
-- >> elemIndex 5646 [4539, 5646, 6547, 7546]
-- Just 1
-- >> elemIndex 6547 [4539, 5646, 6547, 7546]
-- Just 2
-- >> elemIndex 20 []
-- Nothing
elemIndex :: Eq a => a -> [a] -> Maybe Int

如果要返回出現的列表,請使用elemIndices

-- >> elemIndices 'o' "ooookay"
-- [0,1,2,3]
elemIndices :: Eq a => a -> [a] -> [Int] 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM