F # включает в себя некоторые порты из OCaml, такие как коллекции Set
и Map
. Другие конкретные структуры данных могут быть легко перенесены, например, чисто функциональные структуры данных из превосходной монографии Криса Окасаки . Я описал сортировку кучи на основе его левой кучи здесь в OCaml и F #. Я опубликовал более подробный обзор нескольких чисто функциональных куч в F # здесь . Однако F #, по-видимому, не способен хорошо выражать абстрактные структуры данных (например, каталитические списки, абстрагированные по очередям), поскольку ему не хватает модульной системы высшего порядка, которую Окасаки использует так искусно. Я также опубликовал некоторые другие переводы, такие как преобразование Берроуза-Уилера в OCaml и F #.
В OCaml есть много замечательных библиотек, таких как ocamlgraph , но их часто сложно или невозможно перевести напрямую, потому что в F # отсутствуют основные функции языка, такие как модули высшего порядка, полиморфные варианты, макросы и т.
Microsoft была первым последователем F #, конечно, переместив свою систему ранжирования TrueSkill (используется в Halo 3 и Bing AdCenter) и стороннее программное обеспечение для проверки драйверов с OCaml на F #.
Инструменты командной строки Coherent PDF для работы с документами PDF - одна из немногих баз кода, кросс-компилируемых как в OCaml, так и в F #.
Мы перевели наш Smoke Vector Graphics движок и наше (прекращенное) приложение Presenta с OCaml на F #, и теперь оно продается как F # для визуализации . Сходство между языками, безусловно, было облегчено благодаря переводу, но на это потребовались дни, и мы не сможем сделать кросс-компиляцию.
Большая часть кода, переводимого из OCaml в F #, является коммерческой, потому что F # - это прежде всего коммерческий язык, и, следовательно, коммерческие пользователи OCaml переходят на F #. Открытый исходный код F # может начать набирать обороты после недавнего выпуска самого F # как OSS, но это еще рано.
Что касается ваших конкретных тем (например, обработка сигналов), я не уверен, что рекомендовать помимо привязки к FFTW, который я описал в Visual F # 2010 для технических вычислений .