Soy nuevo en scala y trato de escribir una función literal que verifique si un entero determinado es impar o no. mi primer intento es:cómo simplificar la función literal de Scala de esta manera?
val isOdd = (x:Int) => (x & 1) == 1
funciona muy bien, y, puesto que el parámetro sólo aparece una vez x dentro de esta función literal, estoy tentado a usar el "_" notación para simplificar aún más, al igual esto:
val isOdd = ((_:Int) & 1) == 1
sin embargo esta vez el compilador se queja:
warning: comparing a fresh object using `==' will always yield false val isOdd = ((_:Int) & 1) == 1
¿Qué significa esta advertencia? ¿por qué el compilador reconoce ((_ :Int) & 1)
como un objeto nuevo en lugar de una operación en modo bit que da como resultado un valor? ¿hay alguna forma de escribir esta función literal usando la notación "_"?
sólo tiene que utilizar: 'val = extraña! even (_: Int) ' –