나는 [1..12]
과 같은 목록을 가지고 있으며 [4..9]
과 같은 조각을 얻고 싶습니다. 아무리 내가 그것을 할 수 있는지, 나는 F #으로 새로운 사람이다. 거기에 기본 제공 방법이 있는지 모르겠지만 수동 방법을 알고 싶습니다. 당신을 가정목록을 얻는 방법?
4
A
답변
4
질문에 대한 즉각적인 답변을 제공하려면 어떻게해야합니까? 패턴 일치.
패턴 일치를 사용하여 목록에서 범위를 추출하는 함수를 작성할 수 있습니다. 기본 알고리즘은 입니다. E < Min 동안 목록의 각 요소를 건너 뛰고 E < = 최대 동안 각 요소를 가져옵니다. 다음과 같은 내용 :
let range min max xs =
let rec skipWhile f = function
| x::xs when f x -> skipWhile f xs
| xs -> xs
let rec takeWhile f acc = function
| x::xs when f x -> takeWhile f (x::acc) xs
| _ -> List.rev acc
xs
|> skipWhile ((>) min)
|> takeWhile ((>=) max) []
[1..12] |> range 4 9
> val it : int list = [4; 5; 6; 7; 8; 9]
1
는 아마도 List 표준 모듈, 아마 그 filter
기능을 사용하려면 F 번호의 OCaml의 같은 부분 집합을 사용합니다.
그렇지 않으면 일치하는 꼬리 재귀 함수가 할 수 있습니다.
8
[1..12] |> List.filter (fun x -> x >= 4 && x <= 9)
또는
[1..12] |> Seq.skip 3 |> Seq.take 6 |> Seq.toList
목록은 슬라이스를 지원하지 않지만 대신 배열을 사용하는 경우이 작업을 수행 할 수 있습니다
이[|1..12|].[3..8]
(3..8을 대신주의 0-9 기반 인덱싱으로 인해 4.9)
관련 문제
- 1. 개체 목록을 얻는 방법
- 2. 보고서 목록을 얻는 방법
- 3. 목록을 병합하여 목록 목록을 얻는 방법?
- 4. Android에서 언어 목록을 얻는 방법
- 5. 인터페이스 구성원 목록을 얻는 방법
- 6. 특정 어레이 목록을 얻는 방법
- 7. 종속성의 재귀 목록을 얻는 방법
- 8. 상호 친구 목록을 얻는 방법
- 9. joomla 언어 목록을 얻는 방법
- 10. 고유해야하는 난수 목록을 얻는 방법
- 11. LINQ에서 값 목록을 얻는 방법
- 12. Asciidoc에서 수치 목록을 얻는 방법
- 13. Eloquent에서 친구 목록을 얻는 방법
- 14. MS Access에서보기 목록을 얻는 방법
- 15. Drupal : 모듈 목록을 얻는 방법
- 16. 시스템의 측면 목록을 얻는 방법
- 17. gradle에서 의존성 목록을 얻는 방법
- 18. 목록을 얻는 가장 좋은 방법
- 19. 트위터 트렌드 목록을 얻는 방법
- 20. 팔로워의 전체 목록을 얻는 방법
- 21. tcl에서 배열 목록을 얻는 방법
- 22. .Net에서 로케일 목록을 얻는 방법
- 23. J2ME에서 로케일 목록을 얻는 방법
- 24. 자바에서 국적의 목록을 얻는 방법
- 25. xcode에서 클래스 목록을 얻는 방법
- 26. 모든 판매자 목록을 얻는 방법?
- 27. symfony에서 모듈 목록을 얻는 방법
- 28. 디렉토리의 파일 목록을 얻는 방법
- 29. magento에서 skus 목록을 얻는 방법
- 30. 두 목록을 병합하여 vb.net에서 중복 값이없는 별개 목록을 얻는 방법