【发布时间】:2017-10-12 01:18:27
【问题描述】:
嘿,我刚刚开始使用 Haskell,我正在尝试编写一个程序,通过读取包含一些翻译的 .txt 文件来翻译输入单词。在此之前,我编写了一个让用户输入翻译的程序。
import System.IO
main :: IO ()
main = do
putStrLn "Type in an english word"
d <- getLine
if null d
then return ()
else do
putStrLn "Type in a german translation"
b <- getLine
putStrLn (d ++ " means in german " ++ b)
appendFile "woerterbuch.txt" (", " ++ d ++ " " ++ b)
main
所以现在我得到了 woerterbuch.txt 文件,其中列出了如下所示的英语和德语单词:Hello Hallo,House Haus,等等。 我现在要做的是将这些单词放入元组中,这样如果用户输入英文单词,我就可以打印第二个(德语)单词。
import System.IO
main :: IO()
main = do
putStrLn "Type in an english word"
d <- getLine
[contents] <- readFile "woerterbuch.txt"
if d `elem` [contents]
then do
print contents
else do
putStrLn "There's no translation available!"
这是我在多次尝试后想出的,我知道elem 用于列表,所以我需要一个替代我的 .txt 文件,然后尝试用 @ 输出元组的第二个单词987654324@ 命令。
因此,首先如何将翻译输入创建为元组,其次如何测试所询问的单词是否在此列表中,然后打印出它所属的元组的第二个元素。
任何帮助将不胜感激。
【问题讨论】:
标签: haskell dictionary input tuples