在存储到变量(Haskell)之前对用户getLine结果的操作
这是我的代码:在存储到变量(Haskell)之前对用户getLine结果的操作,haskell,Haskell,这是我的代码: askPointer = do input <- getLine let newInput = map toUpper input [..here I will re-use new Input..] return () 是否可以使用lamba表示法,使代码仅在一行中缩短 我的尝试失败了: input <- (\a b-> do toUpper (b <- getLine ) ) 有什么建议吗 编辑:进行少量编辑,使此问题寻找更一般的答
askPointer = do
input <- getLine
let newInput = map toUpper input
[..here I will re-use new Input..]
return ()
是否可以使用lamba表示法,使代码仅在一行中缩短
我的尝试失败了:
input <- (\a b-> do toUpper (b <- getLine ) )
有什么建议吗
编辑:进行少量编辑,使此问题寻找更一般的答案,而不限于返回函数这应该可以:
askPointer = getLine >>= return . map toUpper
如果导入Control.Applicative,则可以使其更短:
askPointer = map toUpper <$> getLine
考虑到最后一次编辑:
input <- getLine >>= return . map toUpper
或
这应该起作用:
askPointer = getLine >>= return . map toUpper
如果导入Control.Applicative,则可以使其更短:
askPointer = map toUpper <$> getLine
考虑到最后一次编辑:
input <- getLine >>= return . map toUpper
或
在使用之前将函数应用于IO操作的结果是对fmap功能的极好描述
fmap确实是一个非常有用的函数。你可以在这本书中读到更多,我最后写了一个迷你教程 在使用之前将函数应用于IO操作的结果是对fmap功能的极好描述
fmap确实是一个非常有用的函数。你可以在这本书中读到更多,我最后写了一个迷你教程 我如何获得输入的值?你能用更详细的信息来表达吗?@haskellguy:input>=return。map toUpper或input当我只输入“do”块中我得到的最后一条语句的第一行时,它必须是一个表达式,我如何得到输入的值?你能用更详细的方式表达吗?@haskellguy:input>=return。map toUpper或input当我只输入“do”块中的第一行时,我得到的最后一条语句必须是表达式