嗨,我有一个问题,我有一个项目列表,为了一个简单的理解,我有一个[String]
列表
现在有几个项目,但并非所有项目都在那里,所以我需要做一些事情:
map putStrLn list
轻松)我需要帮助才能做出选择。我不能使用GUI而只有控制台。
有人有想法吗?
答案 0 :(得分:1)
首先,我建议使用模块Text.Printf
进行格式化。对于Data.Functor
我们还需要<$>
:
import Text.Printf (printf)
import Data.Functor ((<$>))
打印出列表和一些索引:
putList = mapM (printf "%2d: %s\n") . zipWith [1..]
打印提示:
prompt = putStr "Enter a whitespace-separated list of entries to delete.\n> "
阅读指数:
readIndices = map read . words <$> getLine
获取过滤列表:
filtered ix = map snd . filter (flip notElem ix . fst) . zipWith [1..]
把块放在一起:
filterList ls = do putList ls
prompt
ix <- readIndices
return $! filtered ix ls
这就是全部!如果您有任何其他问题,请询问。