如标题所示,我想在do块之后返回一个值。
示例:编写一个将变量插入到数组中给定位置的函数:
insertAt :: a -> Int -> [a] -> [a]
insertAt x n xs = do
let before = take n xs
let after = drop n xs
let merged = before ++ [x] ++ after
in merged
Run Code Online (Sandbox Code Playgroud)
例如:
insertAt'x'3“ Aleander” =>“ Alexander”
无论如何,当使用单个let调用时,可以使用in关键字返回一个值,但是在示例中多次调用let会得到错误:
错误:解析输入“ in”中的错误
我知道我可以在一个let用法中完成全部操作,但是我想知道如何处理多个let调用:)
谢谢您的帮助!