type Mass = Float
type Height = Float
type BMI = Float
bmi :: Height -> Mass -> BMI
bmi :: Height-> Mass -> BMI
bmi heightM weightKg = weightKg/(heightM/100)^2
这是我运行时的代码,我不断在::上遇到解析错误:为什么这要怎么解决呢?
答案 0 :(得分:7)
Haskell代码的结构取决于其格式和缩进。
尤其是:
type BMI = Float
bmi :: Height -> Mass -> BMI
由于第二行比第一行缩进更多,Haskell假定它是该类型声明的延续。解析为:
type BMI = Float bmi :: Height -> Mass -> BMI
这是语法错误,因为您不能只是在::
声明的中间插入type
。
修复:确保所有行都缩进相同。在此示例中,您可能根本不需要任何缩进:
type BMI = Float
bmi :: Height -> Mass -> BMI
^ -- 'type' and 'bmi' start in the same column