banovski

Matches Indices

Nov 26th, 2021 (edited)
1,111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Задача: определить функцию, которая принимает список или строку, а
  2. -- также значение, которое в них может входить, а может и не входить,
  3. -- и возвращает индексы всех вхождений искомого значения в виде
  4. -- списка; если искомое значение отсутствует в списке, то возвращается
  5. -- пустой список.
  6.  
  7. matches :: Eq a => [a] -> a -> [Int]
  8. matches l si = [x | (x, y) <- zip [0 ..] l, y == si]
  9.  
  10.  
  11. -- main = print $ matches [1, 2, 3, 11, 2, 33, 14, 3] 3
  12. -- [2,7]
  13.  
  14. -- main = print $ matches "foobarbaz" 'b'
  15. -- [3,6]
  16.  
  17. -- main = print $ matches [(0,9),(1,8),(2,7),(3,6),(4,5),(5,4),(6,3),(7,2),(8,1),(9,0)] (5,4)
  18. -- [5]
  19.  
  20. -- main = print $ matches [False,True,True,False] True
  21. -- [1,2]
  22.  
Add Comment
Please, Sign In to add comment