The power of projections

Aug 03, 2014 22:28

Предположим, что у вас есть интерфейсов с сигнатурами вида

trait DaoPersistence {

def doA(...): Option[A]

def doB(a: A): Option[B]

}

и есть например желание сделать из них, как в хаскеле, ду-нотацию с матюками

поскольку матюки могут в целом быть разные, то можно применять вот такой вот многословный трюк

(for (

myA <- doA(...).toEither ( Read more... )

scala

Leave a comment

Comments 2

ex_juan_gan August 4 2014, 02:56:03 UTC
У меня для этого есть класс Result, который я так и пользую. Там еще тензорное произведение есть, например:

val whateverFound = for (
(((((claimNr, accountID), date), providerInfo), kind), sStatusIns) <-
(source findHaving ClaimNr) <*>
(source findHaving AccountID) <*>
(source findHaving DateOfService) <*>
(source findHaving ProviderName) <*>
(source findHaving KindOfService flatMap findServiceKind) <*>
(source findHaving StatusIns);
user <- userOpt;
prefixes <- prefixesOpt
) yield {

Reply


fenikso August 4 2014, 05:56:44 UTC
:( вызывает внутренний диссонанс. эх.

Reply


Leave a comment

Up