В Learning Scalaz има параметър за тип на сумата на метода.
Това означава ли, че тип А е от тип Monoid? Въпреки това изглежда грешно, ако типът A е Monoid, тогава как може да бъде и цяло число, както се използва в примера. Сигурно чета параметъра тип погрешно.
Какво е значението на параметъра тип? Как трябва да го чета?
def sum[A: Monoid](xs: List[A]): A = {
val m = implicitly[Monoid[A]]
xs.foldLeft(m.mzero)(m.mappend)
}
A
трябва да има имплицитна стойност от типMonoid[A]
. Извикванетоimplicitly
получава тази неявна стойност. - person Jesper   schedule 08.04.2014A: Monoid
? изглежда наобратно. - person Phil   schedule 08.04.2014sum
има тип параметърA
, за който трябва да имаMonoid
. - person Jesper   schedule 08.04.2014A: Monoid
и първата ми интерпретация на това е, че A е от тип Monoid, винаги когато видя : с нещо отляво и нещо отдясно, предполагам, че типът на лявото е отдясно. - person Phil   schedule 09.04.2014