Рекомендуется ли реализация временных рядов с использованием функционального программирования (F #)?

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

Поскольку основная часть проекта была реализована на C #, я набросал объектно-ориентированный дизайн, унаследованный от SortedDictionary .

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

Я думал о том, чтобы спроектировать его на F #, используя определение типа следующим образом:

type TimeSeries<'t> = (DateTime * 't) seq

и продолжайте с ним.

Его преимущество заключается в том, что он неизменяем, а параллельное выполнение будет довольно простым с использованием модуля F # Async . Я также мог бы использовать функцию единиц измерения F #.

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

Было ли это легко использовать в конце концов или было слишком сложно переключиться с C # на F #?

Разве неизменность коллекции не является проблемой эффективности при увеличении временного ряда?

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

Если я хочу использовать алгоритм на основе C # о временных рядах для некоторых функций, сделает ли это всю эту идею бесполезной?

У вас есть ссылки на исследования, проведенные по эффективности функциональной реализации временных рядов?

5
задан casperOne 6 November 2011 в 18:27
поделиться