0xd34df00d
21.10.2012 18:54 Azoth_primary
Минут 15 писал калькулятор средневзвешенного двух цветов. Пришлось даже КАРРИРОВАТЬ @ ДЕКАРРИРОВАТЬ, и вообще, как-то страшно выглядит:
avgColor (c1, c2) (w1, w2) = foldl (++) "#" $ map (show' . (`div` (w1 + w2)) . (uncurry (+))) $ zip (wt c1 w1) (wt c2 w2)
Фолданул как в воду зипнул)))
Покаррировал на ночь ))))
Что такое wt?
http://bpaste.net/show/5ocHWOn9WHKoHPvZF...
readC легко сокращается до map fst . rights . map hexadecimal . take 3 . T.chunksOf 2, а show' — до printf "%02x" (import Data.Printf не забудь). С avgColor ничего сделать не смог; единственное замечание — я бы вместо uncurry (+) внутри map использовал zipWith (+) на месте zip.
Спасибо за небольшой code golf на ночь :)
s/Data\.Printf/Text.Printf/
пиздец, говно нечитабельное
Че.