haskell은 두 번째에서 네 번째 행을 목록으로 출력하기 위해 헤더 (유형 문자열)가있는 int의 csv 파일을 가져 오려고합니다. 예를 들어, [[row, 1], [row, 2] ..] 지금까지 Pipes 라이브러리를 사용하여 번호가 문자열 인 목록으로 각 행을 출력하도록 만들었고 어떤 이유로 "Right"를 인쇄합니까? 예 : 출력 : '오른쪽 [ "1", "3", "5"..]'새 줄 '오른쪽 [ "32", "38", "45"]'. 모든 제안을 부탁드립니다. 코드 :하스켈 : 목록의 헤더를 포함하는 csv
{-# LANGUAGE OverloadedStrings, ScopedTypeVariables #-}
import qualified Data.Vector as V
import Pipes
import qualified Pipes.Prelude as P
import qualified System.IO as IO
import qualified Pipes.ByteString as PB
import qualified Data.Text as Text
import qualified Pipes.Csv as PCsv
import Control.Monad (forever)
showPipe :: Proxy() (Either String (V.Vector Text.Text))() String IO b
showPipe = forever $ do
x::(Either String (V.Vector Text.Text)) <- await
yield $ show x
main :: IO()
main = do
putStrLn "Filename? "
fName <- getLine
IO.withFile fName
IO.ReadMode
(\handle -> do
let producer = (PCsv.decode PCsv.NoHeader
(PB.fromHandle handle))
runEffect ((producer)>->
(showPipe) >->
P.stdoutLn)
)
덕분에 인쇄 할 수있는
String
를 산출한다하나의 (a 혁) 방법을 입력합니다! 매우 유용한 정보. –