Você está na página 1de 2

1: Crie um método chamado strToLista.

Ele deve receber uma String e devolver os el


ementos dentro
de uma Lista. Considere que os espaços separam os elementos.
def strToLista (msg){
msg.split(" ").toList()
}
lista = strToLista("Olá Veras!")
assert lista == ["Olá", "Veras!"]
2: Codifique um método chamado invertLista. Este método deve receber uma lista como
parâmetro e
devolver a mesma lista, porém com os seus elementos invertidos.
def invertLista(lista){
lista.reverse()
}
a = ["Necio", 3, 4, 5, "A"]
a = invertLista(a)
assert a == ["A", 5, 4, 3, "Necio"]

3: Monte um closure chamado numsToChars. A estrutura deve receber como parâmetro u


m conjunto
de números inteiros e devolvê-los na forma de caracteres. Por exemplo: se ela recebe
r os números 65
e 70, então ela deve retornar "A"e "F".
def numsToChars = { numeros ->
chars = []
numeros.each { chars.add((char)it) }
chars
}
assert numsToChars([65, 66, 67]) == ["A", "B", "C"]
4: Invente um closure que calcule e exiba os números primos de 1 até um número que sej
a especificado
por meio de parâmetro. Lembre-se que um número primo é todo número que é divisível apenas p
r
1 e por ele mesmo.
def primos = { limite ->
numPrimos = []
(limite+1).times{ //testa cada numero de 1 até LIMITE
ehPrimo = true
for (i in 2..it){ //verifica se o numero eh Primo
if (it % i == 0 && it != i){ //Eh divisivel pelo numero atual e est
e numero atual não é o mesmo número da vez
ehPrimo = false
break
}
}
if (ehPrimo == true)
numPrimos.add(it)
}
return numPrimos
}
assert primos(20) == [1,2,3,5,7,11,13,17,19]
5: Gere um closure que receba como parâmetro duas listas. A estrutura deve juntar
as duas listas em ordem invertida e exibi-las. Por fim, para testá-la, você deve fix
ar por meio do
recurso curry a primeira lista com os seguintes valores: ["A", 10, "B", 20, "C",
30]
def invertListas = { lista1, lista2 ->
listas = lista2.reverse() + lista1.reverse()
}
listas = invertListas.curry(["A", 10, "B", 20, "C", 30])
assert listas(["Necio", "de", "Lima", "Veras"]) == ["Veras", "Lima", "de", "Neci
o", 30, "C", 20, "B", 10, "A"]

Você também pode gostar