Busy. Please wait.

show password
Forgot Password?

Don't have an account?  Sign up 

Username is available taken
show password


Make sure to remember your password. If you forget it there is no way for StudyStack to send you a reset link. You would need to create a new account.
We do not share your email address with others. It is only used to allow you to reset your password. For details read our Privacy Policy and Terms of Service.

Already a StudyStack user? Log In

Reset Password
Enter the associated with your account, and we'll email you a link to reset your password.

Remove Ads
Don't know
remaining cards
To flip the current card, click it or press the Spacebar key.  To move the current card to one of the three colored boxes, click on the box.  You may also press the UP ARROW key to move the card to the "Know" box, the DOWN ARROW key to move the card to the "Don't know" box, or the RIGHT ARROW key to move the card to the Remaining box.  You may also click on the card displayed in any of the three boxes to bring that card back to the center.

Pass complete!

"Know" box contains:
Time elapsed:
restart all cards

Embed Code - If you would like this activity on your web page, copy the script below and paste it into your web page.

  Normal Size     Small Size show me how


Case Class

1. abstract class Term 2. case class Var(name: String) extends Term 3. case class Fun(arg: String, body: Term) extends Term 4. case class App(f: Term, v: Term) extends Term Case Classes. Scala suporta a noção de Case Class. Case Class são classes regulares que exportam os seus parâmetros do construtor e que fornecem um mecanismo de decomposição recursiva via pattern matching.
1. Fun("x", Fun("y", App(Var("x"), Var("y")))) Esta hierarquia de classe pode ser usada para representar untyped lambda calculus. Para facilitar a construção de instâncias de case class, Scala não exige que o new primitivo seja usado. Pode-se simplesmente usar o nome da classe como uma função.
1. val x = Var("x") 2. println(x.name) Os parâmetros do construtor das case class são tratados como valores públicos e podem ser acessados ​​diretamente.
1. val x1 = Var("x") 2. val x2 = Var("x") 3. val y1 = Var("y") 4. println("" + x1 + " == " + x2 + " => " + (x1 == x2)) 5. println("" + x1 + " == " + y1 + " => " + (x1 == y1)) Para cada case class o compilador Scala gera um método equals que implementa a igualdade estrutural e um método toString iguais.
1. Var(x) == Var(x) => true 2. Var(x) == Var(y) => false Imprimirá
Created by: williamwill