Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在从用户获取iput:Haskell_Haskell - Fatal编程技术网

正在从用户获取iput:Haskell

正在从用户获取iput:Haskell,haskell,Haskell,我是哈斯克尔。节目还可以。我还需要做一件事,但我不能。在我的代码中,输入让我们假设17不是来自我初始化它的用户。我无法输入用户的号码。这是我的具体问题 问题是 给定一个数字列表和一个数字k,返回列表中的任意两个数字加起来是否等于k。例如,给定[10,15,3,7]和k=17,则返回true,因为10+7等于17 以下是代码。我试过这样的东西 toList :: String -> [Integer] toList input = read ("[" ++ input ++ "]")

我是哈斯克尔。节目还可以。我还需要做一件事,但我不能。在我的代码中,输入让我们假设17不是来自我初始化它的用户。我无法输入用户的号码。这是我的具体问题

问题是 给定一个数字列表和一个数字k,返回列表中的任意两个数字加起来是否等于k。例如,给定[10,15,3,7]和k=17,则返回true,因为10+7等于17

以下是代码。我试过这样的东西

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上分析错误?