두 목록 간의 교차를 가져와 새 목록을 만드는 함수를 찾고 있는데,이 함수는 다음과 같습니다. let intersect x y = Set.intersect (Set.ofList x) (Set.ofList y)
그 중 개미는 수행하지만 inbuilt 함수를 사용하고 싶지는 않습니다. F #을두 개의 목록 사이의 교차 F #
답변
이 라이브러리의 재료를 사용하는 것이 가장 좋은 방법입니다,하지만 당신은
우리가 입력 목록 정렬되어 있다고 가정 할 수없는 경우 경우 (List.sort
를 사용하거나 직접 작성) :
let rec intersect a b =
match a with
|h::t -> match b with
|h2::t2 ->
if h=h2 then h::(intersect t t2)
else if h>h2 then intersect t b else intersect a t2
|[] -> []
|[] -> []
"병렬"일치를 사용하여 개선 될 수 있습니까? 즉, 한 번에 a와 b 모두에 일치합니까? – Joh
이 코드를 테스트했는데 작동하지 않습니다 – user1838768
@ user1838768 : 정렬 목록으로 테스트 했습니까? – pad
I을 목록을 집합으로 변환하는 것이 이 경우에 좋은.
open System.Linq
let intersect (xs:'a seq) (ys: 'a seq) = xs.Intersect(ys)
당신은 FSharpList
하여이 함수를 호출 할 수 있습니다 : 여기
- 1. 두 개의 UILabels 사이의 교차 페이드
- 2. 교차 두 개의 사전
- 3. 두 개의 2D 벡터의 교차 곱
- 4. 두 개의 간단한 F # 질문
- 5. 두 개의 사용자 정의 목록
- 6. 나는 두 개의 목록이 두 목록
- 7. 두 개의 타원 사이의 연결선
- 8. 두 개의 코드 사이의 다리
- 9. 파이썬 : 두 개의 목록
- 10. 두 개의 목록 페어링
- 11. 두 개의 폴리곤과 cgal이있는 교차 영역 계산
- 12. 두 개의 일반 언어의 교차 검사
- 13. 두 개의 직사각형의 교차 영역을 결정합니다.
- 14. 교차 둘 사이의 목록이 작동하지
- 15. OCaml과 F 사이의 코드 호환성 #
- 16. 함수 bigAdd (두 개의 int 목록 추가)
- 17. 두 개의 목록 상자 동기화
- 18. 두 개의 사전 목록 합치기
- 19. 두 개의 목록 항목 비교
- 20. 파이썬/MySQL은 두 개의 목록
- 21. 두 개의 드롭 다운 목록
- 22. F #의 목록과 [] 사이의 차이점
- 23. 두 개의 목록 상자가 나란히 있고 늘어납니다.
- 24. 원과 축 정렬 된 직사각형 사이의 교차
- 25. Java : 두 개의 사각형 사이의 충돌을 확인하는 데 도움이됩니다.
- 26. 두 개의 포인터 사이의 간격을 찾기에있는 C
- 27. 두 개의 다른 메쉬 사이의 비틀림 변형
- 28. 두 개의 .cs 클래스 사이의 객체입니까?
- 29. 두 개의 평행선 사이의 최대 점 수
- 30. 두 개의 십진수 사이의 백분율 증가 계산
inbuilt 물건을 사용하는 것이 정확히 잘못되었습니다 - 직접 쓰는 것보다 훨씬 낫습니다. 또한 쓰는 것은 무엇이든 그것을 복제하려고 시도하는 것입니다. –
목록의 순서를 무시하면 세트가 아닌 멀티 세트로 볼 수 있습니다. 목록에 여러 번 나타나는 요소로 무엇을하고 싶습니까? – Joh