← All posts tagged IT

rufuse
programming Git А как можно посчитать кумулятивное количество правок между двумя коммитами? У них разница в два года и меня интересует не статистика по прямому диффу, а именно сумма всех правок. Желательно еще по маске с расширением.
rufuse
programming Haskell Предположим есть такой кейс:

data Foobar = Foobar { foo :: [Int], bar :: [Int] }

selectFromFoobar :: [Int] -> Foobar -> [Int]
selectFromFoobar values foobar = selectFromEfficientStructure efficientSearchStructure values
  where efficientSearchStructure        = <some weird logic to produce it here>
             selectFromEfficientStructure = <some more logic here>

Возможно можно было бы проще как-нибудь изобразить вопрос, но уж как в голову пришло… Итак, у нас есть тип Foobar и для того чтобы делать по его полям эффективную выборку нужно строить какую-то поисковую структуру(какие-нибудь мапы, trie или что-нибудь еще, неважно). А теперь предположим что нам приходится это часто делать на одних и тех же рекордах(читайте "взятых из одного списка") типа Foobar — следовательно будут строиться одни и те же поисковые структуры(efficientSearchStructure). Будут ли они как-то кэшироваться в рантайме или тут же будут сожраны GC? Как вообще о производительности похожего кода рассуждать?