Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.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 不能';t匹配类型‘;也许’;与‘;IO’;_Haskell - Fatal编程技术网

Haskell 不能';t匹配类型‘;也许’;与‘;IO’;

Haskell 不能';t匹配类型‘;也许’;与‘;IO’;,haskell,Haskell,这是我的职责 getDateFromUser :: IO (Either UserError Day) getDateFromUser = do Prelude.putStrLn "Пожалуйста, укажите дату для прогноза в формате ГГГГ-ММ-ДД:" currentTime <- getCurrentTime date <- Prelude.getLine let retrievedDate = utctDay cu

这是我的职责

getDateFromUser :: IO (Either UserError Day)
getDateFromUser = do
  Prelude.putStrLn "Пожалуйста, укажите дату для прогноза в формате ГГГГ-ММ-ДД:"
  currentTime <- getCurrentTime
  date <- Prelude.getLine
  let retrievedDate = utctDay currentTime
      dayFromUser   = parseTimeM True defaultTimeLocale "%Y-%-m-%-d" date :: Maybe Day
   case dayFromUser of
     Nothing -> Nothing
     Just validDay -> do
       let differenceInDays = diffDays validDay retrievedDate
       if differenceInDays >= 0 && differenceInDays <= 16
          then return $ Right validDay
          else return $ Left InvalidDate
getDateFromUser::IO(用户错误日期)
getDateFromUser=do
前奏曲“Пжжжжжжжжжзззззафажжжжжажа1078
当前时间
让DifferenceDays=DifferDays validDay RetrieveDate

如果differenceInDays>=0&&differenceInDays则罪魁祸首是
Nothing->Nothing
,其中第一个
Nothing
可能日
,第二个是
可能日(用户错误日)

你想要

Nothing -> return $ Left InvalidDate

(或其他一些
UserError
)。

您在第9行忘记了
返回值