Save
Busy. Please wait.
Log in with Clever
or

show password
Forgot Password?

Don't have an account?  Sign up 
Sign up using Clever
or

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.
Your email address is only used to allow you to reset your password. See 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.
focusNode
Didn't know it?
click below
 
Knew it?
click below
Don't Know
Remaining cards (0)
Know
0:00
share
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

Scala Programming

Few snippets of Scala programming language written in Portuguese.

ConceitoCódigo
Determinando o tamanho de uma string em Scala. val s = "Hello, world" <br><br> s.length // 12
Percorrendo e imprimindo elementos de uma coleção - Uso de estruturas de repetição. val a = Array("apple", "banana", "orange") <br><br> for (e <- a) println(e)
Aplicando uma propriedade a todos os elementos de uma lista - Usando funções anônimas (funções literais). val x = List.range(1, 10) <br><br> val evens = x.filter((i: Int) => i % 2 == 0) <br><br> evens: List[Int] = List(2, 4, 6, 8)
Criando listas longas em Scala sem causar erros de acesso à memória - Uso de um Stream para criar listas "preguiçosas". Para listas com o número de elementos indefinido, o uso de Streams é aconselhado:<br><br> val stream = (1 to 100000000).toStream<br><br> stream: scala.collection.immutable.Stream[Int] = Stream(1, ?)
Determinando o fatorial de um número sem criar muitas chamadas de função e uso de memória - Definição de um método com recursão de calda. def factorial(i: BigInt): BigInt = {<br><br> def fact(i: BigInt, accumulator: BigInt): BigInt = i match {<br><br> case _ if i == 1 => accumulator<br><br> case _ => fact(i - 1, i * accumulator) }<br><br> fact(i, 1) }<br><br>
Usando um Stream para obter números maiores que 200 em uma sequência com 300 elementos - Uso do método filter de um Stream. val stream = (1 to 300).toStream<br><br> stream.filter(_ > 200)
Usando um Iterator para excluir strings que são menores que 2 caracteres - usando o método dropWhile de um Iterator val it = Iterator("a", "number", "of", "words")<br><br> it dropWhile (_.length < 2)<br><br> it.next() java.lang.String = number<br><br>
Realizar operações sobre objetos de determinados tipos - Case Classes in Match Expressions. def determineType(x: Animal): String = x match { case Dog(moniker) => "Got a Dog, name = " + moniker case _:Cat => "Got a Cat (ignoring the name)" case Woodpecker => "That was a Woodpecker" case _ => "That was something else" }
Definindo uma função que retorna uma função e ainda permite chamadas para obter um resultado - Currying. def add(x:Int)(y:Int) = x + y
Declarando o tipo de variáveis enquanto escreve o código - Tipagem estática. var num: Int = 10
Escrevendo valores literais e assumindo seu tipo - Inferência de tipos val a = 1<br> a: Int = 1<br>
Passando parâmetros que não serão avaliados enquanto não forem chamados - Passagem de parâmetros por nome e avaliação tardia def myCallByNameFunction(callByNameParameter: => ReturnType)
Grupos de dois ou mais valores, geralmente criados com valores literais - Tuplas val t = ("Hello",1,2.3)<br><br> (java.lang.String, Int, Double) = (Hello,1,2.3)
Estruturas que recebem mensagens e atuam quando se trata de concorrência e threading em Scala - Actors val fussyActor = actor { loop {<br><br> receive {<br><br> case s: String => println("I got a String: " + s)<br><br> case i: Int => println("I got an Int: " + i.toString)<br><br> case _ => println("I have no idea what I just got.")<br><br> } }<br> }
Propriedade de Actors que salva todas as mensagens recebidas - Mailbox val countActor = actor {<br><br> loop {<br> react {<br> case "how many?" => {<br><br> println("I've got " + mailboxSize.toString + " messages in my mailbox.") }<br> } }<br> }
Estrutura que agrupa dados na forma de chave->valor dentro do paradigma funcional - Maps val stateCapitals = Map( "Alabama" -> "Montgomery","Alaska" -> "Juneau")
Métodos que podem parecer operadores - Métodos podem contem vários tipos de caracteres especiais. val stream = 1 #:: 2 #:: 3 #:: Stream.empty
Estruturas simulares às interfaces em Java, Traits são poderosos porque podem ser implementados de acordo com a necessidade. Nem todos os métodos são obrigatórios. trait Similarity {<br> def isSimilar(x: Any): Boolean<br><br> def isNotSimilar(x: Any): Boolean = !isSimilar(x)<br><br> }<br> class Point(xc: Int, yc: Int) extends Similarity {<br><br> (...)<br> def isSimilar(obj: Any) = (...)<br><br> }
Estruturas que são como enums do Java, mas possuem sintaxe diferente (e também são tratadas assim a nível de bytes) - Enumerations object Breed extends Enumeration {<br><br> val doberman = Value("Doberman Pinscher")<br><br> val yorkie = Value("Yorkshire Terrier")<br><br> (...)<br> } for (breed <- Breed) println(breed.id + "\t" + breed)<br><br> 0 Doberman Pinscher<br> (...)
Pacote que pode converter (implicitamente) valores que vieram de Java para valores em Scala - JavaConversions. var list = new java.util.ArrayList[Int]()<br><br> list.add(1)<br> list.add(2)<br> list.foreach(println)<br> (...) foreach not a member of java.util.ArrayList[Int]<br><br> import scala.collection.JavaConversions._<br><br> list.foreach(println) 1 2
Created by: albarros
Popular Engineering sets

 

 



Voices

Use these flashcards to help memorize information. Look at the large card and try to recall what is on the other side. Then click the card to flip it. If you knew the answer, click the green Know box. Otherwise, click the red Don't know box.

When you've placed seven or more cards in the Don't know box, click "retry" to try those cards again.

If you've accidentally put the card in the wrong box, just click on the card to take it out of the box.

You can also use your keyboard to move the cards as follows:

If you are logged in to your account, this website will remember which cards you know and don't know so that they are in the same box the next time you log in.

When you need a break, try one of the other activities listed below the flashcards like Matching, Snowman, or Hungry Bug. Although it may feel like you're playing a game, your brain is still making more connections with the information to help you out.

To see how well you know the information, try the Quiz or Test activity.

Pass complete!
"Know" box contains:
Time elapsed:
Retries:
restart all cards