May 17th, 2009

|, me, hikki, ok

Иванов

Писал писал я вчера Иванова во фреймворке одного сокурсника. На джаве.
Результат: всю ночь снились страшные вещи. Проснулся, думаю: «А ну его всё нафиг.»
И сел во спасение души писать все с нуля на хаскеле:
data MMatr = MMatr Int Int [[Double]] deriving (Show, Eq)
instance Num MMatr where
    (*) (MMatr row1 col1 a) (MMatr row2 col2 b) =
        if (col1 == row2)
        then MMatr row1 col2 $ [ [ (foldl1 (+) $ zipWith (*) (a!!(row-1)) (map (\x -> x!!(col-1)) b)) | col <- [1..col2] ] | row <- [1..row1] ]
        else error "Bad size"


Педпоследняя строка — это процедура умножения матриц. Как её написал прям такое счастье озарило, что не передать. На жабе у меня там был аж целый класс, а тут одна строка. ПРОФИТ!!! Аж от сердца отлегло.

а джаву надо закопать, закопать, закопать
殺じアワー!