当前位置:  开发笔记 > 前端 > 正文

删除haskell中文本文件中的重复项

如何解决《删除haskell中文本文件中的重复项》经验,为你挑选了1个好方法。

我试图从文本文件中删除重复项,我尝试了如下代码;

import Data.List
main = do  
    let singlewords = []
    handle <- readFile "/tmp/foo.txt" 
    singlewords = words handle
    nub singlewords

它当然给出了一个错误,因为我对haskell很新,而且我一直在做一些练习但是我觉得我还有更多的时间来适应它.我非常感谢您的帮助.



1> adamse..:

你的代码修好了:

import Data.List

main = do
    -- let singlewords = [] -- this line removed
    content <- readFile "/tmp/foo.txt"
    let singlewords = words content -- added the let keyword
    return (nub singlewords) -- added call to return

在您编写的第一行let singlewords = [],然后尝试为其分配新值singlewords.这不是我们在Haskell中的做法,在使用它们之前不需要"声明"或"定义"名称.

在Haskell中,我们将有效计算(IO是一种有效计算)与纯计算分开.我们使用有效计算绑定结果

name <- computation

我们使用的绑定纯计算的结果

let name = computation

在a- doblock中.

do-block中的最后一行是整个块将计算的内容,因此必须是有效的计算.在您的示例中,您希望返回纯计算的结果,因此必须将结果提升为有效的结果,我们使用return.


要查看要将其输出到控制台的单个单词,可以执行以下几项功能:https://hackage.haskell.org/package/base-4.8.1.0/docs/Prelude.html#g: 27.

最简单的方法是singlewords使用print以下方法输出列表:

main = do
    content <- readFile "/tmp/foo.txt"
    let singlewords = nub (words content)
    print singlewords

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有