Horário de Atendimento
- Em qualquer altura: via correio electrónico pressionando aqui. Qualquer outro meio de contacto será considerado informal, não se sentindo a equipa docente vinculada a dar uma resposta em tempo útil.
- Durante o período de aulas: de acordo com o horário seguinte, sujeito a marcação verbal ou por email, com um mínimo de uma semana de antecedência, junto do respectivo docente:
Atendimento electrónico (FAQs)
Q01 -
Na questão 9 da ficha 4, não percebo o condicional p -> f, g . h. Não devia ser (p -> f,g). h?
R: Devia! Faltam os parênteses - gralha entretanto corrigida na nova versão dessa ficha.
Q02 -
Estou a ter problemas ao correr o ficheiro cp1718t.lhs. O erro é o seguinte: "Could not find module ‘Data.Matrix’".
R: Isso significa que o módulo
Data.Matrix não está instalado na sua máquina. Use
cabal install (tal como se refere no enunciado) para o instalar.
Q03 -
Não percebo o que faz a função depthQTree: para toda e qualquer QTree passada à função, esta devolve 0...
R: Há uma gralha: na definição da função (linha 1294) substituam
maximum [a,b,c,d] por
1 + maximum [a,b,c,d] - relacionar com a questão 5 da ficha nrº 10. Já agora, como provariam que a função, tal como está, é a função constante 0?
Q04 
-
No problema 3, não percebo o que está a fazer o 'n' em 's (d+1) = s n + 1'.
R: Trata-se infelizmente de outra gralha: no ficheiro lhs (linha 663) substituam
n por
d.
Q05 
- No problema 2, a função 'compressQTree :: Int -> QTree a -> QTree a' é mesmo polimórfica em 'a'?_
R: Sim, a implementação deverá ser polimórfica em 'a'.
Q06 -
Faço o que diz o enunciado para instalar 'lhs2tex', cabal install lhs2tex, corre tudo bem, mas continuo sem ´lhs2tex', e.g. lhs2tex cp1718t.lhs > cp1718t.tex dá erro. (Isto em MAC OS.)
R: Se tudo correu bem na instalação, deverá existir o ficheiro executável
Library/Haskell/bin/lhs2tex. O que está a faltar é o "link" para esse ficheiro. Uma maneira simples de o fazer é definir, na shell,
alias lhs2tex='/Users/user/Library/Haskell/bin/lhs2tex'
onde
user é o nome do utilizador. Para não terem que fazer isso sempre, acrescentem essa linha ao ficheiro
.bashrc, que já deve existir na directoria principal de
user. (Este ficheiro é executado sempre que criam uma
shell ou abrem um terminal.)
Q07 -
Em Linux, cabal install JuicyPixels dá erro de instalação indicando que zlib-0.6.2 não foi instalada. Que fazer?
R: Basta correr o comando
sudo apt-get install libz-dev em Linux e fica a funcionar. (Agradeçam ao vosso colega Pedro Mimoso Silva esta informação.)
Q08 -
Estive a fazer testes unitários da minha solução do problema 3 do TP e aparentemente obtenho resultados correctos; no entanto, ao testar com o Quickcheck, a minha solução falha. Não consigo perceber onde está o erro...
R: O problema é que, como vem no enunciado, a solução calculada assume
n < k, e o QuickCheck não sabe disso. Sugere-se o seguinte: no enunciado, onde aparece a
prop3, substituam-na pela versão seguinte:
prop3 (NonNegative n) (NonNegative k) = k <= n ==> (bin n k) == (fac n) % (fac k * (fac ((n-k))))
Q09 
-
Ao tentar correr a função animatePTree obtenho sempre este erro " ***Exception: user error (unknown GLUT entry glutInit)". Há alguma sujestão de como o resolver?
R: É conhecido que chamar o gloss dentro do ghci pode ter problemas. Para os resolver, basta invocar ghci com o argumento -fno-ghci-sandbox, ou compilar com o ghc. No segundo caso, definam uma função main = ... que chame a animação que querem fazer.
Quando correrem, na shell, ./cp1718t, será essa função que será activada.
-- JoseNunoOliveira - 06 Mar 2018