Ho due funzioni.Composable using scalaz Arrow?
def process(date: DateTime, invoice: Invoice, user: User, reference: Reference) : (Action, Iterable[Billable])
def applyDiscount(billable: Billable) : Billable
Come posso comporre questi in modo da avere una singola funzione di (DateTime, fattura, l'utente, di riferimento) => (Azione, Iterable [Billable])
Qui è il modo mans poveri quello che voglio
def buildFromInvoice(user: User, order: Invoice, placementDate: DateTime, reference: Reference) = {
val ab = billableBuilder.fromInvoice(user, order, placementDate, reference)
(ab._1, ab._2.map(applyDiscount(_))
}
si desidera una funzione che prima esegue 'processo' e poi' applyDiscount'? –
Sì, esattamente. Queste due funzioni sono componibili usando la freccia di Scalaz e, in tal caso, qual è la sintassi? – OleTraveler