我寫這樣的代碼越來越<<loop>>消息運行的Haskell程序
import System.Environment
import Control.Exception
import Data.List
f :: String -> [String] -> IO()
f str [] =
putStrLn "String 2"
f str (x : xs) =
putStrLn "String 1"
main :: IO()
main = do
xs <- getArgs
let str = head xs
let xs = tail xs
f str xs
return()
但是當我編譯並嘗試運行我總是隻能回答<<loop>>
ghc run.hs
./run some_string some_over_arguments
run: <<loop>>
時有什麼不對的碼?我已經嘗試吼<<loop>>
,但什麼都沒發現。如果我通過f
而不是str xs
但str [some_hardcoded_list]
此代碼工作正常,所以我想這是xs
錯誤。
那麼,您使用了什麼輸入參數?這是分配給xs的東西。請粘貼整個運行命令。 – EkcenierK
@KLibby例如'$ ./run my_string any_argument'這正是我所提到的 – PepeHands
[Haskell綁定變量時的無限循環]的可能重複(http://stackoverflow.com/questions/28553559/infinite-loop-in -haskell-when-binding-variables) – Zeta