Хотя это не сработает, мы представим вам это, чтобы показать идею.В Haskell вы можете написать
cubicQ a b c = ((3*a*c) - b**2)/(9 * (a**2))
where
cubicRealSolution q r s t = if p < 0 then error "NaN" else (s + t) - ((b)/(3*(a)))
Хитрость заключается в использовании ключевого слова where
.Поскольку cubicRealSolution
заключен в cubicQ
, он может иметь доступ к своим аргументам a
, b
и c
без необходимости их передачи.