Scala에서 "zipLongest"를 구현하는 가장 좋은 방법

user3364825

Scala에서 "zipLongest" 함수 를 구현해야합니다 . 즉, 두 시퀀스를 쌍으로 결합하고 하나가 다른 시퀀스보다 길면 기본값을 사용합니다. ( zip가장 짧은 시퀀스로 잘리는 표준 방법 과는 다릅니다.)

다음과 같이 직접 구현했습니다.

def zipLongest[T](xs: Seq[T], ys: Seq[T], default: T): Seq[(T, T)] = (xs, ys) match {
  case (Seq(), Seq())           => Seq()
  case (Seq(), y +: rest)       => (default, y) +: zipLongest(Seq(), rest, default)
  case (x +: rest, Seq())       => (x, default) +: zipLongest(rest, Seq(), default)
  case (x +: restX, y +: restY) => (x, y) +: zipLongest(restX, restY, default)
}

더 나은 방법이 있습니까?

Marth

사용 zipAll:

scala> val l1 = List(1,2,3)
l1: List[Int] = List(1, 2, 3)

scala> val l2 = List("a","b")
l2: List[String] = List(a, b)

scala> l1.zipAll(l2,0,".")
res0: List[(Int, String)] = List((1,a), (2,b), (3,.))

첫 번째 및 두 번째 seq에 동일한 기본값을 사용하려면 다음을 수행하십시오.

scala> def zipLongest[T](xs:Seq[T], ys:Seq[T], default:T) = xs.zipAll(ys, default, default)
zipLongest: [T](xs: Seq[T], ys: Seq[T], default: T)Seq[(T, T)]

scala> val l3 = List(4,5,6,7)
l3: List[Int] = List(4, 5, 6, 7)

scala> zipLongest(l1,l3,0)
res1: Seq[(Int, Int)] = List((1,4), (2,5), (3,6), (0,7))

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

nodejs "서비스"를 구현하는 가장 좋은 방법

분류에서Dev

Aerospike에서 배치 읽기를 구현하는 가장 좋은 방법

분류에서Dev

Laravel / Vue SPA에서 Service Worker를 구현하는 가장 좋은 방법

분류에서Dev

JS에서 소멸자를 구현하는 가장 좋은 방법

분류에서Dev

iOS에서 오프라인지도를 구현하는 가장 좋은 방법

분류에서Dev

iOS (Swift)에서 드롭 다운 UI를 구현하는 가장 좋은 방법

분류에서Dev

Swift에서 포인터를 구현하는 가장 좋은 방법

분류에서Dev

이 이메일 서비스를 구현하는 가장 좋은 방법

분류에서Dev

투표 서비스를 실현하는 가장 좋은 방법

분류에서Dev

Android에서 세로 방향 텍스트를 구현하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

코드를 구현하는 가장 좋은 방법 인 Google Analytics

분류에서Dev

MVP를 구현하는 가장 좋은 방법

분류에서Dev

C #에서 고해상도 DateTime.UtcNow를 구현하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

Laravel 5에서 외부 API를 구현하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

SVG에서 루비를 구현하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

Azure에서 Windows 서비스로 푸시 서비스를 구현하는 가장 좋은 방법

분류에서Dev

AWS ec2 시스템에서 호스팅되는 API 용 HTTPS를 구현하는 가장 좋은 방법

분류에서Dev

서버에 정보를 저장하는 가장 좋은 방법

분류에서Dev

Rails의 각 모델에서 여러 UUID 및 ID를 구현하는 가장 좋은 방법

분류에서Dev

파이썬에서 추상 클래스를 구현하는 가장 좋은 방법

분류에서Dev

압축 표현에서 텐서를 변환하는 가장 좋은 방법

분류에서Dev

압축 표현에서 텐서를 변환하는 가장 좋은 방법

분류에서Dev

제네릭 / 무의미한 방식으로 제네릭 메서드를 구현하는 가장 좋은 방법

분류에서Dev

Java 불변 객체에 대한 Groovy 빌더를 구현하는 가장 좋은 방법

분류에서Dev

golang에서 단어를 검열하는 가장 좋은 방법

분류에서Dev

Java에서 REST API를 설계하는 가장 좋은 방법

분류에서Dev

grails에서 arraylist를 반복하는 가장 좋은 방법

분류에서Dev

C에서 BST를 확인하는 가장 좋은 방법

분류에서Dev

div에서 요소를 정렬하는 가장 좋은 방법

Related 관련 기사

  1. 1

    nodejs "서비스"를 구현하는 가장 좋은 방법

  2. 2

    Aerospike에서 배치 읽기를 구현하는 가장 좋은 방법

  3. 3

    Laravel / Vue SPA에서 Service Worker를 구현하는 가장 좋은 방법

  4. 4

    JS에서 소멸자를 구현하는 가장 좋은 방법

  5. 5

    iOS에서 오프라인지도를 구현하는 가장 좋은 방법

  6. 6

    iOS (Swift)에서 드롭 다운 UI를 구현하는 가장 좋은 방법

  7. 7

    Swift에서 포인터를 구현하는 가장 좋은 방법

  8. 8

    이 이메일 서비스를 구현하는 가장 좋은 방법

  9. 9

    투표 서비스를 실현하는 가장 좋은 방법

  10. 10

    Android에서 세로 방향 텍스트를 구현하는 가장 좋은 방법은 무엇입니까?

  11. 11

    코드를 구현하는 가장 좋은 방법 인 Google Analytics

  12. 12

    MVP를 구현하는 가장 좋은 방법

  13. 13

    C #에서 고해상도 DateTime.UtcNow를 구현하는 가장 좋은 방법은 무엇입니까?

  14. 14

    Laravel 5에서 외부 API를 구현하는 가장 좋은 방법은 무엇입니까?

  15. 15

    SVG에서 루비를 구현하는 가장 좋은 방법은 무엇입니까?

  16. 16

    Azure에서 Windows 서비스로 푸시 서비스를 구현하는 가장 좋은 방법

  17. 17

    AWS ec2 시스템에서 호스팅되는 API 용 HTTPS를 구현하는 가장 좋은 방법

  18. 18

    서버에 정보를 저장하는 가장 좋은 방법

  19. 19

    Rails의 각 모델에서 여러 UUID 및 ID를 구현하는 가장 좋은 방법

  20. 20

    파이썬에서 추상 클래스를 구현하는 가장 좋은 방법

  21. 21

    압축 표현에서 텐서를 변환하는 가장 좋은 방법

  22. 22

    압축 표현에서 텐서를 변환하는 가장 좋은 방법

  23. 23

    제네릭 / 무의미한 방식으로 제네릭 메서드를 구현하는 가장 좋은 방법

  24. 24

    Java 불변 객체에 대한 Groovy 빌더를 구현하는 가장 좋은 방법

  25. 25

    golang에서 단어를 검열하는 가장 좋은 방법

  26. 26

    Java에서 REST API를 설계하는 가장 좋은 방법

  27. 27

    grails에서 arraylist를 반복하는 가장 좋은 방법

  28. 28

    C에서 BST를 확인하는 가장 좋은 방법

  29. 29

    div에서 요소를 정렬하는 가장 좋은 방법

뜨겁다태그

보관