하스켈을 배우기 시작했는데 목록에있는 요소를 어떻게 정의 된 공백 문자가있는 단일 연결된 문자열로 출력할까요? 나는 아래의 스크립트에서 이것을 달성했다.haskell의 mapM_에 대한 다중 인수를 가진 구문 분석 함수
그러나 필자는 분리 기호를 인수로 지정할 수 있도록 putStrSep 함수를 작성하려고합니다. 아래 예제에서 하드 코드 된 대신.
#/usr/bin/env runghc
import System.Environment --for the getArgs function
-- Concatenate my own string
putStrSep :: String -> IO()
putStrSep x = putStr (x ++ " ")
--Prints the list of arguments
main = do
putStrLn "Usage: helloworld.hs your full name"
args <- getArgs --returns you a list of string
putStr "Your name is: "
mapM_ putStrSp args
putStrLn "\nGood bye!"
'putStrSep':: String -> [String] -> IO()'를'strSep :: String -> [String] -> String'으로 대체하는 것이 IO를 피하는 것이 좋습니다. 출력을 화면에서 직접 팝업하는 것 이외의 다른 작업을 수행 할 수있는 유연성. (명령 줄 인터페이스에서 GUI로 프로그램을 전환 할 때 감사하겠습니다. UI를 처리와 분리하십시오.)하지만 intercalate :: [a] - [[a]] -> [ a]''Data.List'에서'[String] = [Char]'와 같이 'main'에 직접 입력 할 수 있습니다 (http://stackoverflow.com/a/23355494/1598537). – AndrewC