Chciałbym reprezentować rodzaj struktury danych kolejki funkcjonalnie, ale tak naprawdę nie dostałem nigdzie. Sprawdziłem Zippers, ale nie wydają się być właściwą strukturą.Funkcjonalny typ kolejki
szczególności próbuję reprezentują szereg linii opóźniających (dla efektów dźwiękowych takich jak echo i pogłos), więc funkcjonalność potrzebna jest następująca:
- dołączyć dane do przodu
- Usuń ostatni element (może być po prostu wyrzucane)
dla mojego konkretnego zastosowania, te dwie operacje byłyby wykorzystywane w połączeniu, aby utrzymać stałą wielkość KOLEJKĄ, ale to ograniczenie nie ma fundamentalne znaczenie. Mogę po prostu użyć listy, ale myślę, że musi być coś czystszego. Jaki jest najlepszy sposób reprezentowania tego typu?
Używam F #, ale każdy język jest mile widziany.
Możliwe zastosowanie: [ 'Data.Sequence'] (http://hackage.haskell.org/package /containers-0.5.7.1/docs/Data-Sequence.html) – chi
@chi Jak to działa? Sądzę, że źle sformułowałem tę ostatnią część, ponieważ chciałbym użyć tej rzeczy w F #, ale nie mam wielkiego pojęcia, jak właściwie zdefiniowano Data.Sequence. Wygląda na to, że operacje są bliskie temu, co chcę. – Jwosty
@Jwosty Jeśli chcesz przyjrzeć się implementacji, możesz kliknąć przycisk "source" na stronie i przeniesie Cię do niego: http://hackage.haskell.org/package/containers-0.5.7.1/ docs/src/Data.Sequence.html – jkeuhlen