Haskell 从文件获取输入时出错

Haskell 从文件获取输入时出错,haskell,io,functional-programming,Haskell,Io,Functional Programming,主要功能: main = do x <- getLine lines <- replicateM x getLine print $ lines main=do xreplictem类似于replictem::Monad m=>Int->ma->m[a] 其中asgetLine::IO字符串 “x”需要是Int,但是getLine返回一个IO字符串, 您可以执行读取x::Int: main = do x <- getLine lines <- rep

主要功能:

main = do
  x <- getLine
  lines <- replicateM x getLine
  print $ lines
main=do

xreplictem类似于
replictem::Monad m=>Int->ma->m[a]
其中as
getLine::IO字符串
“x”需要是
Int
,但是
getLine
返回一个
IO字符串
, 您可以执行
读取x::Int

main = do
  x <- getLine
  lines <- replicateM (read x :: Int) getLine
  print $ lines
main=do

xreplictem类似于
replictem::Monad m=>Int->ma->m[a]
其中as
getLine::IO字符串
“x”需要是
Int
,但是
getLine
返回一个
IO字符串
, 您可以执行
读取x::Int

main = do
  x <- getLine
  lines <- replicateM (read x :: Int) getLine
  print $ lines
main=do

x确实
readLn
x
作为
IO a
获取,其中
a
是上下文中需要的类型。由于
replicitem
需要
Int
,因此编译器推断
a~Int
。如果
replicitem
没有精确地修复
a
的话,就会发生歧义错误。实际上
readLn
会将
x
作为
IO a
获取,其中
a
是上下文中需要的类型。由于
replicitem
需要
Int
,因此编译器推断
a~Int
。如果
replicateM
没有精确地修复
a
,就会发生歧义错误。
x
是一个字符串(也称为字符列表),而
replicateM
需要一个int-什么不清楚?
x
是一个字符串(称为字符列表),而
replicateM
需要一个int-什么不清楚?
main = do
  x <- readLn
  lines <- replicateM x getLine
  print $ lines