Получение постоянного времени для получения времени с неизменным списками в функциональном контексте программирования

В настоящее время я сталкиваюсь с проблемой необходимости делать мои расчеты на основе длины данного списка. Необходимость итерации всех элементов списка, чтобы узнать, что его размер - это большой штраф производительности, так как я использую довольно большие списки.

Каковы предполагаемые подходы к проблеме?

Я думаю, что я всегда могу нести размерное значение вместе со списком, поэтому я заранее знаю, что его размер без необходимости вычислять его на площадке вызова, но это кажется хрупким подходом. Я также мог бы определить собственный тип списка, где каждый узел имеет в качестве свойства его размер списков, но тогда я потерял рычаги, предоставляемые моими библиотеками языка программирования для стандартных списков.

Как вы, ребята, справитесь с этим на вашей ежедневной рутине?

Я в настоящее время использую F #. Я знаю, что я могу использовать сметные (массивные) .NET .NET (массив), которые решит бы проблему. Однако я более интересуюсь, в чисто неизменном функциональном подходе.

5
задан devoured elysium 3 September 2011 в 17:13
поделиться