2017-04-03 1 views
3

직관적으로, 나는 성공없이 ... 하스켈 코드를`ghc -e` 명령으로 실행할 때 명령 행 인자를 전달할 수 있습니까?

$ ghc -e "import System.Environment" -e "getArgs" -- a b c 
ghc: unrecognised flag: -- 
did you mean one of: 
    -n 
    -F 
    -v 

Usage: For basic information, try the `--help' option. 
$ 

을 시도했습니다.

나는 출력이 ["a","b","c"]의 줄에있을 것으로 예상했다.

The docs here cli 인수를 전달하는 방법에 대해서는 언급하지 않았습니다.

AFAIK 배관은 예상대로 작동합니다.

ghc -e과 함께 인수를 전달할 수없는 경우 ghci을 사용하여 일부 코드와 일부 인수를 제공하고 실행 한 다음 종료 할 수 있습니까? 방법이없는 경우

Prelude> :help :main 
Commands available from the prompt: 
    … 
    :main [<arguments> ...]  run the main function with the given arguments 
    … 
Prelude> let main = System.Environment.getArgs >>= print 
Prelude> :main foo bar 
["foo","bar"] 
+1

, 당신은 HTTPS에 하나, 잘 작동, 당신은 GHC에 제안해야 하나 생각할 수 있습니다 : –

+2

)로 할 수있는 최선책 :'ghc -e "import System.Environment"-e ": set args abc"-e "getArgs"' – chi

+0

@chi 여러분의 의견을 듣고 싶습니다. 어쩌면 쉘 함수가 그 라인을 따라 정의 될 수 있습니다. 나는 함께 모으기 시작했다. – Wizek

답변

1

질문의 두 번째 부분에 응답하려면 // GHC. haskell.org/trac/ghc/ 또는 GHC 제안서 (https://github.com/ghc-proposals/ghc-proposals/
관련 문제