Я хотел бы представлять структуру данных очереди как функционально, но я нигде не получил. Я посмотрел на Молнии, но они, похоже, не являются правильной структурой.Функциональная очередь типа
В частности, я пытаюсь представить ряд линий задержки (для звуковых эффектов, таких как эхо или реверберация), так что функциональные возможности, необходимые следующим образом:
- добавить данные в передней
- Вытащите последний элемент (можно просто выбросить)
Для моего особого использования эти две операции будут использоваться совместно, чтобы поддерживать постоянную величину очереди, но это ограничение не является основополагающим. Я мог бы просто использовать список, но я думаю, что здесь должно быть что-то более чистое. Каков наилучший способ представить этот тип?
Я использую F #, но любой язык приветствуется.
Возможно отношение: [ 'Data.Sequence'] (http://hackage.haskell.org/package /containers-0.5.7.1/docs/Data-Sequence.html) – chi
@chi Как это работает? Я предполагаю, что я плохо сформулировал эту последнюю часть, в которой я хотел бы использовать эту вещь в F #, но у меня нет большой идеи о том, как фактически определяется Data.Sequence. Похоже, что операции довольно близки к тому, что я хочу. – Jwosty
@Jwosty Если вы хотите посмотреть на реализацию, вы можете щелкнуть по кнопке «source» на стороне, и она приведет вас к ней: http://hackage.haskell.org/package/containers-0.5.7.1/ docs/src/Data.Sequence.html – jkeuhlen