Scala - накладные расходы на вызов «функций первого класса»

Прежде всего, пожалуйста, не стесняйтесь исправить заголовок моего вопроса, я не слишком знаком с жаргоном функционального программирования.

. У меня вопрос, есть ли какие-либо накладные расходы (и насколько они значительны) при рассмотрении функций как «содержимого переменных». Например, в следующем коде:

class Processor {
  val map = Map[Class[_],AnyRef => Something](...)

  def process(c:AnyRef):Something = map(c.getClass)(c)
  def worksFor:List[Class[_]] = map.map(_._1)
}

действительно хорош по сравнению с:

class Processor {
  def worksFor = List(classOf[Bears], classOf[Beets], classOf[BattlestarGalactica])

  def process(c: AnyRef) = {
    c match {
      case c: Bears ....
      .
      .
      .
    }
  }
}

, но будет ли он работать хуже? (Очевидно, это займет больше памяти из-за карты)

Спасибо за любой ответ!

6
задан Arg 19 August 2011 в 11:41
поделиться