Size: a a a

2021 March 04

VD

Velvet Darkness in Haskell
Достаточно частая, в смысле. У меня чот ручки к вечеру фигню печатают.
источник

VD

Velvet Darkness in Haskell
Jerzy Syrowiecki
а вы хотите это делать только в ST, или только IO, или в обеих?
Сам по себе этот массив можно и в st гонять, но вокруг IO один фиг 🤔
источник

VD

Velvet Darkness in Haskell
Я опять пишу очередную виртуальную машину, а это массив под оперативку. Всё пытаюсь по феншуйски научиться это всё делать.
источник

JS

Jerzy Syrowiecki in Haskell
а, ну да, если между ST-блоками хочется передавать, то это IO
источник

JS

Jerzy Syrowiecki in Haskell
короче, возьмите IOUArray
источник

JS

Jerzy Syrowiecki in Haskell
или Unboxed.IOVector
источник

VD

Velvet Darkness in Haskell
Я прост всё пытаюсь как-нибудь и рыбку съесть и на ёлку залезть. Чтоб тип был "чистым", а вот модификация его пусть будет "грязной", но зато шустрой.
источник

JS

Jerzy Syrowiecki in Haskell
Velvet Darkness
Я прост всё пытаюсь как-нибудь и рыбку съесть и на ёлку залезть. Чтоб тип был "чистым", а вот модификация его пусть будет "грязной", но зато шустрой.
IOVector
источник

JS

Jerzy Syrowiecki in Haskell
что в нём нечистого?
источник

VD

Velvet Darkness in Haskell
type IOVector = MVector RealWorld
Нужно будет где-то брать RealWord, т.е. создавать значение этого типа можно будет только в IO, так?
источник

JS

Jerzy Syrowiecki in Haskell
вы хотите мутировать данные в IO, значит, этот чистый тип должен быть совсемстим с IO
источник

VD

Velvet Darkness in Haskell
А т.к. этот IOVector вложен в рекорд, то и сам рекорд тоже грязным становится.
источник

VD

Velvet Darkness in Haskell
Разве что вытащить это из рекорда как-нибудь 🤔
источник

JS

Jerzy Syrowiecki in Haskell
Velvet Darkness
type IOVector = MVector RealWorld
Нужно будет где-то брать RealWord, т.е. создавать значение этого типа можно будет только в IO, так?
> Нужно будет где-то брать RealWord, т.е.

нет

> создавать значение этого типа можно будет только в IO, так?

да
источник

JS

Jerzy Syrowiecki in Haskell
Velvet Darkness
А т.к. этот IOVector вложен в рекорд, то и сам рекорд тоже грязным становится.
нет
источник

JS

Jerzy Syrowiecki in Haskell
тип не может быть грязным
источник

JS

Jerzy Syrowiecki in Haskell
или вы хотите такой как бы plain old value тип?
источник

JS

Jerzy Syrowiecki in Haskell
чтобы ещё моноидом его сделать?
источник

JS

Jerzy Syrowiecki in Haskell
нет, мутабельные данные даже в ST моноидом не будут
источник

VD

Velvet Darkness in Haskell
Не, без моноида обойдусь. Мне в принципе нужно только от него уметь шустро по рандомным индексам читать\писать.
источник