sto guardando Runar Bjarnason present Functional Programming for Beginners, e alle 14:45 si definisce un metodo:Funzioni vs metodi Scala
def isDivisibleBy(k: Int): Int => Boolean = i => i % k == 0
e una funzione:
val isEven = isDivisibleBy(2)
Quali sono i pro ei contro di definire isEven
come una funzione piuttosto che un metodo?
Ho letto Scala Functions vs Methods così come Difference between method and function in Scala, e capisco le differenze semantiche, ma mi chiedo se c'è qualche ragione più profonda in questo caso il motivo per cui una funzione potrebbe o non potrebbe essere preferibile utilizzare un metodo:
def isEven = isDivisibleBy(2)
pensate un po 'in Java equivalente (le funzioni Scala vs. Metodi fa un buon lavoro di questo) e come si inserisce nella fase di esecuzione. Questo è un buon motivo per un approccio rispetto all'altro. Si noti inoltre che l'ambito di 'def' è importante in quanto non è lo stesso ovunque (è solo un" metodo "- dettagli di implementazione a parte - a livello di classe). –