Al crear un mapa de Cadena para funciones parciales, encontré un comportamiento inesperado. Cuando creo una función parcial como un elemento de mapa, funciona bien. Cuando asigno a un valor, invoca en su lugar. Intentar invocar el cheque genera un error. Es esto esperado? ¿Estoy haciendo algo tonto? Comente el check()
para ver la invocación. Estoy usando Scala 2.7.7¿Cuándo una función parcial scala no es una función parcial?
def PartialFunctionProblem() = {
def dream()() = {
println("~Dream~");
new Exception().printStackTrace()
}
val map = scala.collection.mutable.HashMap[String,()=>Unit]()
map("dream") = dream() // partial function
map("dream")() // invokes as expected
val check = dream() // unexpected invocation
check() // error: check of type Unit does not take parameters
}
Gracias por la ayuda. Cuando reemplacé mis llamadas de sueño() con dream() _ se comportó como esperaba. Saldré y leeré más sobre PartialFunctions para no volver a usar mal el término. –