<div dir="ltr"><span style="font-size:12.8px">-- map (\x -> splitOn (pack ",") pack x) $ lines rowRxDx</span><br><div><span style="font-size:12.8px">map (\x -> splitOn (pack ",") (pack x)) $ lines rowRxDx</span><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Like this?</span></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 22, 2017 at 4:33 PM, S. H. Aegis <span dir="ltr"><<a href="mailto:shaegis@gmail.com" target="_blank">shaegis@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><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/<wbr>Haskell/samChecker3/src/Lib.<wbr>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/<wbr>Haskell/samChecker3/src/Lib.<wbr>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/<wbr>Haskell/samChecker3/src/Lib.<wbr>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>------------------------------<wbr>------------------------------<wbr>------------------------------<wbr>------------<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/<wbr>Haskell/samChecker3/RxDxData.<wbr>csv"<br><br>readSam :: IO Text<br>readSam = pack <$> readFile "/Users/shaegis/Documents/<wbr>Haskell/samChecker3/BoHomUTF8.<wbr>dat"<br><br><br></div>
<br>______________________________<wbr>_________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/beginners</a><br>
<br></blockquote></div><br></div>