正在从用户获取iput:Haskell
我是哈斯克尔。节目还可以。我还需要做一件事,但我不能。在我的代码中,输入让我们假设17不是来自我初始化它的用户。我无法输入用户的号码。这是我的具体问题 问题是 给定一个数字列表和一个数字k,返回列表中的任意两个数字加起来是否等于k。例如,给定[10,15,3,7]和k=17,则返回true,因为10+7等于17 以下是代码。我试过这样的东西正在从用户获取iput:Haskell,haskell,Haskell,我是哈斯克尔。节目还可以。我还需要做一件事,但我不能。在我的代码中,输入让我们假设17不是来自我初始化它的用户。我无法输入用户的号码。这是我的具体问题 问题是 给定一个数字列表和一个数字k,返回列表中的任意两个数字加起来是否等于k。例如,给定[10,15,3,7]和k=17,则返回true,因为10+7等于17 以下是代码。我试过这样的东西 toList :: String -> [Integer] toList input = read ("[" ++ input ++ "]")
toList :: String -> [Integer]
toList input = read ("[" ++ input ++ "]")
check :: Integer -> [Integer] -> Bool
check k (x:xs) = if ((k-x) `elem` xs)
then True
else (check k xs)
check k x = False
main = do
let k = input <- getLine
putStrLn "Enter a list of numbers (separated by comma):"
input <- getLine
print $ (check k (toList input))
toList::String->[Integer]
toList input=读取(“[”++input++“]”)
检查::整数->[整数]->Bool
检查k(x:xs)=如果((k-x)`elem`xs)
那是真的
其他(勾选KXS)
检查kx=False
main=do
让k=input任意多次使用getLine
main :: IO ()
main = do
putStrLn "Enter a number:"
k <- read <$> getLine
putStrLn "Enter a list of numbers (separated by comma):"
input <- toList <$> getLine
print $ check k input
main::IO()
main=do
putStrLn“输入一个数字:”
k@Carcigenicate现在检查编辑的代码让k=input出现某种解析错误。这就是我一直得到的。编译或执行时在输入“=”@Code365上分析错误?