type Mass = Float
type Height = Float
type BMI = Float
bmi :: Height -> Mass -> BMI
bmi :: Height-> Mass -> BMI
bmi heightM weightKg = weightKg/(heightM/100)^2
这是我的代码运行它时,我不断收到关于::语法错误,这是为什么我怎么能解决这个问题
的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