Sì, utilizza la parola chiave if
. Dalla sezione Case Classes di un tour di Scala, vicino al fondo:
def isIdentityFun(term: Term): Boolean = term match {
case Fun(x, Var(y)) if x == y => true
case _ => false
}
(Questo non è menzionato nella pagina Pattern Matching, forse perché il Tour è una rapida panoramica tale.)
In Haskell, otherwise
è in realtà solo una variabile associata a True
. Quindi non aggiunge alcun potere al concetto di abbinamento di modelli. Puoi ottenerlo semplicemente ripetendo il tuo schema iniziale senza la guardia:
// if this is your guarded match
case Fun(x, Var(y)) if x == y => true
// and this is your 'otherwise' match
case Fun(x, Var(y)) if true => false
// you could just write this:
case Fun(x, Var(y)) => false
fonte
2010-02-15 16:00:39
Quale sarà il 'n' in questo caso e si prega di dare un esempio di lavoro per quanto sopra. – Jet
@Jet 'n' sarà l'argomento assegnato alla funzione. [Here] (http://ideone.com/HhSuF0) è un esempio di utilizzo della funzione. – sepp2k
Capito, grazie :-) – Jet