Я определил, где определить имя earthSecondsAYear. К сожалению, он не может быть в рамках предыдущего предложения where.второй, где имя не входит в область предыдущего, где пункт
Вот код: сообщение
module SpaceAge (Planet(..), ageOn) where
data Planet = Mercury
| Venus
| Earth
| Mars
| Jupiter
| Saturn
| Uranus
| Neptune
ageOn :: Planet -> Float -> Float
ageOn planet seconds = (seconds/100) * planetYearSecs planet
where planetYearSecs Mercury = (earthSecondsAYear/100) * 0.2408
planetYearSecs Venus = 0.6151
planetYearSecs Mars = 1.8808
planetYearSecs Jupiter = 11.8626
planetYearSecs Saturn = 29.4474
planetYearSecs Uranus = 84.0168
planetYearSecs Neptune = 164.7913
planetYearSecs Earth = 100
where earthSecondsAYear = 31557600
Ошибка:
:14:34: error:
Variable not in scope: earthSecondsAYear
Что мне не хватает?
«Где» применяется только к определению непосредственно над ним (например, к «planetYearSecs Earth = 100»). Это меня все время укусы. :) – Alec