Antes que nada, no dude en corregir el título de mi pregunta, no estoy muy familiarizado con la jerga de programación funcional.Scala - sobrecarga de invocación de 'funciones de primera clase'
Mi pregunta es, ¿hay alguna sobrecarga (y qué tan significativa es) de tratar las funciones como 'contenido de variables'. Por ejemplo, en el código siguiente:
class Processor {
val map = Map[Class[_],AnyRef => Something](...)
def process(c:AnyRef):Something = map(c.getClass)(c)
def worksFor:List[Class[_]] = map.map(_._1)
}
es muy agradable, en comparación con:
class Processor {
def worksFor = List(classOf[Bears], classOf[Beets], classOf[BattlestarGalactica])
def process(c: AnyRef) = {
c match {
case c: Bears ....
.
.
.
}
}
}
pero va a realizar peor? (Obviamente se necesitará más memoria, debido al mapa)
¡Gracias por cualquier tipo de respuesta!
Gracias por una respuesta detallada. Me alegra que pueda usar la primera opción, entonces :) – Arg