Size: a a a

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

2018 August 26

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Ну да, про O(n)
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
А, там balanced 2-3 trees
источник

к

кана in PureScript — русскоговорящее сообщество
Anton Kotenko
А почему lookup/insert это не прямой доступ к значению по хеш-ключу, без поиска? Потому что Map это список пар?
Там и не список, иначе было бы O(n), там log(n) дерева. Отсюда мы получаем n фолда * (log(n) лукапа + log(n) инсерта)
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
Всё верно, не поспоришь!
источник
2018 August 27

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
А какой самый близкий аналог такой функции из JS:

function getResult(input) {
   return { 'c': (input.a + input.b) || 0 }
}

такой?:

getResult :: Map String Int -> Map String Int
getResult input =
 Map.fromFoldable
       [ ("c" /\
           (fromMaybe 0 $ (+) <$> Map.lookup "a" input <*> Map.lookup "b" input))
       ]
источник

ЗП

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

ЗП

Зигохистоморфный Препроморфизм in PureScript — русскоговорящее сообщество
если что возвращает tuple то
[a, b]
или
{fst, snd}
источник

AK

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

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
но наверное в PS такой свободы нет
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
это скорее вброс, а не вопрос
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
буду честен
источник

к

кана in PureScript — русскоговорящее сообщество
Anton Kotenko
А какой самый близкий аналог такой функции из JS:

function getResult(input) {
   return { 'c': (input.a + input.b) || 0 }
}

такой?:

getResult :: Map String Int -> Map String Int
getResult input =
 Map.fromFoldable
       [ ("c" /\
           (fromMaybe 0 $ (+) <$> Map.lookup "a" input <*> Map.lookup "b" input))
       ]
предпочитаю liftA тут, выглядит как обычное применение функции
источник

к

кана in PureScript — русскоговорящее сообщество
а так, зависит еще от того, известны ли пропы в компайлт-тайме
источник

к

кана in PureScript — русскоговорящее сообщество
потому что если известны, то способ есть Record
источник

AK

Anton Kotenko in PureScript — русскоговорящее сообщество
К сожалению неизвестны, вернее их можно вычислить только динамично, хранятся в стрингах
источник

ЗП

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

к

кана in PureScript — русскоговорящее сообщество
ну тогда и жс-код неверный
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
Anton Kotenko
не, я имел в виду что хотел бы дать возможность быстро писать в объект по лейблам, но не знаю какие пользователь захочет
я всё не читал но есть Record.get set etc
источник

VY

Vasiliy Yorkin in PureScript — русскоговорящее сообщество
Там может быть вообще ничего не известно
источник

к

кана in PureScript — русскоговорящее сообщество
function getResult(a, b, c) {
 return { d: (c[a] + c[b]) || 0 };
}
источник