2016-11-17 2 views
1

여기에서 얻은 코드는 다음과 같습니다. http://underscore.io/blog/posts/2015/06/10/an-introduction-to-cats.html.고양이는 기호를 해결할 수 없습니다 | @ |

import cats.data.Xor 
import cats.data.{Validated, Xor} 
import cats.syntax.apply._ // For |@| syntax 
import cats.std.list._ 
val v1: ValidatedR = valid(1) 
val v2: ValidatedR = invalid(List("Accumulates this")) 
val v3: ValidatedR = invalid(List("And this")) 
(v1 |@| v2 |@| v3) map { _ + _ + _ } 

그러나, 나는 점점 해요 :

Cannot resolve symbol |@| 

build.sbt : 내가 가져 오거나 사용해야 다른 아무것도

val snapshots = "Sonatype Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots" 

val algebraVersion = "0.2.0-SNAPSHOT" 
val catsVersion = "0.1.0-SNAPSHOT" 

val algebra = "org.spire-math" %% "algebra" % algebraVersion 
val algebraStd = "org.spire-math" %% "algebra-std" % algebraVersion 

val cats  = "org.spire-math" %% "cats-core" % catsVersion 
val catsStd = "org.spire-math" %% "cats-std" % catsVersion 

scalaVersion := "2.11.6" 

libraryDependencies ++= 
    Seq(
    algebra, algebraStd, 
    cats, catsStd 
) 

resolvers += snapshots 

있습니까?

+0

가져 오기가 이제'cats.syntax.cartesian._'이고'List' 인스턴스도'cats.instances.list._'와 함께 가져올 수 있습니다. 아마 당신이 시작한다면 가장 쉬운 방법은'import cats.implicits._'를 사용하는 것입니다. –

+0

'cats.syntax.cartesian._'을 가져올 때'오류 : (2, 22) 객체 데카르트가 패키지 cats.syntax의 멤버가 아닙니다' ^ – octavian

+0

기사에서 언급 된 고양이 버전을 사용하고 있습니까? –

답변

5

예제는 약간 날짜가 있습니다. 몇 가지 그 이후로 변경되었습니다

  • |@|은 이제 전 Apply 형 클래스에 비해 Cartesian 타입 클래스가 제공된다.
  • 스칼라 표준 라이브러리의 Option, List 등과 같은 유형의 가져 오기는 cats.std.xxx에서 cats.instances.xxx으로 이름이 바뀌 었습니다.
  • 최신 버전의 Cats에는 더 이상 Xor 데이터 유형이 없지만 대신 scala.util.Either 데이터 유형이 사용됩니다.

내 의견에 언급했듯이 "uber"가져 오기 cats.implicits._을 사용하는 것이 더 쉽습니다.

일부 유사한 (및 최신) 예제의 경우 ValidatedEither이라는 Cats 문서를 살펴볼 수 있습니다.

+1

주의 : 대량으로 implicits를 가져 오는 것이 더 쉽지만 컴파일을 더 비싸게 만들 수 있습니다. 일반적으로 암시의 정확한 수입이 바람직합니다. –

+0

당신은 @GabrielePetronella 포인트를 가지고 있습니다. 그러나 이것들은 좀 더 발전적이며 초보자에게 친숙하지 않기 때문에 동의하지 않으십니까? Cats 문서는 모든 곳에서 "uber"가져 오기를 사용하려고 시도합니다 ([# 1026] (https://github.com/typelevel/cats/issues/1026) 참조). –

+0

예, 동의합니다. 요점은 다음과 같습니다. 분명히 들리지 않을 수도있는 비용으로 uber 수입이 발생합니다. –