LINUX.ORG.RU

История изменений

Исправление trex6, (текущая версия) :

лишние присваивания

Не очень понимаю как избавится от

(setf d (- (* b b) (* 4 a c)))
если необходимо дважды проверить значение d - на положительность и на равенство нулю. Сейчас не рассматриваем упрощение кода (действительно, можно два раза вычислить один и тот же корень и выкинуть на мороз calc-single-x), но мы попробуем это не учитывать. Примем как догму то, что нам необхдимо дважды оценить значение выражения.

Или подразумевается перенос этого из setf в let?

Исходная версия trex6, :

лишние присваивания

Не очень понимаю как избавится от
[code=lisp]
(setf d (- (* b b) (* 4 a c)))
[/code]
если необходимо дважды проверить значение d - на положительность и на равенство нулю. Сейчас не рассматриваем упрощение кода (действительно, можно два раза вычислить один и тот же корень и выкинуть на мороз calc-single-x), но мы попробуем это не учитывать. Примем как догму то, что нам необхдимо дважды оценить значение выражения.

Или подразумевается перенос этого из setf в let?