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)

Recommended by:

@pooq: моча съела говно

@magog: да это же куда читабельнее, чем на плюсах, правда @Rayslava?

1. violetta 21.10.2012 18:56 Time machine

Фолданул как в воду зипнул)))

2. 0xd34df00dvioletta /1 21.10.2012 18:56 Azoth_primary

Покаррировал на ночь ))))

3. Minoru 21.10.2012 19:34 antaeus

Что такое wt?

5. Minoru0xd34df00d /4 21.10.2012 21:02 antaeus

readC легко сокращается до map fst . rights . map hexadecimal . take 3 . T.chunksOf 2, а show' — до printf "%02x" (import Data.Printf не забудь). С avgColor ничего сделать не смог; единственное замечание — я бы вместо uncurry (+) внутри map использовал zipWith (+) на месте zip.
Спасибо за небольшой code golf на ночь :)

6. MinoruMinoru /5 21.10.2012 21:12 antaeus

s/Data\.Printf/Text.Printf/

7. ulidtko 22.10.2012 12:47

пиздец, говно нечитабельное

8. 0xd34df00dulidtko /7 22.10.2012 12:49 Azoth_primary

Че.

Do you really want to delete ?