Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

FSaraiva

Definir um novo tipo, exercicio

Recommended Posts

FSaraiva

Boa tarde, ando a estudar para um exame onde a linguagem é Haskell e estou com duvidas na parte de definir novos tipos e instanciar que são das classes Eq.

Agradecia que me pudessem ajudar, é que do exercício que se encontra imediatamente abaixo só sei fazer  a definição do tipo novo

data Figura = Rect Float Float |Circle Float

Exercicio

Defina o tipo Figura capaz de representar rectângulos e círculos.

Torne-o uma instância da classe Eq. Assuma que, de modo geral, duas figuras são

iguais se são da mesma natureza e se têm a mesma área e perímetro. Considere

ainda que dois rectângulos precisam de ter o mesmo rácio entre a largura e o

comprimento para serem considerados iguais. Defina quaisquer funções de que

precise.

Agradecia imenso é que preciso dos valores deste exercício que calha sempre no exame.

Obrigado desde já

Share this post


Link to post
Share on other sites
Baderous

Defines as funções área e perímetro para esse tipo:

area :: Figura -> Float
perimetro :: Figura -> Float

De seguida declaras o tipo como instância de Eq:

instance Eq Figura where
a@(Rect x1 y1) == b@(Rect x2 y2) = ...
a@(Circle _) == b@(Circle _) = ...
_ == _ = ...

E defines, usando as funções anteriores, bem como a restrição do rácio, um critério de igualdade entre elementos desse tipo.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.