U.Minho 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:

1.
à produção de um ficheiro cujo conteúdo deverá ser um texto equivalente ao que é apresentado no enunciado;
2.
à posterior visualização do resultado utilizando um browser HTML (ex. NETSCAPE ou INTERNET EXPLORER), carregando o ficheiro produzido.


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 sem consulta. Contudo, cada exame virá com um anexo 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 .


Outras disciplinas leccionadas pelo DIUM

1/23/2000
Jose Nuno Oliveira