UPD:想通了,我必須ghci先在終端中輸入

你好,
為什么這段代碼:
let fact n = if n == 0 then 1 else n * fact(n - 1)
在影像中的這個程式中編譯并運行,但是當我嘗試做同樣的事情時,它說
[1 of 1] Compiling Main ( main.hs, main.o )
main.hs:2:1: error:
parse error (possibly incorrect indentation or mismatched brackets)
這種語法已經過時了嗎?
注意:我正在使用在線 gdb,因為我還不知道如何安裝 Haskell。
uj5u.com熱心網友回復:
在鏡像中編譯并運行這個程式,但是當我嘗試做同樣的事情時。
因為如果你寫 a let,它期望in …下一個子句。在程式中,您定義函式。您可以使用main默認運行的函式,因此:
main :: IO ()
main = do
let fact n = if n == 0 then 1 else n * fact (n - 1)
print (fact 5)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/517171.html
下一篇:如何檢查型別變數是不明確的型別?
