【问题标题】:Infinitely displaying same value Haskell无限显示相同的值Haskell
【发布时间】:2018-03-11 08:47:11
【问题描述】:

所以我正在制作一个程序来显示所选元素的组合原子质量。这是我的代码的 sn-p:

start :: Integer -> [Double] -> IO()
start num empty = 
    if num /= 0
        then do
            putStrLn "Term:"
            term <- getLine
            let atom = element term
            putStrLn "Subscript:"
            subscript <- getLine
            let sub = convertToDouble subscript
            let add_element = atom * sub
            let empty = add_element : empty
            putStrLn "Done"
            start (num - 1) empty
        else 
            putStrLn . show $ empty

每当我运行它并将 0 作为 num 传递时,它都能完美运行。但是当我将任何其他数字作为参数传递时,它会创建一个无限循环并一遍又一遍地显示相同的值。

【问题讨论】:

    标签: haskell infinite-loop


    【解决方案1】:
    let empty = add_element : empty
    

    这定义了一个无限重复的add_element 列表。由于let 始终是递归的,因此请使用不同的名称。

    let notempty = add_element : empty
    

    【讨论】:

      猜你喜欢
      • 2018-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-31
      • 1970-01-01
      相关资源
      最近更新 更多