2016-05-10 4 views
2

私はstringまたはcharのコンソールから変数に格納しようとしています。haskellでgetLineまたはgetCharを使用するにはどうすればよいですか?

私が使用してみました:

> let x = getChar 
> x 
> c -- for getting a char. 

しかし、何がどのように私は行うことができます(getlineのために同じ)が格納されていませんか?ここで

+0

ないようなもので、IOモナドの中にそれを使用する必要があります。 https://www.haskell.org/tutorial/io.html –

答えて

1

で、多分非常に有用ではありません。しかし、<-構成を使用する必要があります。例えば

"なくてもいいです):詳細については

>myString <- getLine 
>"Hello world" 

または

>myChar <- getChar 
>c 

私はhere

2

はサンプルのコンソールからの読み込み

main = do 
    x <- getLine 
    putStrLn $ "Here is the string you typed in: " ++ x 
5

getCharのタイプはIO Charあるを読むことをお勧めします。 Charを返す関数ではありません。実行されるとCharを返すIOアクションです。 (微妙ながら、この区別はHaskellは純粋関数でIOを実行する方法を理解するために不可欠である。)

let x = getChar 

はちょうどあなたが後に入力することで見ることができ、同じIOアクション(に名前xをバインドラインGHCi中の:t x)。 xと入力すると、そのアクションが実行されます。 GHCIはあなたが文字を入力するのを待って、すぐにその文字を返します。プログラムでgetCharを使用するには

、あなたは彼らが文字で読み、このチュートリアルにすぎ

main = do ch <- getChar 
      print ch 

または

main = getChar >>= print 
+0

あなたの答えをありがとう、それは非常に正確ですが、私はコンソールから直接使用するように頼んだのです。 –

+0

@ user4929787( 'ghci'の中からそれを使うことを言及していると思います...私が間違っていると思われたら、教えてください!)' let ch = getChar'ではなく 'ch < - getChar'を試してみてください。 – BalinKingOfMoria

関連する問題