このコードでループが発生する理由を説明してください。入手方法<<loop>> Haskellで例外がパターン配置によって異なります
module Main where
import Data.List.Split
import Data.Maybe
import Text.Read
main :: IO()
main = print (snd (toInmetDate "01/02/2012"))
type P a = (Bool, a)
readP :: (Read a) => String -> P a
readP text
| isJust value = (True, fromJust value)
| isNothing value = (False, read "0")
where value = readMaybe text
data InmetDate = InmetDate {dia :: P Int, mes :: P Int, ano :: P Integer}
deriving (Show, Read)
toInmetDate :: String -> P InmetDate
toInmetDate x = if length l == 3
then (True, InmetDate (readP ds) (readP ms) (readP as))
else (False, InmetDate (False, 0) (False, 0) (False, 0))
where (l,ds:ms:as:_) = (splitOn "/" x, l ++ replicate 20 "NULL")
私は私が作るとき、と述べているでしょう:完全コードワーク
where (ds:ms:as:_) = l ++ replicate 20 "NULL"
l = splitOn "/" x
:
に等しいwhere (l,ds:ms:as:_) = (splitOn "/" x, l ++ replicate 20 "NULL")
を。
最後に私が間違っていることを知ることができる理由を知っておいてください。 – RomuloPBenedetti
私はdownvoteをしませんでしたが、私が不合理な気分にあった場合は、コンパイルしないでください(いくつかのインポート、テストのための 'main')が必要です。 –
最近、多くのハズケルの質問にダウンボートがあるようです。たぶん誰かが不満を持ち、コミュニティーを堕落させようとしているかもしれません。 – luqui