Языки прогрессируют
2008-07-22 22:44В середине 80-х лучшим языком для символьного дифференцирования считался Рефал.
Diff {
(e.t) e.1 '+' e.2 = <Diff (e.t) e.1> '+' <Diff (e.t) e.2>;
(e.t) e.1 '-' e.2 = <Diff (e.t) e.1> '-' <Diff (e.t) e.2>;
(e.t) e.1 '*' e.2 = (e1 '*' <Diff (e.t) e.2>
'+' <Diff (e.t) e.1> '*' e.2);
(e.t) (e.1) = ( <Diff (e.t) e.1> );
(e.t) e.t = '1';
(e.t) e.1 = '0';
}
Нынче Хаскель поинтереснее будет:Dif a = D a (Dif a) dConst :: Num a => a -> Dif a dConst x0 = D x0 dZero dZero :: Num a => Dif a dZero = D 0 dZero instance Num a => Num (Dif a) where fromInteger = dConst . fromInteger D x0 x’ + D y0 y’ = D (x0 + y0) (x’ + y’) D x0 x’ - D y0 y’ = D (x0 - y0) (x’ - y’) x@(D x0 x’) * y@(D y0 y’) = D (x0 * y0) (x’ * y + x * y’)

no subject
Date: 2008-07-24 22:35 (UTC)http://www.amazon.com/Haskell-Logic-Maths-Programming-Computing/dp/0954300696/ref=pd_bbs_sr_3?ie=UTF8&s=books&qid=1216938892&sr=8-3