我如何尝试执行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)与所有的练习提示与解决方法。 –