Ш̴̴̜̥͍͕̼̙̱͙͎͍̘̀̐̔́̾̃͒̈̔̎́́͜р̧̛̺͖͖̯̖ͧͤ͋̅̽ͧ̈̐̽̆̐͋ͤͦͬ͛̃̑͞͞и̒ͥͤͯ͂ͣ̐̉̑ͫ̉̑҉̛͏̸̻͕͇͚̤͕̯̱̳͉ͅф̴̴̡̟̞͙̙̻͍̦͔̤̞̔̓́̍͗̚͢͞ͅт̨̐ͫ̂͊̄̃ͥͪ͏̫̺͍̞̼͈̩̥̜͔͜͜ы̸̴̱̺̼̠̦͍͍͍̱̖͔̖̱͉̅͑͌͒ͫ͒̀ͥ͐ͤ̅͘̕.̵̴̡̭̼̮͖͈̙͖͖̲̮̬͍͙̼̯̦̮̮ͦ̆̀̑̌ͮͧͣͯ̔̂́͟г͌ͮ̏̈͂ͯ̚҉̛̙̬̘̲̗͇͕̠̙͙̼̩͚̀͘͞ͅо̷̥̯̘̓ͤ̽͒̋̉̀̂̄̒̓̊ͨ͛́̌ͤ̂̀͠в̶̒͒̓̏̓̚҉̛̙̘̺̰̮̼̟̼̥̟̘̠̜͜н̸̷̸̲̝͈͙̰̟̻̟̰̜̟̗͎̻̻͍̿̔̃ͨ͑о̔̀̋ͫ̇̿̐ͫ͌͗ͩ҉̨̜̙̙͈͍̮̮̼̙̘̞̕͜͡ Войти !bnw Сегодня Клубы

Удобное приведение типов, теперь и в х-ле!

import Data.Maybe (fromJust)
import Data.Aeson (decode, encode)

jsonCast :: (ToJSON a, FromJSON b) => a -> b
jsonCast = head . fromJust . decode . encode . (:[])

Теперь можно кастовать список интов в вектор даблов. Или различные числовые типы между собой.

♥ jsonCast ([1,2,3] :: [Int]) :: Data.Vector.Vector Double
    fromList [1.0, 2.0, 3.0]
♥ let q = jsonCast; a=3::Int; b=1.3::Float; c=Just 10
♥ q a + q b + q c :: Double
    14.3
Рекомендовали: @ulidtko
#6TVM85 / @fix / 3842 дня назад

На самом деле можно [более типобезопасно]( http://pastebin.com/raw.php?i=Avm3rdaS ), только надо что-нибудь придумать, чтобы не писать 2N² инстансов.
#6TVM85/C8V / @fix / 3842 дня назад
эмм, а `fmap fromIntegral` не покатит?
#6TVM85/LBW / @ulidtko / 3842 дня назад
@ulidtko Это только частный случай.
#6TVM85/1B2 / @fix --> #6TVM85/LBW / 3842 дня назад
@fix лан
#6TVM85/X47 / @ulidtko --> #6TVM85/1B2 / 3842 дня назад
@ulidtko не то
#6TVM85/GAM / @fix --> #6TVM85/3L8 / 3842 дня назад
@fix всё то // нешаришь
#6TVM85/3TP / @ulidtko --> #6TVM85/GAM / 3842 дня назад
@ulidtko лан
#6TVM85/CG4 / @238328 --> #6TVM85/3TP / 3842 дня назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.