1

ねえ、私はhaskellを学ぼうとしていて、ターミナルのユーザーからIntを収集する必要があるプログラムを書くのに苦労しています。このようなことを試してみました

import Data.Char (digitToInt)


getArguments :: IO Int
getArguments =
    do putStrLn "Enter the number of arguments you want to have"
       arguments <- getChar
       return (digitToInt arguments)


main :: IO()
main = do
    putStrLn "Welcome to Random Argument Generator"
    let x = getArguments
    print x+1

しかし、これはplzヘルプでは機能しません!

4

1 に答える 1

6

let x = getArgumentsと置き換えますx <- getArguments

の型シグネチャgetArgumentsは (正しく):: IO Intです。これはInt、IO モナド内に「ラップ」されていることを意味します。つまり、構文を使用してラップを解除する必要があります。val <- func

getArguments純粋な関数 ( ) の場合:: Int、let 構文は正しいはずです。

于 2013-03-09T09:26:51.897 に答える