스칼라 : 함수 꼬리를 재귀 적으로 만들기

바다

스칼라에는 다음과 같은 기능이 있습니다.

def is_in[T](e: T, as: List[T]) : Boolean = as match
{
  case Nil => false;
  case x::xs => e == x || is_in(e, xs);
}

이제이 함수 꼬리를 재귀 적으로 만들고 싶습니다. 내 생각은 다음과 같습니다.

// tail recursive:

def is_in[T](e: T, as:List[T]) : Boolean =
{
  @tailrec
  def is_in_tailrec[T](e: T, as:List[T], acc: Boolean) : Boolean =
  {
    as match
    {
      case Nil => acc;
      case x::xs => is_in_tailrec(... here I got stuck ...);
    }
  }
  is_in_tailrec(e, as, 1);
}

누군가이 함수 꼬리를 재귀 적으로 만들 수있는 방법에 대한 조언을 해주시겠습니까?

드미트리 로이 토프

내 제안은

{
    case Nil => acc
    case _ if acc => acc
    case x :: xs => is_in_tailrec(e, xs, x == e)
}

또는 심지어

{
    case x :: xs if !acc => is_in_tailrec(e, xs, x == e)
    case _ => acc
}

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

스칼라의 꼬리 재귀 적 요인 함수

분류에서Dev

재귀 코드 만들기, 스칼라에서 꼬리 재귀

분류에서Dev

이 함수를 배열에서 재귀 적으로 만들기

분류에서Dev

스택 오버플로를 일으키는 Kotlin 꼬리 재귀 함수

분류에서Dev

스칼라에서 mapValues 재귀 함수를 만드는 방법

분류에서Dev

꼬리 재귀 스칼라

분류에서Dev

스칼라가이 함수를 꼬리 재귀로 컴파일하지 못하는 이유는 무엇입니까?

분류에서Dev

기본 케이스가 0 인 스칼라의 꼬리 재귀

분류에서Dev

꼬리 재귀 함수를 만들고 테스트하는 방법은 무엇입니까? OCaml

분류에서Dev

꼬리 재귀 함수가 여전히 스택 오버플로를 얻을 수 있습니까?

분류에서Dev

jQuery 함수를 재귀 적으로 초기화

분류에서Dev

재귀 적으로 비동기 함수를 호출하는 함수 대기

분류에서Dev

꼬리 재귀 함수를위한 사용자 친화적 인 래핑

분류에서Dev

까다로운 :: 함수를 꼬리 재귀로 다시 작성하십시오.

분류에서Dev

스칼라에서 재귀 적으로 목록에서 최대 값 찾기

분류에서Dev

(아마도 단항) 함수를 재귀 적으로 적용하기

분류에서Dev

자바 스크립트 : 재귀 적으로 트리의 자식 수 세기

분류에서Dev

재귀 함수에서 꼬리와 트램폴린으로 스택 오버플로를 피하는 방법은 무엇입니까?

분류에서Dev

이 계승 함수를 재귀 적으로 만들 수있는 방법은 무엇입니까?

분류에서Dev

이 알고리즘을 재귀 적으로 만들 수 있습니까?

분류에서Dev

스칼라 재귀 함수 값 정의

분류에서Dev

Promise를 반환하는 비동기 함수를 재귀 적으로 호출

분류에서Dev

스칼라. 클래스를 제네릭으로 만들기

분류에서Dev

적응 형 사다리꼴 구적법을 그리기 위해 Matlab에서 재귀 함수 만들기

분류에서Dev

비동기 함수를 재귀 적으로 반환하는 방법

분류에서Dev

유형만을 기반으로 sqlcontext 암시 적 인코더를 생성하는 스칼라 메서드를 어떻게 만들 수 있습니까?

분류에서Dev

스칼라에서 꼬리 재귀 상태에 도달하기 위해 for 루프 피하기

분류에서Dev

재귀 적으로 디렉토리 파일 수 찾기

분류에서Dev

재귀 적으로 벡터 만들기

Related 관련 기사

  1. 1

    스칼라의 꼬리 재귀 적 요인 함수

  2. 2

    재귀 코드 만들기, 스칼라에서 꼬리 재귀

  3. 3

    이 함수를 배열에서 재귀 적으로 만들기

  4. 4

    스택 오버플로를 일으키는 Kotlin 꼬리 재귀 함수

  5. 5

    스칼라에서 mapValues 재귀 함수를 만드는 방법

  6. 6

    꼬리 재귀 스칼라

  7. 7

    스칼라가이 함수를 꼬리 재귀로 컴파일하지 못하는 이유는 무엇입니까?

  8. 8

    기본 케이스가 0 인 스칼라의 꼬리 재귀

  9. 9

    꼬리 재귀 함수를 만들고 테스트하는 방법은 무엇입니까? OCaml

  10. 10

    꼬리 재귀 함수가 여전히 스택 오버플로를 얻을 수 있습니까?

  11. 11

    jQuery 함수를 재귀 적으로 초기화

  12. 12

    재귀 적으로 비동기 함수를 호출하는 함수 대기

  13. 13

    꼬리 재귀 함수를위한 사용자 친화적 인 래핑

  14. 14

    까다로운 :: 함수를 꼬리 재귀로 다시 작성하십시오.

  15. 15

    스칼라에서 재귀 적으로 목록에서 최대 값 찾기

  16. 16

    (아마도 단항) 함수를 재귀 적으로 적용하기

  17. 17

    자바 스크립트 : 재귀 적으로 트리의 자식 수 세기

  18. 18

    재귀 함수에서 꼬리와 트램폴린으로 스택 오버플로를 피하는 방법은 무엇입니까?

  19. 19

    이 계승 함수를 재귀 적으로 만들 수있는 방법은 무엇입니까?

  20. 20

    이 알고리즘을 재귀 적으로 만들 수 있습니까?

  21. 21

    스칼라 재귀 함수 값 정의

  22. 22

    Promise를 반환하는 비동기 함수를 재귀 적으로 호출

  23. 23

    스칼라. 클래스를 제네릭으로 만들기

  24. 24

    적응 형 사다리꼴 구적법을 그리기 위해 Matlab에서 재귀 함수 만들기

  25. 25

    비동기 함수를 재귀 적으로 반환하는 방법

  26. 26

    유형만을 기반으로 sqlcontext 암시 적 인코더를 생성하는 스칼라 메서드를 어떻게 만들 수 있습니까?

  27. 27

    스칼라에서 꼬리 재귀 상태에 도달하기 위해 for 루프 피하기

  28. 28

    재귀 적으로 디렉토리 파일 수 찾기

  29. 29

    재귀 적으로 벡터 만들기

뜨겁다태그

보관