Size: a a a

PureScript — русскоговорящее сообщество

2018 August 25

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Может быть по логике ещё `foldr` подходит вместо `map`, но надо с ключом.
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
convertKeysInMap
   :: forall k k' v
    . Ord k => Ord k'
   => (k -> k')
   -> (Map k v)
   -> (Map k' v)
convertKeysInMap toNewKey srcMap =
   foldr foldingF Map.empty $ Map.keys srcMap
   where
       foldingF oldKey resMap =
           maybe
               resMap
               (\v -> Map.insert (toNewKey oldKey) v resMap)
               $ Map.lookup oldKey srcMap
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Так сделал в результате, не знаю насколько красиво или правильно
источник

к

кана in PureScript — русскоговорящее сообщество
mapKeys :: forall k k' v. Ord k => Ord k' => (k -> k') -> Map k v -> Map k' v
mapKeys f = fromFoldable <<< amap (lmap f) <<< toUnfoldable where
 amap :: forall a b. (a -> b) -> (Array a -> Array b)
 amap = map


да что-нибудь типа того
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
кана
mapKeys :: forall k k' v. Ord k => Ord k' => (k -> k') -> Map k v -> Map k' v
mapKeys f = fromFoldable <<< amap (lmap f) <<< toUnfoldable where
 amap :: forall a b. (a -> b) -> (Array a -> Array b)
 amap = map


да что-нибудь типа того
я же такое уже писал)
источник

к

кана in PureScript — русскоговорящее сообщество
ну тогда не понятно зачем то что выше
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
и на линзах через изоморфизм тоже писал
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
кана
mapKeys :: forall k k' v. Ord k => Ord k' => (k -> k') -> Map k v -> Map k' v
mapKeys f = fromFoldable <<< amap (lmap f) <<< toUnfoldable where
 amap :: forall a b. (a -> b) -> (Array a -> Array b)
 amap = map


да что-нибудь типа того
не хотелось туда-сюда конвертировать лишний раз, насколько это дорого?
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
В смысле fromFoldable .. toUnfoldable
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
Anton Kotenko
не хотелось туда-сюда конвертировать лишний раз, насколько это дорого?
а у тебя меньше операций?
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
Anton Kotenko
В смысле fromFoldable .. toUnfoldable
это нат преобразование, в точности почти до изоморфизма
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Зигохистоморфный Препроморфизм
а у тебя меньше операций?
вообще не особо конечно, lookup и insert долгие, согласен
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
Anton Kotenko
вообще не особо конечно, lookup и insert долгие, согласен
это беда и в императивщине, лукапы эти, быстрее пересобрать и промапать
источник

к

кана in PureScript — русскоговорящее сообщество
Anton Kotenko
не хотелось туда-сюда конвертировать лишний раз, насколько это дорого?
скорее всего быстрее твоего
источник

к

кана in PureScript — русскоговорящее сообщество
потому что там сделана одна конвертация в массив и пробежка по нему, потом снова конвертация (3n), а у тебя множество инсертов и лукапов, получается 2n*log(n)
источник

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
кана
потому что там сделана одна конвертация в массив и пробежка по нему, потом снова конвертация (3n), а у тебя множество инсертов и лукапов, получается 2n*log(n)
именно так
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
кана
потому что там сделана одна конвертация в массив и пробежка по нему, потом снова конвертация (3n), а у тебя множество инсертов и лукапов, получается 2n*log(n)
да, я осознал. и исправил.
источник
2018 August 26

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
А почему lookup/insert это не прямой доступ к значению по хеш-ключу, без поиска? Потому что Map это список пар?
источник

Вл

В ладу in PureScript — русскоговорящее сообщество
Хм а какой?
источник

Вл

В ладу in PureScript — русскоговорящее сообщество
Речь ведь про сложность?
источник