У меня есть список кортежей, где каждый кортеж представляет строку и столбец пикселя. Как бы я мог эффективно построить список, где для каждого кортежа (i, j)
в первом списке элемент в позиции i*width + j
в новом списке имеет значение 1?Haskell Построение списка из списка кортежей
-2
A
ответ
1
Во-первых, сортировать список точек
let sortedPoints = sort [(0, 1), (1, 0), (1, 1)]
-- == [(0, 0), (0, 1), (1, 0)]
Затем создайте список всех точек
let allPoints = [(x, y) | x <- [0, 3], y <- [0, 3]]
-- where I chose width = 3
-- = [(0,0),(0,1),(0,2),(0,3),(1,0),(1,1),(1,2),(1,3),(2,0),(2,1),(2,2),(2,3),(3,0),(3,1),(3,2),(3,3)]
Обратите внимание, что это происходит автоматически сортируется.
Наконец, написать функцию, которая проходит через пункты один за другим и проверяет, какие элементы из списка sortedPoints находятся в allPoints
isIn::[(Int, Int)]->[(Int, Int)]->[Int]
isIn [] [] = []
isIn (first:rest) (allFirst:allRest) | first == allFirst = 1:isIn rest allRest
isIn points (_:rest) = 0:isIn points rest
Тогда просто вычислить
isIn sortedPoints allPoints
Смежные вопросы
- 1. Построение списка из кортежей
- 2. удаления кортежей из списка (Haskell)
- 3. Haskell: Распечатка содержимого списка кортежей
- 4. Функция сортировки списка кортежей - Haskell
- 5. Получение элемента из списка кортежей в Haskell
- 6. Создания кортежей вариаций из списка - Haskell
- 7. Удаление сопряженных кортежей из списка в Haskell
- 8. Haskell: Удаление дубликатов кортежей из списка?
- 9. Создание списка кортежей из списка
- 10. Удаление элемента из списка кортежей
- 11. Сортировка кортежей внутри списка в Haskell
- 12. выбор из кортежей списка
- 13. Удаление кортежей из списка
- 14. Haskell Преобразование списка в список кортежей
- 15. поиск минимума списка кортежей в HASKELL
- 16. Построение списка списков внутри списков в Haskell
- 17. Уникальные комбинации из 4 из списка кортежей в haskell
- 18. Фильтрация списка кортежей
- 19. Строка списка кортежей из списка в Erlang
- 20. Распаковка списка кортежей из списка (ов)
- 21. Создание списка Python из списка кортежей
- 22. Сортировка списка в кортежей
- 23. Python: из списка кортежей в словаре кортежей
- 24. Фильтр RDD кортежей из другого списка кортежей
- 25. значение извлечения кортежей из списка кортежей
- 26. исключить первую позицию кортежей из списка кортежей
- 27. как принять определенное значение из списка кортежей в haskell?
- 28. Получение первого кортежа из списка кортежей в Haskell
- 29. Возвратите уникальные кортежи из списка кортежей в Haskell
- 30. Создание списка кортежей из функции
Эффективное, в отличие от того, какой подход? Конечно, вы можете сделать это как-то. – leftaroundabout
Если вы говорите о пикселях, разве вы не имеете в виду 'i + stride * j' position, а не' i * j'? Или вы действительно хотите скомпоновать все кортежи, чьи элементы умножаются, чтобы дать одинаковое значение? – comingstorm
Я попытался проверить каждую комбинацию i и j, если кортеж (i, j) был элементом первого списка, но этот подход казался слишком медленным. – dissem