Новый язык интересен, только если я могу использовать новые библиотеки. Поэтому я хочу знать, какие новые библиотеки я могу использовать в .net с F #. Если F # совместимо с ML/OCaml, то какие библиотеки Ocaml переносятся на F # или могут быть перенесены. Я интересен в области обработки сигналов/распознавания голоса, библиотек логического программирования/SLD в .NET.новый набор инструментов: оригинальные модули F # или портированы из OCaml
ответ
Я не думаю, что существует большое количество библиотек ML/OCaml, перенесенных на F #. Стиль программирования F # стал совсем другим, чем люди используют в ML/OCaml, поэтому библиотека ML/OCaml будет немного чужда программистам F #.
Однако есть проекты, которые кросс-компилируются в F # и OCaml. Сам компилятор F # был таким, и я считаю, что Slayer из MSR является (или был?) Еще одним примером. Однако для двух указанных вами доменов я не знаю ни одной библиотеки F #.
Если вы заинтересованы в составлении OCaml кода в F #, то вот несколько вещей, которые могут помочь вам:
- Чем больше ограничений языка при переносе OCaml кода F # является то, что F # не поддерживает функторы.
- Некоторые стандартные библиотеки OCaml реализованы в
FSharp.PowerPack.Compatibility.dll
сборки (которая может быть найдена в F# PowerPack)
Многие библиотеки для OCAML являются обертками для проектов C; Я не уверен, как эта парадигма вписывается в F # /. NET. Любое понимание? (Я также хотел бы добавить к вашему вопросу о переходе F # из OCAML, F # не включает в себя функторы или полиморфные варианты, которые часто используются в проектах OCAML). – nlucaroni
F # включает в себя некоторые из портов OCaml, такие как Set
и Map
коллекций. Другие бетон структуры данных могут быть легко перенесены, такие как чисто функциональные структуры данных от Chris Okasaki's excellent monograph. Я описал тип кучи, основанный на его левой куче here в OCaml и F #. Я опубликовал более тщательный обзор нескольких чисто функциональных кучек в F # here. Тем не менее, F #, похоже, не в состоянии выразить абстрактные структуры данных (например, catenable lists abstracted over queues) очень хорошо, потому что ему не хватает системы модулей более высокого порядка, которую Окасаки использует так умело. Я также опубликовал некоторые другие переводы, подобные этому Burrows-Wheeler transform в OCaml и F #. В OCaml есть много удивительных библиотек, таких как ocamlgraph, но их часто трудно или невозможно переводить напрямую, потому что F # не хватает функций основного языка, таких как модули более высокого порядка, полиморфные варианты, макросы и т. Д.
Microsoft были первыми усыновителями F #, конечно же, перемещая их TrueSkill ranking system (используемые в Halo 3 и Bing AdCenter) и их стороннее программное обеспечение для проверки драйверов от OCaml до F #.
Coherent PDF Инструменты командной строки для работы с документами PDF являются одной из немногих базой кода, которые скрещиваются в OCaml и F #.
Мы перевели наш двигатель Smoke Vector Graphics и наше (прекращенное) приложение Presenta от OCaml до F #, и теперь оно продается как F# for Visualization. Перевод был, безусловно, упрощен благодаря сходству между языками, но ему все же потребовались дни, и мы не сможем перекрестно компилировать.
Основная часть кода, переведенного с OCaml на F #, является коммерческой, поскольку F # является прежде всего коммерческим языком, и, следовательно, коммерческие пользователи OCaml переносятся на F #. Открытый исходный код F # может начать сниматься после недавней версии самого F # как OSS, но пока рано.
Что касается ваших конкретных тем (например, обработки сигналов), я не уверен, что рекомендовать после привязки к FFTW, которые я описал в Visual F# 2010 for Technical Computing.
Я нашел одну библиотеку, которая поддерживает развитие эволюционных алгоритмов.
F # Искусственный интеллект библиотека - Реализация дифференциальной эволюции: http://fsai.codeplex.com/documentation?version=11
об эволюционных алгоритмах там: http://en.wikipedia.org/wiki/Evolutionary_algorithm
Также есть короткая дискуссия о «приятно иметь» SLD разрешение двигателя на F # (и одна ссылка на пролог портирована на C#) http://cs.hubfs.net/forums/thread/6676.aspx
Это все ...
- 1. OCaml: Установить модули
- 2. Новый набор инструментов gnu для окон
- 3. OCaml - Подписи, модули и типы
- 4. F # изменяется на OCaml
- 5. Модули OCaml/reason design
- 6. Новый набор инструментов createJS для флэш-памяти
- 7. модули OCaml и подписи
- 8. Unbound модули в OCaml
- 9. модули OCAML реализация
- 10. Как установить модули OCaml?
- 11. Сравнение F # и OCaml
- 12. label ~ f в OCaml
- 13. Кто-нибудь пробовал новый набор инструментов MVC HTML5 из Codeplex?
- 14. Модульные модули OCaml с pa_ounit
- 15. Общие модули в F #
- 16. Рекурсивный набор в OCaml
- 17. OCaml Как использовать набор?
- 18. эквивалент set_signal OCaml в F #
- 19. OCaml рекурсивные модули по единицам компиляции
- 20. Могут ли модули F # быть обезглавлены?
- 21. dropdownextender Набор инструментов Ajax
- 22. Организация проектов OCaml: файлы и модули
- 23. OCaml: как использовать модули в Windows
- 24. Возвратите различные модули первого класса в OCaml
- 25. Использование переменной в шаблоне соответствия в OCaml или F #
- 26. Распечатайте диаграмму (набор инструментов)
- 27. Набор инструментов WPF и расширенный набор инструментов WPF
- 28. Как использовать набор инструментов миграции magento
- 29. Набор инструментов для отладки программиста
- 30. Преобразование OCaml в F #: преобразование расширения и расширения цитаты OCaml в F #
«Вызов Jon Harrop ...» :) – Benjol