Size: a a a

2021 December 10

r

randomtron in Haskell Start
Точно так же сижу когда в офисе. Супер удобно.
источник

Д

Дмитрий in Haskell Start
Нужно хранить в переменной список, текущее положение в списке(index) и некоторое состояние (data Condition, от него зависит положение функции). Как лучше реализовать? Думаю, через State монаду, но непонятно, куда тогда деть index
источник

[

[BRM]White Rabbit in Haskell Start
в стейте :)
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Или без индекса, но с зиппером
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Индексы с функциональными списками плохо сочетаются
источник

[

[BRM]White Rabbit in Haskell Start
только хотел написать, да
источник

[

[BRM]White Rabbit in Haskell Start
не стоит использовать лист как массив
источник

[

[BRM]White Rabbit in Haskell Start
используй массив как массив
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Или можно взять IntMap
источник

[

[BRM]White Rabbit in Haskell Start
а интмап это префиксное дерево?
источник

[

[BRM]White Rabbit in Haskell Start
да, оно
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Да, по классике, по Окасаки
источник

[

[BRM]White Rabbit in Haskell Start
я классику не знаю
источник

[

[BRM]White Rabbit in Haskell Start
:(
источник

AP

Aleksei (astynax) Pi... in Haskell Start
"Чисто функциональные структуры данных", Крис Окасаки
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Интересно почитать, пусть с тех пор и повеселее структуры понапридумывали. Вроде finger trees
источник

[

[BRM]White Rabbit in Haskell Start
слышал про них в контексте сета
источник

AP

Aleksei (astynax) Pi... in Haskell Start
data Zipper a = Zipper { lefts :: [a], cursor: a, rights :: [a] }

left (Zipper ls c (r:rs)) = Just $ Zipper (c:ls) r rs
left _ = Nothing

right (Zipper (l:ls) c rs) = Just $ Zipper ls l (c:rs)
right _ = Nothing

Идея такая примерно. Это такой курсор для структуры данных, который можно перемещать по структуре, получая прямой доступ к нужному месту.
источник

Д

Дмитрий in Haskell Start
А между ними есть разница?..
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Списки в Haskell — односвязные
источник