setof / 3가 중복을 제거하지 않는 것 같습니다.

제 나디아 그로 네 발트

다음 코드를 사용하여 목록 L1과 범용 목록 L2가 주어지면 목록의 보완을 찾으려고합니다.

complement(L1, L2, Res):-
    setof(X, (nth0(N, L2, X), not(member(X,L1))),Res).

그러나 내 결과에는 중복이 포함되며 원하는대로 목록 형식으로 제공되지 않습니다.

23 ?- complement([1,3], [-1,1,3,5,2,4,2,55,1,0], Res).
Res = [-1] ;
Res = [5] ;
Res = [2] ;
Res = [4] ;
Res = [2] ;
Res = [55] ;
Res = [0].

아마도 Prolog의 내장 역 추적 때문일 것이라고 생각했지만 결과의 형식을 올바르게 지정하고 결과에서 중복 항목을 제거하도록이 문제를 해결하는 방법을 모르겠습니다.

머리카락 C.

코드에서 N싱글 톤 이라는 경고를 받고 setof / 3 에서는 각 변수가 '보편적으로 수량화'되어 선언되어야합니다. 따라서 함께 사라지는 두 가지 문제가 있습니다. nth0 / 3을 member / 2로 바꿉니다.

complement(L1, L2, Res):-
    setof(X, (member(X, L2), not(member(X, L1))), Res).

편집하다

대칭 차이는

symdiff(L1,L2,Diff) :-
    setof(X,(eldiff(L1,L2,X);eldiff(L2,L1,X)),Diff).
eldiff(L1,L2,X) :-
    member(X,L1), \+member(X,L2).

L1과 L2가 정렬 된 세트 인 경우 ord_symdiff 를 사용하는 것이 훨씬 좋습니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

lodash의 .sortedUniq ()는 중복을 제거하지 않는 것 같습니다. 어떻게 작동합니까?

분류에서Dev

중복 데이터를 제거하는 것이 실제로 중복을 제거하는 것 같지 않습니까?

분류에서Dev

SignalR Core가 Newtonsoft의 TypeNameHandling 설정을 존중하지 않는 것 같습니다.

분류에서Dev

FutureTask가 중단되지 않는 것 같습니다.

분류에서Dev

macOS Sierra의 PF가 ApplicationFirewall을 읽지 않는 것 같습니다.

분류에서Dev

Peewee 거래가 작동하지 않는 것 같습니다.

분류에서Dev

PHP file_exists가 작동하지 않습니다. 진실과 거짓을 뒤집는 것 같습니다

분류에서Dev

Summarise ()가 제대로 작동하지 않는 것 같습니다.

분류에서Dev

setOnPreferenceChangedListener가 제대로 작동하지 않는 것 같습니다.

분류에서Dev

macdeployqt가 제대로 작동하지 않는 것 같습니다.

분류에서Dev

플로트가 배경색을 제거하는 것 같습니다.

분류에서Dev

React의 setState가 항목 배열을 제거하는 것 같습니다.

분류에서Dev

BEMCheckBox가 제약 조건을 따르지 않는 것 같습니다.

분류에서Dev

가설은 pytest의 maxfail 인수를 존중하지 않는 것 같습니다.

분류에서Dev

Rails Logger가 로그 라인을 복제하는 것 같습니다.

분류에서Dev

clojure-conj가 벡터에 값을 추가하지 않는 것 같습니다.

분류에서Dev

다중 스크롤 JS가 제대로 작동하지 않는 것 같습니다.

분류에서Dev

map () 함수가해야 할 일을하지 않는 것 같습니다.

분류에서Dev

Android AccountManager가 토큰을 무효화하지 않는 것 같습니다.

분류에서Dev

CsvMapReader가 내 파일을 구문 분석하지 않는 것 같습니다.

분류에서Dev

ngResource transformResponse가 응답을 변환하지 않는 것 같습니다.

분류에서Dev

Apache 웹 서버가 utf-8을 좋아하지 않는 것 같습니다.

분류에서Dev

ObservableCollection이 추가 된 항목을 저장하지 않는 것 같습니다.

분류에서Dev

재귀 함수가 값을 반환하지 않는 것 같습니다.

분류에서Dev

iOS의 3DES 암호화가 마지막 블록을 암호화하지 않는 것 같습니다.

분류에서Dev

iOS의 3DES 암호화가 마지막 블록을 암호화하지 않는 것 같습니다.

분류에서Dev

Jenkins가 GitHub 저장소를 복제하지 않는 것 같습니다 .npm 설치에서 파일을 찾을 수 없습니다.

분류에서Dev

C ++가 문자열에서 실행을 중지하는 것 같습니다.

분류에서Dev

중복이 어레이에 추가되는 것을 중지하는 데 문제가 있습니다.

Related 관련 기사

  1. 1

    lodash의 .sortedUniq ()는 중복을 제거하지 않는 것 같습니다. 어떻게 작동합니까?

  2. 2

    중복 데이터를 제거하는 것이 실제로 중복을 제거하는 것 같지 않습니까?

  3. 3

    SignalR Core가 Newtonsoft의 TypeNameHandling 설정을 존중하지 않는 것 같습니다.

  4. 4

    FutureTask가 중단되지 않는 것 같습니다.

  5. 5

    macOS Sierra의 PF가 ApplicationFirewall을 읽지 않는 것 같습니다.

  6. 6

    Peewee 거래가 작동하지 않는 것 같습니다.

  7. 7

    PHP file_exists가 작동하지 않습니다. 진실과 거짓을 뒤집는 것 같습니다

  8. 8

    Summarise ()가 제대로 작동하지 않는 것 같습니다.

  9. 9

    setOnPreferenceChangedListener가 제대로 작동하지 않는 것 같습니다.

  10. 10

    macdeployqt가 제대로 작동하지 않는 것 같습니다.

  11. 11

    플로트가 배경색을 제거하는 것 같습니다.

  12. 12

    React의 setState가 항목 배열을 제거하는 것 같습니다.

  13. 13

    BEMCheckBox가 제약 조건을 따르지 않는 것 같습니다.

  14. 14

    가설은 pytest의 maxfail 인수를 존중하지 않는 것 같습니다.

  15. 15

    Rails Logger가 로그 라인을 복제하는 것 같습니다.

  16. 16

    clojure-conj가 벡터에 값을 추가하지 않는 것 같습니다.

  17. 17

    다중 스크롤 JS가 제대로 작동하지 않는 것 같습니다.

  18. 18

    map () 함수가해야 할 일을하지 않는 것 같습니다.

  19. 19

    Android AccountManager가 토큰을 무효화하지 않는 것 같습니다.

  20. 20

    CsvMapReader가 내 파일을 구문 분석하지 않는 것 같습니다.

  21. 21

    ngResource transformResponse가 응답을 변환하지 않는 것 같습니다.

  22. 22

    Apache 웹 서버가 utf-8을 좋아하지 않는 것 같습니다.

  23. 23

    ObservableCollection이 추가 된 항목을 저장하지 않는 것 같습니다.

  24. 24

    재귀 함수가 값을 반환하지 않는 것 같습니다.

  25. 25

    iOS의 3DES 암호화가 마지막 블록을 암호화하지 않는 것 같습니다.

  26. 26

    iOS의 3DES 암호화가 마지막 블록을 암호화하지 않는 것 같습니다.

  27. 27

    Jenkins가 GitHub 저장소를 복제하지 않는 것 같습니다 .npm 설치에서 파일을 찾을 수 없습니다.

  28. 28

    C ++가 문자열에서 실행을 중지하는 것 같습니다.

  29. 29

    중복이 어레이에 추가되는 것을 중지하는 데 문제가 있습니다.

뜨겁다태그

보관