cblp on gh-pages
Update 2017-04-06-react-flux-gu… (compare)
cblp on react-flux-talk-timecode-fix
cblp on master
Update 2017-04-06-react-flux-gu… (compare)
astynax on react-flux-talk-timecode-fix
Update 2017-04-06-react-flux-gu… (compare)
cblp on master
Revert @ruhaskell (compare)
cblp on master
Add @ruhaskell (compare)
cblp on gh-pages
Update link (#109) https://has… (compare)
cblp on qnikst-patch-1
cblp on master
Update link (#109) https://has… (compare)
qnikst on qnikst-patch-1
Update link https://haskell-la… (compare)
+RTS
, а сейчас хочу зашить дефолт в програмульку.
+RTS --info
этот флаг присутствует, но на него же он и ругается. Загадочно.
doWork
вообще ничего не собирать, пока эта функция не завершит работу.
-qn4
дало дополнительный прирост.
take n <$> shuffleM list
чтобы извлекать n
произвольных элементов из list
. Здесь shuffleM
- из Олеговского пакета random-shuffle
. Ну и в какой-то момент я решил что сортировать весь список, ради того чтобы пару элементов оттуда достать - не комильфо. Переписал по-своему, и это работает настолько долго, что моя программулька теперь даже не завершается.
nub
впендюрен и дополнительная рекурсия, которая генерит список индексов пока он не окажется нужной длины.
n
в моей программульке обычно мало, поэтому оно не должно быть узким горлышком.
replicateM n ...
, конечно же.
shuffle1.extract_tree
, то смысл заклинаний от меня ускользает.
data WithLocs a = WithLocs { inputLocs :: [Int], outputLoc :: Int, item :: a }
и я работаю с [WithLocs a]
. Здесь outputLoc
и являются чем-то вроде индексов, а inputLocs
их референсят. Когда я делаю insert
в такой список, мне приходится подкручивать локи всех элементов, идущих после вновь вставленного. При удалении то же самое, само собой.
a
- это штуки, которые имеют некие входы и один выход. Функции, например. А список [WithLocs a]
представляет из себя "программу", написанную из этих функций. Либо, если с другой стороны посмотреть, это направленный граф, где в узлах стоят a
, вот эти инпуты и аутпуты описывают ребра.