Простой ответ: «да», F # имеет полный доступ ко всем библиотекам .NET и может как потреблять, так и производить код, написанный на любом другом языке .NET или для него, а также напрямую взаимодействовать с COM и собственными DLL.
Тем не менее, поддержка инструментов для F # не настолько развита, как для C #.Хотя вам может показаться, что немного легче изучать .NET с использованием C #, вы не будете изначально ограничены, если начнете с F #.
Наиболее важно то, что GUI-компоновщик в настоящее время не может создавать F # -код, нельзя создаватьтипизированный ASP.NET код позади страниц (но может создавать слабо типизированные), и нет прямой поддержки для создания тестов в F # (но существуют плагины, которые делают).
Однако, можно легко написать код GUI вручнуюв F #, и это часто легче сделать и немного более кратким, чем эквивалентный C #.Например, свойства могут быть установлены на конструкторе;например, пусть f = new Form (Text = "Window Title") и лямбда-функции автоматически преобразуются в делегаты;например, event.Add (fun e -> doSomething ()).
Также возможно, например, создать DSL для описания пользовательского интерфейса.Для получения дополнительной информации см. F #: нет ли для него пользовательского интерфейса (например, WPF)?
Рекомендуемый стиль, как отмечает TechNeilogy, состоит в том, чтобы записать логику в F # какбиблиотеки, и вызвать это из графического интерфейса, созданного в C #.