Здравствуйте, z00n, Вы писали:
У меня начинает складываться впечатление, как в топиках
Metaprogramming et alАвтор:
Дата: 09.07.05
и
LispАвтор: fionbio
Дата: 12.07.05
: функциональные языки какие крутые (круче них, понятное дело, только яйца)! Вот почему они мейнстримом не стали понять до сих пор не могу?
Z>Ну, например, вот немного линейной алгебры из домашнего задания первокурсника, который к тому времени уже целых два месяца учится программировать. Если это переписать на boost::mpl и запостить с форум по С++ — все закричат, что это извращение и среднему труженнику С++ этого ни в жисть не понять
Z>
Z>(define (dot-product v w)
Z> (accumulate + 0 (map * v w)))
Z>(define (matrix-*-vector m v)
Z> (map (lambda (x) (dot-product x v)) m))
Z>(define (transpose m)
Z> (accumulate-n cons null m))
Z>(define (matrix-*-matrix m n)
Z> (let ((cols (transpose n)))
Z> (map (lambda (x) (matrix-*-vector cols x)) m)))
Z>
А чего здесь вообще должно делаться? Матрица на матрицу перемножаться?
Ну и сколько Scheme-программисту нужно будет изучать C++ и boost::mpl для того, чтобы сделать то же самое через C++ные expression templates?
... << RSDN@Home 1.1.4 stable rev. 510>>