2013-10-25 2 views
1

를 인쇄 나는이하스켈, fmap 함수 결과

putStrLn <- fmap (replicate 3) [1,2,3,4] 

처럼 fmap 함수의 결과를 인쇄하고자하지만 putStrLn 구문 분석 오류가 발생했습니다. 도와주세요.

감사합니다.

+0

참고 : (하지만'fmap'도 정확) –

답변

5

올바른 구문은 여기에 있습니다 :

putStrLn $ show $ fmap (replicate 3) [1,2,3,4] 

하거나, 심지어 짧은 :

print $ fmap (replicate 3) [1,2,3,4] 
+0

감사합니다! ! ,,,,,,,,,,,,,,,,,,, – BufBills

5

완전하지 아스카가 찾고있는 대답,하지만이 유머러스하게 자신의 구문 오해가 여전히 유효 하스켈 코드입니다 :

위의 예에서는 목록 모나드와 값 putStrLn을 사용합니다. 변수 (기대할 수있는 IO 작업이 아님). 리스트 모나드를 사용하는 대신 지능형리스트로 표현하면 그것은 사람들에게 더 적합 할 수 있습니다 : 당신이 목록에`지도`를 사용할 수 있습니다

> [ putStrLn | putStrLn <- map (replicate 3) [1,2,3,4]] 
[[1,1,1],[2,2,2],[3,3,3],[4,4,4]]