خرید بک لینک

Vote count: 0

Im begier with haskell and im trying to execute my method mostrarDocumento, setting Documentos and String(year), and the method should retu all documents that have the same year , but i having the error :

    No instance for (Ord Documento) arising from a use of ‘insert’
    In a stmt of a 'do' block:
      insert docu (mostrarDocumento' documentos ao)
    In the expression:
      do { insert docu (mostrarDocumento' documentos ao) }
    In the expression:
      if esAoIgual docu ao then
          do { insert docu (mostrarDocumento' documentos ao) }
      else
          mostrarDocumento' documentos ao

Someone can help me with my code?

module Documento where
import Data.List
import Data.Function (on)
import System.IO()

type Revista = String
type IdD = String
type Ao = String
type Titulo = String
type Resumen = String
type Secciones = [String]

data Documento = D (Revista, IdD, Ao, Titulo, Resumen, Secciones)deriving Show
type Documentos = [Documento]

anio :: Documento -> Ao
anio (D (_,_,anio,_,_,_)) = anio


pintarDocOrd :: Documentos -> IO()
pintarDocOrd [] = retu ()
pintarDocOrd (dc:dcs) = do
        print dc
        pintarDocOrd dcs

mostrarDocumeto :: Documentos -> String-> IO()
mostrarDocumeto [] _ =  retu ()
mostrarDocumeto documentos ao = do
      let documento = mostrarDocumento' documentos ao
      pintarDocOrd documento

mostrarDocumento' :: Documentos -> String -> Documentos
mostrarDocumento' [] _ = []
mostrarDocumento' (docu:documentos) ao =
                                        if esAoIgual docu ao then do
                                          insert docu (mostrarDocumento' documentos ao)
                                         else
                                           mostrarDocumento' documentos ao

esAoIgual :: Documento -> String -> Bool
esAoIgual documento ao
          | anio documento == ao = True
          | otherwise = False

asked 27 secs ago

برچسب: نویسنده: استخدام کار تاريخ: يکشنبه 16 خرداد 1395 ساعت: 0:51

صفحه بندی