Для каких областей кода Вы используете f#? [закрытый]

Вы можете взглянуть на эту презентацию на Java Forum в Штутгарте Германия в 2016 году.

Только несколько слайдов используют немецкий язык, 99% содержимого «Исходный код Java на английском языке»; например

someCollection.sort(
  OurCustomComparator
    .comparing(Person::getName)
    .thenComparing(Person::getId)
);

, где OurCustomComparator использует методы по умолчанию (и другие интересные идеи). Как показано, приводя к очень сжатому коду, чтобы выбрать некоторый метод getter для сортировки; и супер простое соединение (или реверсирование) критериев сортировки.

Если вы находитесь в java8, вы найдете много материала, чтобы вы начали.

14
задан Drew Noakes 20 February 2009 в 09:40
поделиться

14 ответов

Я использую F# для получения (TCP), парсинга и хранить сообщения протокола двоичной синхронной передачи данных от промышленных устройств. В настоящее время я тестирую асинхронные рабочие процессы.

Следующий проект является визуализацией и анализом полученных данных.

0
ответ дан 1 December 2019 в 08:20
поделиться

Места, где существует много математических вычислений.

0
ответ дан 1 December 2019 в 08:20
поделиться

Глубокий Жареный подкаст Байтов № 24 покрыл это:

  • Алгоритмическая обработка (включая вычисления)
  • создание DSL
  • Параллельная обработка (неизменные данные, организация очередей сообщений, асинхронные рабочие процессы)

И конечно, для многих систем F# может сформировать ядро обработки, но мне кажется, что это будет, как правило, перенесено (интерфейс, пользователь или иначе) с C#/VB для обеспечения стандартного интерфейса.

5
ответ дан 1 December 2019 в 08:20
поделиться

Я использую F# для разработки механизма для основанной на повороте стратегической игры, которую я играю с разработкой. Я нашел, что соединение F# функциональных и программирования OO позволило мне управлять данными в игре кратко способами, которые были бы слишком сложными в обязательном C#, чтобы хотеть сделать. Также довольно естественно разделить изменяющие состояние действия от сгибов и таким образом, которые определяют, как состояние должно измениться, который определенно помогает сохранить код более простым и организованным.

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

1
ответ дан 1 December 2019 в 08:20
поделиться

Я использую цитаты, linq компиляция выражения, dsls, асинхронные рабочие процессы и типичные конструкции fp для клиента в данный момент. Много interop с C#.

1
ответ дан 1 December 2019 в 08:20
поделиться

1) Моделирования (Муравьи и Мицелий)

легко усилить асинхронные рабочие процессы для создания для моделирований с массовым параллелизмом.

2) Модульные тесты на C# API

F# делает, если коротко, сладкие и очень читаемые тесты. Кроме того, FsStory довольно хорош.

3) Анализ данных и Визуализация

Это имеет большие библиотеки визуализации, и это очень быстро для испытания разных вещей. Я также люблю VSLab и надеюсь, что он скоро видит другой выпуск.

4) Быстрая Разработка XNA

, После того как Вам настраивали маленькую платформу для держания объектно-ориентированности в страхе XNA, разработка F# намного быстрее и также намного легче экспериментировать с.

Короче говоря, я нахожу, что F# является фантастическим где угодно, скорость разработки или неизменность превосходят правильность API. Если бы был флаг прагмы или компилятора для выключения вывода типа для государственных функций и определений типа, то я, вероятно, продвинул бы для использования его для моих API также.

1
ответ дан 1 December 2019 в 08:20
поделиться

Я рассматриваю использование F# для обработки HTML, потому что синтаксис сопоставления с образцом списка соответствует проблемной области хорошо (Пролог, вероятно, лучше, но все еще).

1
ответ дан 1 December 2019 в 08:20
поделиться

Я в настоящее время исследую использование F# в

  • выполнение Параллели SOA
  • Информационно емкий
  • Длительные процессы
3
ответ дан 1 December 2019 в 08:20
поделиться
  1. Научные работы (Математические и статистические вычисления, визуализация, оптимизация..)
  2. Параллельное программирование (F# поддерживает асинхронные рабочие процессы, параллелизм стиля Erlang, Параллельный FX...)
  3. программирование Зависящее от языка (например, DSLs)
  4. Информационно емкий анализ
  5. ...
3
ответ дан 1 December 2019 в 08:20
поделиться

Маленький (выход) сценарии обработки данных. Думайте анализируя долгие файлы журнала и пытаясь обнаружить "странное" поведение. Активные шаблоны и потоковая обработка делают для хорошего (и быстро) программы. Я раньше писал их в C#, но они были одноразовыми - использующий F#, я на самом деле снова использую предыдущие сценарии и расширить их.

Тестирование с помощью FsCheck (хорошо хорошо, я предполагаю, что это обманывает, поскольку я портировал вещь сам...), но это было удивительно полезно (я был на самом деле удивлен этим сам;)) не только для тестирования программ F#, но и библиотек.NET в целом. Так как FsCheck является тестированием DSL, я предполагаю, что должен присоединиться к побеждающей стороне DSL также.

я желал использовать F# с WPF или XNA целую вечность теперь, но не вернулся к нему.

Вопреки некоторым я нашел, что, как только Вы приобретаете навык неявного синтаксиса конструкции класса F#, программирование OO с помощью F# так же приятно, если не больше, чем использование C# или VB.

Это верно, что, если Вы пишете библиотеку в F#, если Вы не очень осторожны, это заканчивает тем, что было совместимо только в теории. Действительно совместимые библиотеки F# или должны быть очень осторожными, что F# создает, чтобы использовать, или записать обертку C#/VB.

Kurt

3
ответ дан 1 December 2019 в 08:20
поделиться

F# делает в значительной степени все C#, только легче. Это - расширенные функции, средние, Вы заканчиваете тем, что написали намного меньше кода. Синтаксис OO является более подробным, чем другой синтаксис F#, но это еще лучше, чем использование C#.

Мы используем его для веб-сервисов, ASP.NET сайты MVC, демоны,

, вопрос, где не использовать его. Прямо сейчас это надеется быть главным образом, где поддержке инструмента недостает. Так, например, с ASP.NET, встроенный код страницы ASPX является C#, но контроллеры и все остальное находятся в F#.

Несколько мест, где F# не является столь гладким, как это должно быть, я воображаю, будет разработан в предстоящих выпусках.

2
ответ дан 1 December 2019 в 08:20
поделиться

Парсинг с FParsec (порт в духе Haskell Парсек )

5
ответ дан 1 December 2019 в 08:20
поделиться

Вот некоторые хорошие практические применения F# и Функциональное программирование от Пони Травмы даны как ответ на мой подобный вопрос .

  • Вычислительная гидроаэродинамика
  • Физика, обрабатывающая
  • Трассировка лучей
  • Анализ данных
  • Медицинская обработка изображений
  • программное обеспечение разработки Управления
  • Обработка цифровых сигналов
  • Биоинформатика

На самом деле, проверьте эту страницу для намного большего количества примеров того, где GPGPU использовался.

2
ответ дан 1 December 2019 в 08:20
поделиться

Я в настоящее время использую F# для разработки моей следующей инди-видеоигры. До сих пор я нахожу, что мой нормальный подход OO отличается от того, как я разрабатываю в c#.

Некоторые хорошие вещи, которые я заметил, состоят в том, что я использую меньшие функции в среднем, т.е. количество строк на функцию является путем вниз. Также более естественно теперь для меня определить объем статической функции члена парламента, не занимающего официального поста, чтобы быть в другом участнике вместо того, чтобы иметь его быть выставленным всему в объекте. Запись алгоритма коллизии была действительно легка. Немного рано для меня сказать, что запись алгоритмов в F# легче, но я уже склоняюсь тот путь.

Не все было розами, так как я начал использовать F#. Я все еще нахожу недостаток онлайн-документации. Опытный F# имел некоторую справку, но так как это скользит по OO, это оставляет меня, потерял много времен. Это действует на мои нервы, что автор выбрал not to go very deep into OO, когда это в настоящее время - самая популярная форма разработки. Я не надеюсь выводить OO. Я надеюсь интегрироваться функциональный в него.

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

5
ответ дан 1 December 2019 в 08:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: