F # - Организация алгоритмов в файле - PullRequest
0 голосов
/ 07 октября 2011

Я не нахожу хороший способ организовать различные алгоритмы. Сегодня файл выглядит так:

1 / Извлечение значений из Excel

2 / Первый алгоритм на основе этих значений (извлечен из Excel), начиная с "let matriceAlgo1 ="

3 / Второй алгоритм, начинающийся с тех же значений "let matriceAlgo2 ="

4 / Алгоритм синтеза, делающий взвешенное среднее (в зависимости от нескольких значений) из 2 / и 3 ​​/ и выбирающий результат, который будет показан. "let matriceSynthesis ="

Мой вопрос следующий: что я должен поставить перед различными частями этого файла, чтобы просто назвать их по имени? Я видел ответы, объясняющие, что Модуль может быть ответом, но я не знаю, как применить его в моем случае (или что-то еще, если это не очень хороший ответ). В конце я хотел бы написать что-то вроде это:

"Запуск извлечения

Запустить Первый Алгоритм

Запустить второй алгоритм

Launch Synthesis "

1 Ответ

1 голос
/ 07 октября 2011

Обычно я организовываю файлы, чтобы иметь какой-то четкий визуальный разделитель между различными разделами файла (см., Например, Crawler.fsx на GitHub ), а затем в конце есть один «основной» раздел, который вызывает функции, объявленные ранее.

Я на самом деле не использую модули, если у меня нет большого количества функций с конфликтующими именами. Было бы неплохо использовать модули, если ваш алгоритм состоит из большего количества функций (например, Alg1.initialize, Alg1.run и т. Д.). Тогда вы можете легко переключаться между различными алгоритмами, используя псевдоним модуля:

module Alg = Alg1 // or Alg2

let a = Alg.initialize
Alg.run a

Если файл становится длиннее, вы также можете переместить разделы в отдельные файлы и использовать #load "File.fs" для загрузки алгоритмов или функций из файла. В этом случае вам, вероятно, нужно использовать модули, но вы всегда можете open модуль после загрузки файла.

...