Stavo cercando di convertire un esempio di haskell, mi sono imbattuto prima, in scalaz. L'esempio originale era questo:Istanza applicativa per una tupla con monoide e funzione all'interno di
("Answer to the ", (*)) <*> ("Ultimate Question of ", 6) <*> ("Life, the Universe, and Everything", 7)
Il che, per quanto io sono in grado di capire, usa this esempio.
non venga convertito in scalaz letteralmente:
scala> ("Answer to the ", ((_: Int) * (_: Int)) curried) |@| ("Ultimate Question of ", 6) |@| ("Life, the Universe, and Everything", 7) tupled
res37: (java.lang.String, (Int => (Int => Int), Int, Int)) = (Answer to the Ultimate Question of Life, the Universe, and Everything,(<function1>,6,7))
Anche se, ho cercato per un'istanza, e sembra be there (ancora una volta, per quanto sono in grado di capire).
Quindi, la domanda è: perché non funziona così? O cosa mi sono perso/non ho ottenuto correttamente?
Questo codice invia effettivamente all'istanza applicativa per le tuple. Che a sua volta usa il 'mappend' monoid per le liste (concatenazione). Quindi è la composizione di funzione del 2 ° componente della tupla, con la concatenazione di lista della prima parte. –