Kilka miesięcy temu przeczytałem gdzieś skuteczne podejście do dodawania list i dodawania ich do innych list w O (1), reprezentując je za pomocą składów funkcji, które po ocenieniu budują w O (n) wynikową listę.Efektywna lista dołączeń/przedkładania przez skład funkcji
Niestety nie pamiętam źródła tego artykułu lub (jeśli istnieje) nazwy tej techniki/podejścia. Czy masz referencje na ten temat?
(Prawdopodobne) pierwsze pojawienie się było w pracy Johna Hughesa "A Novel Representation of Lists i jej zastosowanie do funkcji" Reverse "(uważam, że wcześniej były to folklory) - stąd są one również nazywane" Hughes Lists ". Zauważ, że wspierają tylko efektywną ** konstrukcję ** - pakiet DList w Hackage ma API wspierające _trospekcję_, ale aby zaimplementować introspekcję, musisz dokonać metamorfozy w zwykłą listę i wycofać się ponownie. Jest to nieefektywne - jeśli chcesz introspekcji potrzebujesz innej struktury. –
Jest to wystarczający kompromis, gdy introspekcja nie jest potrzebna. Dziękuję za wskazanie tego. Nie szukam teraz struktury danych, ale chciałbym po prostu zapoznać się z implementacją dla list różnicowych/Hughes. –