我如何嘗試執行Functional Programming in Scala的以下練習?修剪單詞並在單詞之間添加空格
// EXERCISE 5: Write a monoid instance for that String inserts spaces
// between words unless there already is one, and trims spaces off the ends of the
// result.
def trimMonoid = new Monoid[String] {
def op(a1: String, a2: String) = a1.trim + " " + a2.trim
val zero = ""
}
這是測試monoid的正確方法嗎?這是函數簽名,但我不確定如何使用我的實現:def trimMonoid(s: String): Monoid[String]
。
object MonoidTesting {
def main(args: Array[String]) = {
val words = List("Hic", "Est", "Barbarus")
val res = trimMonoid.op(("Hic"), (trimMonoid.op("est ", "chorda ")))
println("res : " + res)
assert(res == "Hic est chorda")
println("success")
}
}
萬一你錯過了,筆者有一個[GitHub的倉庫(https://github.com/pchiusano/fpinscala)與所有的練習提示與解決方法。 –