私はstring
またはchar
のコンソールから変数に格納しようとしています。haskellでgetLineまたはgetCharを使用するにはどうすればよいですか?
私が使用してみました:
> let x = getChar
> x
> c -- for getting a char.
しかし、何がどのように私は行うことができます(getlineのために同じ)が格納されていませんか?ここで
私はstring
またはchar
のコンソールから変数に格納しようとしています。haskellでgetLineまたはgetCharを使用するにはどうすればよいですか?
私が使用してみました:
> let x = getChar
> x
> c -- for getting a char.
しかし、何がどのように私は行うことができます(getlineのために同じ)が格納されていませんか?ここで
で、多分非常に有用ではありません。しかし、<-
構成を使用する必要があります。例えば
("
なくてもいいです):詳細については
>myString <- getLine
>"Hello world"
または
>myChar <- getChar
>c
私はhere
はサンプルのコンソールからの読み込み
main = do
x <- getLine
putStrLn $ "Here is the string you typed in: " ++ x
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
あなたの答えをありがとう、それは非常に正確ですが、私はコンソールから直接使用するように頼んだのです。 –
@ user4929787( 'ghci'の中からそれを使うことを言及していると思います...私が間違っていると思われたら、教えてください!)' let ch = getChar'ではなく 'ch < - getChar'を試してみてください。 – BalinKingOfMoria
ないようなもので、IOモナドの中にそれを使用する必要があります。 https://www.haskell.org/tutorial/io.html –