Scala を学習し、次の 2 つの関数をリファクタリングして、重複するロジックを削除しようとしています。コードの重複を避けるために、高次関数などを作成する必要がありますか? このような重複コードを使用して、さらにいくつかの同様のメソッドを用意しますが、異なるドメイン メソッドの呼び出しのみが異なります。
リファクタリングについて少し混乱しました。Scala バージョン 2.10 の使用
def authenticate = Action(parse.json) { request =>
  val json = request.body
  val input = Json.fromJson[User](json)
  input.asOpt match {
    case Some(m: User) => Ok(Domain.authenticate(m)).as("application/json")
    case None => Ok("bad input")
  }
}
def addUser = Action(parse.json) { request =>
  val json = request.body
  val input = Json.fromJson[User](json)
  input.asOpt match {
    case Some(m: User) => Ok(Domain.addUser(m)).as("application/json")
    case None => Ok("bad input")
  }
}