Я бы не ожидал, что F # станет заменой Matlab / R, потому что, в отличие от них, F # - это язык программирования общего назначения. Не все, что вам нужно для определенного типа работы, будет в стандартных библиотеках. Но это не значит, что описанная вами «интерактивная разработка» невозможна, для этого может потребоваться некоторое предварительное усилие для построения библиотечных функций, от которых вы зависите.
Для # 1, как упоминалось ранее, добавление аннотаций типов, к сожалению, необходимо в некоторых случаях, но также ключевое слово inline
и "hat-types" могут дать вам утку .
Что касается # 2, мне непонятно, что делают ваши функции open
и process
по сравнению с тем, что вы от них хотите. Например, функция open
может:
- Чтение всего файла за раз, возврат данных в виде массива / списка / и т. Д., А затем закрытие файла
- Вернуть
FileStream
объект, который вы вызываете process
, но не забудьте закрыть.
- Возвращает выражение последовательности, чтобы вы могли лениво перебирать содержимое файла
- Заметка результат одного из вышеперечисленных, так что последующие вызовы просто возвращают кешированный результат
- Один из множества других способов создания абстракции для доступа к файлам.
Некоторые из них лучше подходят для вашей задачи, чем другие. По сравнению с Matlab & R, язык общего назначения, такой как F #, дает вам больше способов выстрелить себе в ногу. Но это потому, что это дает вам больше способов сделать все.