Cua II P50086


Statement
 

pdf   zip

Volem continuar amb el problema Cua existent en aquesta mateixa llista d’exercicis. En aquest exercici tenim les cues representades en la forma:

cua = Queue [2,8,5] [4,7]

Es demanen els codis de diverses funcions. Seguiu el format dels exemples que es mostren a sota.

  1. Feu que Queue sigui instance de la classe Functor.

  2. Feu una funció translation :: Num b => b -> Queue b -> Queue b que aplica una translació a tots els punts d’una cua (que serà el segon paràmetre).

  3. Feu que Queue sigui instance de la classe Applicative.

  4. Feu que Queue sigui instance de la classe Monad.

  5. Feu una funció kfilter::(p -> Bool) -> Queue p -> Queue p que selecciona tots els elements que satisfan la propietat donada.

Cada funció i instanciació valen 20 punts.

Observació

Public test cases
  • Input

    fmap (+1) $ Queue [1,2] [4, 3]
    

    Output

    Queue [2,3] [5,4]
    
  • Input

    translation 1 $ Queue [1,2] [4, 3]
    

    Output

    Queue [2,3] [5,4]
    
  • Input

    Queue [(+2),(*2)] [] <*> Queue [1,2] [4, 3]
    

    Output

    Queue [3,4,5,6,2,4,6,8] []
    
  • Input

    Queue [1,2] [4, 3] >>= \x -> return $ x + 1
    

    Output

    Queue [2,3,4,5] []
    
  • Input

    kfilter odd $ Queue [1,2] [4, 3]
    

    Output

    Queue [1,3] []
    
  • Information
    Author
    Gerard Escudero
    Language
    Catalan
    Official solutions
    Haskell
    User solutions
    Haskell