복붙노트

[SCALA] 어떻게 오른쪽 연관 중위 연산자를 만드는 방법?

SCALA

어떻게 오른쪽 연관 중위 연산자를 만드는 방법?

나는 >> 연관 작업을해야합니다. 문제는 그 비용은 선형의 왼쪽 피연산자의 크기에 따라 달라집니다 것입니다. n 개의 애플리케이션 >> 등의 서열에 의해 형성된 발현 그래서

a >> a >> a >> a >> a >> ... >> a

기본적으로 중위 연산자 왼쪽 연관되어 있기 때문에, N의 측면에서 차 비용이. 어떻게 이런 식의 비용은 N의 측면에서 선형 유지 그래서 그것은 바로 연관 만들어?

해결법

  1. ==============================

    1.나는 해결책을 찾아 냈다. 스칼라 참조 섹션 6.12.3 중위 운영 말한다 :

    나는 해결책을 찾아 냈다. 스칼라 참조 섹션 6.12.3 중위 운영 말한다 :

    그러므로 >>에 >> 이름 바꾸기에 충분했다 :.

    >> B가에 desugared 동안 그것은 나에게 실현하는 데 시간이 걸렸다 >> (b)에 >> :. (B)가 B에 desugared한다 >> :( A)를.. 그래서 나는 >> 정의했다 :로

    def >>:(x: T): T = x >> this
    
  2. from https://stackoverflow.com/questions/15384744/how-to-make-a-right-associative-infix-operator by cc-by-sa and MIT license