Save
Busy. Please wait.
Log in using Clever
or

show password
Forgot Password?

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

Username is available taken
show password

why


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

Trabalho LP 2013

Conjunto de cartas sobre Linguagem Scala

QuestionAnswer
Estrutura básica de uma função anonima. (arg1 : ArgType, arg2 : ArgType, ... , argN : ArgType) => Corpo da função
Dada uma lista a Função deve encontrar múltiplos usando currying. def filter(xs: List[Int], p: Int => Boolean): List[Int] = if (xs.isEmpty) xs else if (p(xs.head)) xs.head :: filter(xs.tail, p) else filter(xs.tail, p) def modN(n: Int)(x: Int) = ((x % n) == 0)
Enviar uma mensagem de uma classe para outra usando currying def route(m:Message)(e:Endpoint) = { e.send(m) }
A expressão cria uma função anônima sucessora para inteiros. var inc = (x:Int) => x+1 var x = inc(7)-1
É possível definir funções anônimas com múltiplos parâmetros. var mul = (x: Int, y: Int) => x*y println(mul(3, 4))
É possível definir funções anônimas sem parâmetros. var userDir = () => { System.getProperty("user.dir") } println( userDir )
Com currying, é possível passar uma lista de parâmetros eda qual uma função será aplicada a todos os elementos scala> def modN(n: Int)(x: Int) = ((x % n) == 0) modN: (n: Int)(x: Int)Boolean
Em Scala, uma função com parâmetros múltiplos pode ser misturada (curried) scala> val mod5 = modN(5) _ mod5: (Int) => Boolean = <function1>
Outro exemplo de uma função que usa currying para produzir múltiplos de dois números juntos. scala> def multiply(m: Int)(n: Int): Int = m * n multiply: (m: Int)(n: Int)Int scala> multiply(2)(3) res0: Int = 6
Mais um exemplo de função anônima associada a tipagem Int scala> (x: Int) => x + 1 res2: (Int) => Int = <function1> scala> res2(1) res3: Int = 2
Passagem de funções anônimas, com possível salvamento em variáveis scala> val addOne = (x: Int) => x + 1 addOne: (Int) => Int = <function1> scala> addOne(1) res4: Int = 2
Funções anônimas com maior controle através de colchetes, para melhor visualização. def timesTwo(i: Int): Int = { println("hello world") i * 2 }
Outro exemplo de função anônima passada como argumento. scala> { i: Int => println("hello world") i * 2 } res0: (Int) => Int = <function1>
Soma ou quadrado de inteiros usando funções anônimas def sumInts(a: Int, b: Int): Int = sum(x => x, a, b) def sumSquares(a: Int, b: Int): Int = sum(x => x * x, a, b)
Um exemplo de função de soma com uso de currying. def sum(f: Int => Int): (Int, Int) => Int = { def sumF(a: Int, b: Int): Int = if (a > b) 0 else f(a) + sumF(a + 1, b) sumF }
Outro exemplo de transformação de uma função de somatória no formato currying val sum: (Int, Int) => Int = _ + _ val sumCurried: Int => Int => Int = sum.curried
União de parâmetros como formação de resultado em currying def sum(a: Int)(b: Int) = a + b
Funções anônimas podendo se aplicado como forma de sintetizar funções matemáticas, como módulo. def modN(n: Int)(x: Int) = ((x % n) == 0)
Construção do Triangulo de Pascal aplicando currying. def pascal(c: Int, r: Int): Int = if (c == 0 || r == 0 || c == r) 1 else pascal(c - 1, r - 1) + pascal(c, r - 1)
Inferência de tipos são também parte das funções anônimas val list = List(1, 2, 3, 4) list.reduceLeft( (x, y) => x + y )
Aplicação da função lambda para o contexto da função anônima. list.reduceLeft( _ + _ )
Aplicação de filtros para elementos de uma lista com base em funções currying scala> l filter (_ % 5 == 0) res4: List[Int] = List(5, 10, 15, 20, 25, 30)
Transformando uma função de dois parâmetros em uma função curried que pode utilizar-se de vários parâmetros scala> val partialCurryCat = curryCat("foo")(_) partialCurryCat: (String) => java.lang.String = <function> scala> partialCurryCat("bar") res3: java.lang.String = foobar
Agregando as variáveis como operadores da função generalizadas, através de currying. def multiplier(i: Int)(factor: Int) = i * factor val byFive = multiplier(5) _ val byTen = multiplier(10) _ scala> byFive(2) res4: Int = 10
Created by: TrabalhoLP2013
 

 



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