module SpaceAge (Planet(..), ageOn) where
data Planet = Mercury
| Venus
| Earth
| Mars
| Jupiter
| Saturn
| Uranus
| Neptune
ageOn :: Planet -> Float -> Float
ageOn planet seconds =
case planet of {
Mercury -> seconds * 0.2408467
Venus -> seconds * 0.61519726
Earth -> seconds * 1
Mars -> seconds * 1.8808158
Jupiter -> seconds * 11.862615
Saturn -> seconds * 29.447498
Uranus -> seconds * 84.016846
Neptune -> seconds * 164.79132
}
你好,當我編譯上面的 Haskell 代碼時,它給了我
error: parse error on input ‘->’
|
115 | Venus -> seconds * 0.61519726
我所有的案例都是垂直對齊的,那么問題是什么?
謝謝
uj5u.com熱心網友回復:
撰寫花括號向 GHC 表明您不想使用空格布局來確定塊結構,因此您必須使用分號來分隔每個案例。
但首選的方法是省略花括號:
ageOn' :: Planet -> Float -> Float
ageOn' planet seconds =
case planet of
Mercury -> seconds * 0.2408467
Venus -> seconds * 0.61519726
Earth -> seconds * 1
Mars -> seconds * 1.8808158
Jupiter -> seconds * 11.862615
Saturn -> seconds * 29.447498
Uranus -> seconds * 84.016846
Neptune -> seconds * 164.79132
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/517167.html
標籤:哈斯克尔句法编译器错误
