小编Jus*_*tin的帖子

算法 - 如何删除Haskell列表中的重复元素

我在创建类似于nub函数的函数时遇到问题.

我需要这个函数来从列表中删除重复的元素.当2个元素具有相同的电子邮件时,元素被复制,并且它应该保持较新的元素(更接近列表的末尾).

type Regist = [name,email,,...,date]
type ListRe = [Regist]

rmDup ListRe -> ListRe
rmDup [] = []
rmDup [a] = [a]
rmDup (h:t) | isDup h (head t) = rmDup t
            | otherwise = h : rmDup t

isDup :: Regist -> Regist -> Bool
isDup (a:b:c:xs) (d:e:f:ts) = b==e
Run Code Online (Sandbox Code Playgroud)

问题是该函数不会删除重复的元素,除非它们在列表中一起存在.

haskell

1
推荐指数
2
解决办法
1万
查看次数

Haskell readFile非法Char

我需要读一个包含'ç'ou'á'等字符的文件...问题是当我尝试读取文件时,GHC返回:非法字节序列.有没有解决的办法?

main = do putStr "Insert file path\n"
          a <- getLine
          x <- readFile a
          print x

Main> main
Main> Insert file path
Main> /Users/$HOME/Desktop/File.txt
Main> (illegal byte sequence)
Run Code Online (Sandbox Code Playgroud)

谢谢

io locale haskell file

1
推荐指数
1
解决办法
448
查看次数

标签 统计

haskell ×2

file ×1

io ×1

locale ×1