Вы можете взглянуть на эту презентацию на Java Forum в Штутгарте Германия в 2016 году.
Только несколько слайдов используют немецкий язык, 99% содержимого «Исходный код Java на английском языке»; например
someCollection.sort(
OurCustomComparator
.comparing(Person::getName)
.thenComparing(Person::getId)
);
, где OurCustomComparator
использует методы по умолчанию (и другие интересные идеи). Как показано, приводя к очень сжатому коду, чтобы выбрать некоторый метод getter для сортировки; и супер простое соединение (или реверсирование) критериев сортировки.
Если вы находитесь в java8, вы найдете много материала, чтобы вы начали.
Я использую F# для получения (TCP), парсинга и хранить сообщения протокола двоичной синхронной передачи данных от промышленных устройств. В настоящее время я тестирую асинхронные рабочие процессы.
Следующий проект является визуализацией и анализом полученных данных.
Места, где существует много математических вычислений.
Глубокий Жареный подкаст Байтов № 24 покрыл это:
И конечно, для многих систем F# может сформировать ядро обработки, но мне кажется, что это будет, как правило, перенесено (интерфейс, пользователь или иначе) с C#/VB для обеспечения стандартного интерфейса.
Я использую F# для разработки механизма для основанной на повороте стратегической игры, которую я играю с разработкой. Я нашел, что соединение F# функциональных и программирования OO позволило мне управлять данными в игре кратко способами, которые были бы слишком сложными в обязательном C#, чтобы хотеть сделать. Также довольно естественно разделить изменяющие состояние действия от сгибов и таким образом, которые определяют, как состояние должно измениться, который определенно помогает сохранить код более простым и организованным.
самое большое прерывание, в которое я могу падать в проекте, использует аннотации типа кортежей для нескольких типов данных, которые используются вполне интенсивно в одном из классов. Используя кортежи делает для довольно краткого кода, но я не уверен, что использование аннотации типа в подписи функций, которые используют их, достаточно для поддержания читаемого кода в некоторых случаях.
Я использую цитаты, linq компиляция выражения, dsls, асинхронные рабочие процессы и типичные конструкции fp для клиента в данный момент. Много interop с C#.
1) Моделирования (Муравьи и Мицелий)
легко усилить асинхронные рабочие процессы для создания для моделирований с массовым параллелизмом.
2) Модульные тесты на C# API
F# делает, если коротко, сладкие и очень читаемые тесты. Кроме того, FsStory довольно хорош.
3) Анализ данных и Визуализация
Это имеет большие библиотеки визуализации, и это очень быстро для испытания разных вещей. Я также люблю VSLab и надеюсь, что он скоро видит другой выпуск.
4) Быстрая Разработка XNA
, После того как Вам настраивали маленькую платформу для держания объектно-ориентированности в страхе XNA, разработка F# намного быстрее и также намного легче экспериментировать с.
Короче говоря, я нахожу, что F# является фантастическим где угодно, скорость разработки или неизменность превосходят правильность API. Если бы был флаг прагмы или компилятора для выключения вывода типа для государственных функций и определений типа, то я, вероятно, продвинул бы для использования его для моих API также.
Я рассматриваю использование F# для обработки HTML, потому что синтаксис сопоставления с образцом списка соответствует проблемной области хорошо (Пролог, вероятно, лучше, но все еще).
Я в настоящее время исследую использование F# в
Маленький (выход) сценарии обработки данных. Думайте анализируя долгие файлы журнала и пытаясь обнаружить "странное" поведение. Активные шаблоны и потоковая обработка делают для хорошего (и быстро) программы. Я раньше писал их в C#, но они были одноразовыми - использующий F#, я на самом деле снова использую предыдущие сценарии и расширить их.
Тестирование с помощью FsCheck (хорошо хорошо, я предполагаю, что это обманывает, поскольку я портировал вещь сам...), но это было удивительно полезно (я был на самом деле удивлен этим сам;)) не только для тестирования программ F#, но и библиотек.NET в целом. Так как FsCheck является тестированием DSL, я предполагаю, что должен присоединиться к побеждающей стороне DSL также.
я желал использовать F# с WPF или XNA целую вечность теперь, но не вернулся к нему.
Вопреки некоторым я нашел, что, как только Вы приобретаете навык неявного синтаксиса конструкции класса F#, программирование OO с помощью F# так же приятно, если не больше, чем использование C# или VB.
Это верно, что, если Вы пишете библиотеку в F#, если Вы не очень осторожны, это заканчивает тем, что было совместимо только в теории. Действительно совместимые библиотеки F# или должны быть очень осторожными, что F# создает, чтобы использовать, или записать обертку C#/VB.
Kurt
F# делает в значительной степени все C#, только легче. Это - расширенные функции, средние, Вы заканчиваете тем, что написали намного меньше кода. Синтаксис OO является более подробным, чем другой синтаксис F#, но это еще лучше, чем использование C#.
Мы используем его для веб-сервисов, ASP.NET сайты MVC, демоны,
, вопрос, где не использовать его. Прямо сейчас это надеется быть главным образом, где поддержке инструмента недостает. Так, например, с ASP.NET, встроенный код страницы ASPX является C#, но контроллеры и все остальное находятся в F#.
Несколько мест, где F# не является столь гладким, как это должно быть, я воображаю, будет разработан в предстоящих выпусках.
Вот некоторые хорошие практические применения F# и Функциональное программирование от Пони Травмы даны как ответ на мой подобный вопрос .
На самом деле, проверьте эту страницу для намного большего количества примеров того, где GPGPU использовался.
Я в настоящее время использую F# для разработки моей следующей инди-видеоигры. До сих пор я нахожу, что мой нормальный подход OO отличается от того, как я разрабатываю в c#.
Некоторые хорошие вещи, которые я заметил, состоят в том, что я использую меньшие функции в среднем, т.е. количество строк на функцию является путем вниз. Также более естественно теперь для меня определить объем статической функции члена парламента, не занимающего официального поста, чтобы быть в другом участнике вместо того, чтобы иметь его быть выставленным всему в объекте. Запись алгоритма коллизии была действительно легка. Немного рано для меня сказать, что запись алгоритмов в F# легче, но я уже склоняюсь тот путь.
Не все было розами, так как я начал использовать F#. Я все еще нахожу недостаток онлайн-документации. Опытный F# имел некоторую справку, но так как это скользит по OO, это оставляет меня, потерял много времен. Это действует на мои нервы, что автор выбрал not to go very deep into OO, когда это в настоящее время - самая популярная форма разработки. Я не надеюсь выводить OO. Я надеюсь интегрироваться функциональный в него.
самым большим преимуществом, которое я видел до сих пор, была моя правильность кодов. Я знаю, что это звучит забавным, но каждый раз я заставил свой код компилировать, это работало как ожидалось. Я надеюсь, что это все еще имеет место, когда я повреждаю десять тысяч строк метки кода.