具有2个相同类型实例的隐式参数

时间:2018-04-05 09:00:42

标签: scala functional-programming implicit monoids

Scala允许我们定义隐式参数。根据确切的类型,选择正确的定义。在下面的示例中,为相同的val formatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ", Locale.getDefault()) formatter.timeZone = TimeZone.getTimeZone("UTC") val result = formatter.parse(dateAsString) 类型定义了2个monoid实例,为累积定义了Money,为了进行比较{。\ n}}。

什么不清楚,Scala编译器如何解决MoneyAdditionMonoidMoneyCompareMonoid函数中使用的monoid?能否请你向我强调一下,我无法理解。

maxDebitOnDay

示例来自

  

功能反应域建模

书。

1 个答案:

答案 0 :(得分:0)

答案可在本书的论坛中找到:Explicit dictionary passing technique in listing 4.3

我们必须明确地传递隐式参数:

ltx是交易清单

maxDebitOnday(ltx)(Monoid.MoneyCompareMonoid) 

lbs是余额列表

sumBalances(lbs)(Monoid.MoneyAdditionMonoid)