4
스칼라 정규 표현식 중 3 개가 주어진 문자열과 일치하는지 테스트해야합니다.Applicative Functor를 사용하여 3 가지 스칼라 정규 표현식 중 하나 이상 일치시키기
나는 다음 작업을 수행 할 수 있다는 것을 알고 :
val matches = R1.findFirstIn(myString).isDefined ||
R2.findFirstIn(myString).isDefined ||
R3.findFirstIn(myString).isDefined
하지만 난 Scalaz 라이브러리에서 실용적은 Functor 또는 모나드를 사용하여이 작업을 수행 할 수있는 방법이 있다고 생각합니다.
어떻게이 작업을 수행 할 수 있습니까?
감사합니다. 나는 Haskell과 Scala에서 Functors, Applicative Functors, Monoids, Monads 모두에 대해 많이 읽었지 만, 머리를 감싸는 것은 여전히 어렵다. – Ralph
'first' 호출을'head'로 변경해야합니까? 'first'는 더 이상 사용되지 않는 것으로 주석 처리됩니다. – Ralph
나는'Seq (R1, R2, R3) .exists (_. findFirstIn ("test"). isDefined)'를 선호한다. 왜냐하면 첫번째 일치를 찾았을 때 멈출 것이기 때문에 더 효율적이다. –