Baixe o app para aproveitar ainda mais
Prévia do material em texto
UFCG / CCC / Paradigmas de Linguagens de Programação / 2014.1 / Turma 01 Nome: _______________________________________________ Matrícula: _______________ Mini-Prova 01 – 17/06/2014 (com esboço de resposta correta abaixo) 1. Considere o trecho de programa abaixo em Java. (a) Classifique a chamada e.filterLongerThan(names,3): comando, expressão ou expressão com efeitos colaterais? Justifique. (1.0 pontos) A chamada pode ser classificada como expressão, por não haver modificação de variáveis globais. O estado do sistema é mantido. (b) Que mecanismo de passagem de parâmetros é aplicado na chamada de e.filterLongerThan(names,3)? Como é feita a associação entre parâmetro real e parâmetro formal? Justifique. (2.0 pontos) Call-by-sharing. O parâmetro real names e o parâmetro formal strings apontam para o mesmo objeto. O parâmetro formal length é uma variável local incializada com o argumento 3. 2. Considere a definição em ML abaixo (2.0 pontos). fun h x f = f (x+1) a) Defina h, incluindo os tipos dos parâmetros envolvidos e do retorno. h é uma função que recebe dois parâmetros e possui o seguinte tipo: int -> (int -> ‘a) -> ‘a b) h é uma função curry ou uncurry? Justifique. h é uma função curry, visto que pode retornar uma função a partir da instanciação parcial de seus parâmetros.
Compartilhar