2009년 1월 23일 금요일

haskell 숫자들로만 이루어진 파일(문자열) 을 [[Int]] 로 읽기

음 뭐 별건 아니고 reading file to list 를 잠깐 구경하다가 만들어본거. 핵심은 아래 f 함수 한줄. 이제 reading file to list 를 좀 읽어봐야겠군..

음.. 그런데 이걸 정말 써먹을 일이 있다면 아마도 ByteString 으로 읽을텐데 그럴경우엔 어떻게 코딩해야 할지 모르겠네. ByteString 을 String 으로 변환해서 처리하는건 삽질일테고. ByteString 에 lines/words 등이 있으려나? read 는 어케되나?
뭐 이런건 나중에 더...

-- 테스트할 문자열
contents = "3 10 2\n4 1\n11 18\n"

-- 토크닝 해주는 함수
f :: String -> [[Int]]
f = map (map read.words).lines

-- 테스트
t = f contents

-- 파일에서 읽으려면 readFile 을 쓰면 간단하겠지
t2 = readFile "/tmp/nums.txt" >>= return.f

댓글 없음: