Haskell : 목록에서 중복 된 튜플을 제거 하시겠습니까?

위생적인

나는 전에서 후 상태로 얻으려고 노력하고 있습니다. 목록에서 중복 된 튜플을 제거하는 편리한 Haskell 함수가 있습니까? 아니면 전체 목록을 반복하는 것과 같이 조금 더 복잡한 것일까 요?

Before: the list of tuples, sorted by word, as in
   [(2,"a"), (1,"a"), (1,"b"), (1,"b"), (1,"c"), (2,"dd")]
After: the list of sorted tuples with exact duplicates removed, as in
   [(2,"a"), (1,"a"), (1,"b"), (1,"c"), (2,"dd")]
behzad.nouri

검색 Eq a => [a] -> [a]hoogle , 반환 nub기능 :

nub 함수는 목록에서 중복 요소를 제거합니다. 특히 각 요소의 첫 번째 발생 만 유지합니다. (이름 nub은 '본질'을 의미합니다.)

문서에서와 같이보다 일반적인 경우는 nubBy.

즉, 이것은 O(n^2)알고리즘이며 매우 효율적이지 않을 수 있습니다. 대안은 다음과 Data.Set.fromList같이 값이 Ord유형 클래스 의 인스턴스 인 경우 사용 하는 입니다.

import qualified Data.Set as Set

nub' :: Ord a => [a] -> [a]
nub' = Set.toList . Set.fromList

이것은 원래 목록의 순서를 유지 하지 않습니다 .

원래 목록 의 순서유지 하는 간단한 세트 스타일 솔루션 은 다음과 같습니다.

import Data.Set (Set, member, insert, empty)

nub' :: Ord a => [a] -> [a]
nub' = reverse . fst . foldl loop ([], empty)
    where
    loop :: Ord a => ([a], Set a) -> a -> ([a], Set a)
    loop acc@(xs, obs) x
        | x `member` obs = acc
        | otherwise = (x:xs, x `insert` obs)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

목록에서 중복 된 연속 튜플을 제거 하시겠습니까?

분류에서Dev

linq 목록에서 중복을 제거 하시겠습니까?

분류에서Dev

목록 C #에서 중복 된 데이터를 제거 하시겠습니까?

분류에서Dev

Wordpress에서 중복 된 주석을 제거 하시겠습니까?

분류에서Dev

목록에서 중복 문자열을 제거 하시겠습니까?

분류에서Dev

튜플을 사용하여 VBA의 목록에서 중복 좌표 제거

분류에서Dev

Python의 중첩 목록에서 역 중복을 제거하는 시간을 절약 하시겠습니까?

분류에서Dev

튜플 목록에서 중복 제거

분류에서Dev

Mongodb에서 키 및 참조 된 객체를 기반으로 중복을 제거 하시겠습니까?

분류에서Dev

Python의 중첩 목록에서 연속 중복을 제거 하시겠습니까?

분류에서Dev

중복 항목을 제거 하시겠습니까?

분류에서Dev

PHP 또는 MySQL을 사용하여 큰 목록에서 중복을 제거 하시겠습니까?

분류에서Dev

목록에 중첩 된 튜플을 제거하는 방법은 무엇입니까?

분류에서Dev

두 개의 다른 목록에서 중복 행을 제거 하시겠습니까?

분류에서Dev

2D 목록, 파이썬에서 연속 중복을 제거 하시겠습니까?

분류에서Dev

목록에서 2x2 튜플을 생성하고 파이썬에서 중복 된 튜플 찾기

분류에서Dev

파이썬 목록에서 중복 조합 튜플을 제거하는 방법은 무엇입니까?

분류에서Dev

PHP / MySQL은 목록에서 중복 된 이름을 제거합니다.

분류에서Dev

set ()을 사용하지 않고 튜플에서 중복 제거

분류에서Dev

튜플에서 중복을 제거하는 방법

분류에서Dev

중복 개수를 표시하고 중복 항목을 동시에 제거 하시겠습니까?

분류에서Dev

큰 목록에서 중복 항목을 제거하지만 존재하는 경우 둘 다 제거 하시겠습니까?

분류에서Dev

Python에서 하위 목록이 고르지 않을 때 중복 된 하위 목록 제거

분류에서Dev

Python에서 하위 목록이 고르지 않을 때 중복 된 하위 목록 제거

분류에서Dev

쌍으로 중복 된 줄을 삭제 하시겠습니까?

분류에서Dev

왼쪽 조인에서 중복을 제거 하시겠습니까?

분류에서Dev

T-SQL이 테이블에서 중복을 제거 하시겠습니까?

분류에서Dev

튜플 목록은 첫 번째 인덱스로 중복을 제거합니다.

분류에서Dev

세트를 사용하지 않고 중첩 된 목록에서 중복을 제거합니다.

Related 관련 기사

  1. 1

    목록에서 중복 된 연속 튜플을 제거 하시겠습니까?

  2. 2

    linq 목록에서 중복을 제거 하시겠습니까?

  3. 3

    목록 C #에서 중복 된 데이터를 제거 하시겠습니까?

  4. 4

    Wordpress에서 중복 된 주석을 제거 하시겠습니까?

  5. 5

    목록에서 중복 문자열을 제거 하시겠습니까?

  6. 6

    튜플을 사용하여 VBA의 목록에서 중복 좌표 제거

  7. 7

    Python의 중첩 목록에서 역 중복을 제거하는 시간을 절약 하시겠습니까?

  8. 8

    튜플 목록에서 중복 제거

  9. 9

    Mongodb에서 키 및 참조 된 객체를 기반으로 중복을 제거 하시겠습니까?

  10. 10

    Python의 중첩 목록에서 연속 중복을 제거 하시겠습니까?

  11. 11

    중복 항목을 제거 하시겠습니까?

  12. 12

    PHP 또는 MySQL을 사용하여 큰 목록에서 중복을 제거 하시겠습니까?

  13. 13

    목록에 중첩 된 튜플을 제거하는 방법은 무엇입니까?

  14. 14

    두 개의 다른 목록에서 중복 행을 제거 하시겠습니까?

  15. 15

    2D 목록, 파이썬에서 연속 중복을 제거 하시겠습니까?

  16. 16

    목록에서 2x2 튜플을 생성하고 파이썬에서 중복 된 튜플 찾기

  17. 17

    파이썬 목록에서 중복 조합 튜플을 제거하는 방법은 무엇입니까?

  18. 18

    PHP / MySQL은 목록에서 중복 된 이름을 제거합니다.

  19. 19

    set ()을 사용하지 않고 튜플에서 중복 제거

  20. 20

    튜플에서 중복을 제거하는 방법

  21. 21

    중복 개수를 표시하고 중복 항목을 동시에 제거 하시겠습니까?

  22. 22

    큰 목록에서 중복 항목을 제거하지만 존재하는 경우 둘 다 제거 하시겠습니까?

  23. 23

    Python에서 하위 목록이 고르지 않을 때 중복 된 하위 목록 제거

  24. 24

    Python에서 하위 목록이 고르지 않을 때 중복 된 하위 목록 제거

  25. 25

    쌍으로 중복 된 줄을 삭제 하시겠습니까?

  26. 26

    왼쪽 조인에서 중복을 제거 하시겠습니까?

  27. 27

    T-SQL이 테이블에서 중복을 제거 하시겠습니까?

  28. 28

    튜플 목록은 첫 번째 인덱스로 중복을 제거합니다.

  29. 29

    세트를 사용하지 않고 중첩 된 목록에서 중복을 제거합니다.

뜨겁다태그

보관