Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 如何转换[(Data.Text.Internal.Text,Data.Text.Internal.Text)]->;正文_Haskell_Haskell Stack - Fatal编程技术网

Haskell 如何转换[(Data.Text.Internal.Text,Data.Text.Internal.Text)]->;正文

Haskell 如何转换[(Data.Text.Internal.Text,Data.Text.Internal.Text)]->;正文,haskell,haskell-stack,Haskell,Haskell Stack,我制作了一个天气程序,其本质非常简单:用户输入程序工作的语言、城市和日期,然后我检查所有内容。但是,当用户输入正确的城市,但带有一个小写字母时,程序会给出一个错误,尽管城市输入正确 我现在了解了toLower函数,但我无法使用它,因为我在[(文本,文本)] 我想当用户进入正确的城市,但与一个小字母,该程序的工作 以及我如何检查它: cityFromUser <- TIO.getLine let lovercaseForCity = T.toLower cityFromUser

我制作了一个天气程序,其本质非常简单:用户输入程序工作的语言、城市和日期,然后我检查所有内容。但是,当用户输入正确的城市,但带有一个小写字母时,程序会给出一个错误,尽管城市输入正确

我现在了解了
toLower
函数,但我无法使用它,因为我在
[(文本,文本)]

我想当用户进入正确的城市,但与一个小字母,该程序的工作

以及我如何检查它:

  cityFromUser <- TIO.getLine
  let lovercaseForCity = T.toLower cityFromUser
  cityNameForServer <- case L.lookup lovercaseForCity pairsOfCityNames of 
        Nothing -> do
            TIO.putStrLn $ messageErrorWrongCity phrasesForUser
            exitFailure 
        Just cityNameForServer -> return cityNameForServer
    TIO.putStrLn cityNameForServer 
cityFromUser返回cityNameForServer
TIO.putStrLn cityNameForServer

如果我理解正确,此配对列表旨在将
“ararat”
转换为
“ararat”
,以补偿用户缺少标题大小写,而与您通信的服务器只接受给定城市名称的一个大写字母

但我的理解可能是错误的

您可以使用:

cityFromUser如果我理解正确,它基本上看起来像一个地图/字典吗?
[ ("Aragatsotn", "Aragatsotn")
, ("Ararat", "Ararat")
, ("Armavir", "Armavir")
, ("Dilijan", "Dilijan")
, ("Gegharkunik", "Gegharkunik")
, ("Gyumri", "Gyumri")
, ("Kotayk", "Kotayk")
, ("Shirak", "Shirak")
, ("Syunik", "Syunik")
, ("Vanadzor", "Vanadzor")
, ("Yerevan", "Yerevan")
]
  cityFromUser <- TIO.getLine
  let lovercaseForCity = T.toLower cityFromUser
  cityNameForServer <- case L.lookup lovercaseForCity pairsOfCityNames of 
        Nothing -> do
            TIO.putStrLn $ messageErrorWrongCity phrasesForUser
            exitFailure 
        Just cityNameForServer -> return cityNameForServer
    TIO.putStrLn cityNameForServer