<div dir="ltr"><div><div><div><div>Hello.<br></div>I'm new to Haskell and this is the first time I use Data.Text module.<br></div>And using stack on OSX 10.12.3<br></div><div>I'm try several times, but fail. and I don't understand what error message says.<br></div><div>How can I fix this?<br></div><div>Thank you a lot.<br></div><div><br></div><div>Code is<br><br>Main.hs :<br>module Main where<br>import Lib<br><br>main :: IO ()<br>main = do<br>        sam <- readSam<br>        rxDxData <- readCSV<br>        print $ makeRxDxList rxDxData<br><br></div><div>Lib.hs :<br>module Lib<br>--    ( someFunc<br>--    ) where<br>      where<br><br>import Data.Text as T<br>import Text.Regex.TDFA<br>import Prelude hiding (take, drop, map, lines)<br><br>type RowSAM = Text<br>type RowRxDx = Text<br><br>--makeRxDxList :: Functor f => f Text -> f [Text]<br>--makeRxDxList rowRxDx = fmap (\x -> splitOn (pack ",") x) rowRxDx  -- This code pass a compile.<br>makeRxDxList rowRxDx = map (\x -> splitOn (pack ",") pack x) $ lines rowRxDx<br></div><div>(whole code is below...)<br></div><div><br></div>Error Message is <br>/Users/shaegis/Documents/Haskell/samChecker3/src/Lib.hs:25:35: error:<br>    • Couldn't match expected type ‘Char -> Char’<br>                  with actual type ‘[Text]’<br>    • The function ‘splitOn’ is applied to three arguments,<br>      but its type ‘Text -> Text -> [Text]’ has only two<br>      In the expression: splitOn (pack ",") pack x<br>      In the first argument of ‘map’, namely<br>        ‘(\ x -> splitOn (pack ",") pack x)’<br><br>/Users/shaegis/Documents/Haskell/samChecker3/src/Lib.hs:25:54: error:<br>    • Couldn't match expected type ‘Text’<br>                  with actual type ‘String -> Text’<br>    • Probable cause: ‘pack’ is applied to too few arguments<br>      In the second argument of ‘splitOn’, namely ‘pack’<br>      In the expression: splitOn (pack ",") pack x<br>      In the first argument of ‘map’, namely<br>        ‘(\ x -> splitOn (pack ",") pack x)’<br><br>/Users/shaegis/Documents/Haskell/samChecker3/src/Lib.hs:25:64: error:<br>    • Couldn't match expected type ‘Text’ with actual type ‘[Text]’<br>    • In the second argument of ‘($)’, namely ‘lines rowRxDx’<br>      In the expression:<br>        map (\ x -> splitOn (pack ",") pack x) $ lines rowRxDx<br>      In an equation for ‘makeRxDxList’:<br>          makeRxDxList rowRxDx<br>            = map (\ x -> splitOn (pack ",") pack x) $ lines rowRxDx<br>------------------------------------------------------------------------------------------------------<br></div>Lib.hs<br>module Lib<br>--    ( someFunc<br>--    ) where<br>      where<br><br>import Data.Text as T<br>import Text.Regex.TDFA<br>import Prelude hiding (take, drop, map, lines)<br><br>type RowSAM = Text<br>type SAM = [Text]<br>type Case = Text<br>type RowRxDx = Text<br>type RxDx = [Text]<br>type RxDxList = [[Text]]<br>type Rx = Text<br>type Dx = Text<br>type MediName = Text<br>type Message = Text<br>type Date = Text<br>type PtName = Text<br><br>--makeRxDxList :: Functor f => f Text -> f [Text]<br>--makeRxDxList rowRxDx = fmap (\x -> splitOn (pack ",") x) rowRxDx<br>makeRxDxList rowRxDx = map (\x -> splitOn (pack ",") pack x) $ lines rowRxDx<br><br>pickupMediName :: RxDx -> MediName<br>pickupMediName rxDx = rxDx !! 0<br><br>pickupDx :: RxDx -> Dx<br>pickupDx rxDx = rxDx !! 2<br><br>pickupRx :: RxDx -> Rx<br>pickupRx rxDx = rxDx !! 1<br><br>pickupPtName :: Case -> PtName<br>pickupPtName ptCase = take 3 $ drop 45 ptCase<br><br>pickupCaseDate :: Case -> Date<br>pickupCaseDate ptCase = take 8 $ drop (348 + 2) ptCase<br><br>isErrorRxDx :: Rx -> Dx -> Case -> Bool<br>isErrorRxDx rxCode dxCode ptCase =<br>    case isExistRx rxCode ptCase of<br>        True  -> if (isExistDx dxCode ptCase) then False else True<br>        False -> False<br><br>isExistDx :: Dx -> Case -> Bool<br>isExistDx dxCode ptCase = (unpack ptCase) =~ (unpack dxCode)<br><br>isExistRx :: Rx -> Case -> Bool<br>isExistRx rxCode ptCase = rxCode `isInfixOf` ptCase<br><br>splitIntoCase :: RowSAM -> SAM<br>splitIntoCase = splitOn $ pack "AH021"<br><br>readCSV :: IO Text<br>readCSV = pack <$> readFile "/Users/shaegis/Documents/Haskell/samChecker3/RxDxData.csv"<br><br>readSam :: IO Text<br>readSam = pack <$> readFile "/Users/shaegis/Documents/Haskell/samChecker3/BoHomUTF8.dat"<br><br><br></div>