![]() | M.P.I - 1999/2000 - FAQs |
---|---|
[ DI/UM ] |
QUESTãO 1 [ A classe Show e a inferência de tipos em HASKELL ] - Não percebemos por que é que termos como Term "+" [Var "x", Var "y"] são visualizados sem problema, cf
hugs> Term "+" [Var "x", Var "y"] Term "+" [Var "x", Var "y"] :: Exp [Char] [Char]e as variáveis não:
hugs> Var "x" ERROR: Cannot find "show" function for: *** expression : Var "x" *** of type : Exp [Char] a
R.
Não tem nada a ver com os tipos Term e Var. Por exemplo,
basta ver que termos sem variáveis também sofrem do mesmo «problema», eg
hugs> Term "+" []
ERROR: Cannot find "show" function for:
*** expression : Term "+" []
*** of type : Exp a [Char]
ou mesmo a própria lista vazia !
hugs> []
ERROR: Cannot find "show" function for:
*** expression : []
*** of type : [a]
A questão tem a ver apenas com o facto de o tipo a estar indeterminado no momento em que é pedida a visualização. Só quando o contexto determinar o tipo a é que se fica a saber qual é a "show" function que lhe até associada (se é que está alguma...). Uma forma de evitar esta situação é fazer essa determinação interactivamente, por exemplo escrevendo [] :: [Int] em lugar de [] apenas:
hugs> [] :: [Int] [] :: [Int]
QUESTãO 2 [ Funções infixExp, prefixExp e posfixExp do 1.º Trabalho prático ] - Gostaria que pudessem explicar melhor a 1ª pergunta do enunciado do trabalho utilizando algum exemplo.
R.
A primeira questão pede para construir funções que permitam
visualizar expressões (de tipo Exp v o). Seja dada uma expressão,
por exemplo e = Term "+" [(Var "x"),(Var "y")].
Então
Para evitar precedências explícitas (eg. * mais forte que +)
sugere-se a introdução de um operador unário com o significado de
«expressão dentro de parênteses».
QUESTãO 3 [ Função oldestArvGen do 1.º Trabalho prático ] - Não se percebem bem os requisitos da função oldestArvGen. O que significa «a mais antiga geração conhecida de um determinado indivíduo»?
R.
O fraseado escolhido não foi o melhor, daí resultando duas interpretações
possíveis (à vossa escolha):
QUESTãO 4 [ Função gpArvGen do 1.º Trabalho prático ] - Não falta um parâmetro nesta função indicando qual é o n?
R. É claro que sim, foi uma gralha. Já agora adoptem a seguinte convenção: n=2 é a geração dos bisavós, n=3 a dos trisavós, etc. (E já agora ainda: qual é o n para a geração dos pais? e qual é o n da geração do próprio indivíduo?)
QUESTãO 5 [ 2.º Trabalho prático ] - Gostaria que explicasse como podemos importar o ficheiro graph.classes pois não o conseguimos fazer.
R.
Presume-se que a importação referida
diz respeito ao comando import do HASKELL
.
De facto,
o ficheiro graph.classes é uma classe Java
e como tal não pode ser importado pelo HASKELL
.
O pacote Java
que faz parte do trabalho serve para animar a
'applet' que se vê a funcionar no próprio enunciado que está
disponível em HTML
.
O que é pedido é utilizarem
essa mesma 'applet' (os ficheiros são os *.class que fazem parte
de grap-classes.zip) para visualizar resultados. A interface
com a 'applet' é realizada através de um conjunto de parâmetros
passados à 'applet', i.é, a operação de visualização divide-se
em duas operações básicas:
QUESTãO 6 [ Exames ] - Gostava de saber se, para o exame, é possivel levarmos algum apoio material, nomeadamente as regras relativas aos diferentes combinadores, como a regra functor- x, fusão- + etc.
R. Não. Os exames é que virão acompanhados de um anexo onde constam as leis que lhe são relevantes. Esse anexo será publicado na página da cadeira uns dias antes para vocês estarem a contar com isso.
QUESTãO 7 [ Exames da época normal ] - Surgiram algumas dúvidas quanto às chamadas dos exames, não se sabendo se é possível ir apenas a uma ou a duas chamadas. Apesar de o RIAPA considerar a possibilidade de irmos a uma chamada apenas, e ciente dos meios necessários para a inscrição 'on-line', como alguns professores consideram a possibilidade de irmos a duas chamadas, gostaria de saber qual o critério adoptado nesta disciplina.
R. Aplica-se a legislação em vigor. Dado o elevado número de alunos, não é viável conceder a possibilidade de os alunos irem às duas chamadas.
QUESTãO 8 [ Exames da época normal ] - O exame é sem consulta? Não será possível consultar as leis que se deram?
R.
O exame é de facto consulta.
Contudo,
cada exame virá com um que conterá, de entre as leis
aquelas que forem relevantes para a sua resolução.
NB: não se incluirão os diagramas.
Voltar à página principal de MP-I .