2017-01-21 46 views
0

我正在嘗試我的手在哈斯克爾。Haskell布爾表達式:解析錯誤(可能是不正確的縮進或不匹配的括號)

我寫的代碼,並保存爲:boolean.hs

的代碼是:

let area r = pi * r^2 
main = print(area 5 < 50) 

當我這樣做,ghc -o boolean boolean.hs

我得到一個錯誤信息:

[1 of 1] Compiling Main    (boolean.hs, boolean.o) 

boolean.hs:2:1: 
    parse error (possibly incorrect indentation or mismatched brackets) 

如果有人幫我看看這個錯誤是怎麼發生的,那將會很棒e解決了。

我通過Haskell|Wikibooks|Identation去了,並改變了代碼:

let 
    area r = pi * r^2 
main = 
    print(area 5 < 50) 

,還是把:

[1 of 1] Compiling Main    (boolean.hs, boolean.o) 

boolean.hs:3:1: 
    parse error (possibly incorrect indentation or mismatched brackets) 

問候。 :)

+0

相關的問題有關[讓](http://stackoverflow.com/questions/8274650/in-haskell-when-do-we-use-in-with -let) – wizzup

回答

3

您不需要使用let。只要定義函數,並調用它在main

area r = pi * r^2 

main = print (area 5 < 50) 
+0

明白了......謝謝:)你能告訴我爲什麼會發生這種情況嗎?或者你可以指點我的方向,我如何學習更多? –

+1

當然,這裏的鏈接:https://www.haskell.org/tutorial/patterns.html。查看4.5節 –

+2

@PragyadityaDas Bare'let'表達式不允許出現在模塊的頂層,但它們可以出現在表達式中('let x = 42 in x * x')或'do' blocks('do {let x = 42; print x;}')。 – Rufflewind

相關問題