higherorder.scala