최근 하스켈을 배우기 시작했습니다. 나는이 코드를 가지고있다하스켈 콘솔 IO in notepad ++
module Main
where
import IO
main = do
hSetBuffering stdin LineBuffering
putStrLn "Please enter your name: "
name <- getLine
putStrLn ("Hello, " ++ name ++ ", how are you?")
나는 notepad ++ 편집기와 함께 GHC 컴파일러를 사용하고있다. 문제는 상호 작용은 다음과 같이 간다 : 안녕하세요, 블라드, 당신은 어떻게
있습니다 :
프로세스 이름을 입력하십시오 블라드
>>>
을 시작?
< < < 프로세스가 완료되었습니다.
출력에서 볼 수 있듯이 출력은 내가 입력 한 후에 만 쓰여집니다. 프로그램이 처음으로 내 이름을 물을 것이라고 확신했기 때문에 이것은 예상치 못한 일이었습니다. 그런 다음 입력을하고 나서 인사 할 것입니다. 글쎄, 그게 정확히 내가 수동으로 exe를 실행하는 경우, 내가 아니라면 메모장 + + 및 콘솔 래퍼를 사용하여 실행하면 ...
내가해야 할 때 메모장 ++ 출력을 표시하려면 어떻게해야합니까? 프로그램이 끝나기 바로 전에? 이것은 가능한가?
고마워요. 그건 사실이야, 그렇지 않아, 왜 메모장에서 중요한지 모르겠다. ++. 필자는이 http://www.cs.utah.edu/~hal/docs/daume02yaht.pdf (40 페이지의 내용)에서이 문제를 정확히 해결해야한다고 말했기 때문에 LineBuffering stdout에 대해서도 생각하지 않았습니다. – IVlad
글쎄, 실제로 이것이 정확하게 수정되어야한다고 말하지는 않습니다. 그것은 한 줄을 입력 한 후 독서 입력이 끝나지 않은 오류를 수정해야한다고 말한다. 그래서 나는이 경우에 LineBuffering stdout이되어야한다고 생각한다. 다시 한 번 감사드립니다! – IVlad