У меня есть это для-понимания:карту или соответствовать Scalaz.EitherT
val seq = for {
accessToken <- EitherT(getAccessToken(code))
data <- EitherT(getDefaultData(accessToken))
user <- EitherT(mapUser(data.getResponseBody))
} yield {
if (Users.getUserByOriginId(user.origin).isEmpty) {
Users.register(user)
OAuthProvider.redirectToSignUp(user.userId.get)
} else {
OAuthProvider.redirectToAuthentication(user.userId.get)
}
}
It цепочек com.twitter.util.Future
операций, каждый из методов возвращая Future[\/[InvalidResponse, CorrectResponse]]
Я теперь хочу map
или match
над результатом ,
val response = seq.run match {
case x.left => "something"
case y.right => "something else"
}// this syntax is invalid
Что такое правильный синтаксис для match
между left
и right
?
Я бы определенно пошел на сгиб! –