Вопросы с тегом «functional-programming»

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

18
Что бы вы сделали, если бы ваш клиент потребовал от вас не использовать объектно-ориентированное программирование?
Я пишу программу для имитации активности муравьев в сетке (PDF). Муравей может передвигаться, собирать вещи и бросать их. Проблема в том, что действие муравьев и положение каждого муравья можно легко отслеживать с помощью атрибутов класса (и мы можем легко создать множество экземпляров таких муравьев), мой клиент сказал, что, поскольку у …

5
Асинхронное программирование на функциональных языках
Я в основном программист на C / C ++, а это значит, что большая часть моего опыта связана с процедурными и объектно-ориентированными парадигмами. Однако, как известно многим программистам на C ++, C ++ с годами сместил акцент на стиль функционального esque, завершившийся, наконец, добавлением лямбд и закрытий в C ++ …

5
Почему дискриминационные союзы связаны с функциональным программированием?
За многие годы ОО-программирования я понял, что такое дискриминационные союзы, но я никогда не пропускал их. Недавно я занимался некоторым функциональным программированием на C #, и теперь я продолжаю желать, чтобы они у меня были. Это сбивает с толку меня, потому что, на первый взгляд, концепция дискриминируемых союзов кажется совершенно …

4
Почему мне не нужен ORM на таком функциональном языке, как Scala?
Этот вопрос был перенесен из переполнения стека, потому что на него можно ответить в Software Engineering Stack Exchange. Мигрировал 4 года назад . Мне интересно, могу ли я переключиться с Java на Scala в проекте Spring + Hibernate, чтобы воспользоваться некоторыми функциями Scala, такими как сопоставление с образцом, Option и, …

10
Учитывая табун лошадей, как мне определить среднюю длину рога всех единорогов?
Приведенный выше вопрос является абстрактным примером распространенной проблемы, с которой я сталкиваюсь в унаследованном коде, или, точнее, проблем, возникших в результате предыдущих попыток решить эту проблему. Я могу вспомнить хотя бы один метод .NET Framework, предназначенный для решения этой проблемы, например Enumerable.OfType<T>метод. Но тот факт, что вы в конечном итоге …

8
Почему полезна концепция ленивых вычислений?
Этот вопрос был перенесен из переполнения стека, потому что на него можно ответить в Software Engineering Stack Exchange. Мигрировал 7 лет назад . Кажется, что ленивая оценка выражений может привести к тому, что программист потеряет контроль над порядком выполнения кода. У меня возникают проблемы с пониманием, почему это было бы …

10
Как сторонники функционального программирования ответят на это утверждение в Code Complete?
На странице 839 второго издания Стив Макконнелл обсуждает все способы, с помощью которых программисты могут «преодолевать сложности» в больших программах. Его советы завершаются этим утверждением: «Объектно-ориентированное программирование обеспечивает уровень абстракции, который применяется одновременно к алгоритмам и данным , своего рода абстракцию, которую не обеспечивала только функциональная декомпозиция». В сочетании с …

3
Haskell против Erlang для веб-сервисов
Я рассчитываю начать экспериментальный проект с использованием функционального языка и пытаюсь выбрать между Эрлангом и Хаскеллом, и у обоих есть некоторые моменты, которые мне действительно нравятся. Мне нравится сильная система типов и чистота Хаскелла. У меня есть ощущение, что это облегчит написание действительно надежного кода. И я думаю, что сила …

5
Является ли программирование в философии UNIX таким же, как функциональное программирование?
Этот вопрос был перенесен из переполнения стека, потому что на него можно ответить в Software Engineering Stack Exchange. Мигрировал 8 лет назад . Среда программирования UNIX (классический текст) утверждает, что подход UNIX к программированию заключается в создании небольших, четко определенных инструментов, которые можно комбинировать для решения более сложных задач. Изучая …

3
Разные способы увидеть монаду
Во время изучения Haskell я столкнулся с множеством учебных пособий, в которых пытался объяснить, что такое монады и почему они важны в Haskell. Каждый из них использовал аналогии, чтобы было легче понять смысл. В конце концов, я получил 3 разных взгляда на то, что такое монада: Вид 1: Монада как …

4
Является ли возвратный тип (только) -полиморфизм в Haskell хорошей вещью?
Этот вопрос был перенесен из переполнения стека, потому что на него можно ответить в Software Engineering Stack Exchange. Мигрировал 8 лет назад . Одна вещь, с которой я никогда не соглашался в Haskell, это то, как вы можете иметь полиморфные константы и функции, тип возврата которых не может быть определен …

3
Почему ключевое слово rec необходимо в F #?
В F # необходимо использовать recключевое слово. В Haskell нет необходимости явно указывать, является ли данная функция рекурсивной или нет. Учитывая роль рекурсии в функциональном программировании, дизайн F # кажется мне довольно странным. Это хорошее решение для разработки языка или оно существует только по историческим причинам или из-за ограничений реализации?

6
Делает ли изучение функционального языка лучшим программистом ООП? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 5 лет назад . Как программист на Java / C # / C ++ я много слышал о …

5
Делает ли перехват / выброс исключений нечистым в противном случае чистым методом?
Следующие примеры кода предоставляют контекст для моего вопроса. Класс комнаты инициализируется с делегатом. В первой реализации класса Room нет защиты от делегатов, которые генерируют исключения. Такие исключения будут пузыриться до свойства North, где оценивается делегат (примечание: метод Main () демонстрирует, как экземпляр Room используется в клиентском коде): public sealed class …

7
Игнорирует ли функциональное программирование преимущества, полученные от «Критериев, которые будут использоваться при декомпозиции систем на модули» (скрытие данных)?
Есть классическая статья под названием «Критерии для использования при декомпозиции систем на модули», которую я только что прочитал впервые. Это имеет смысл для меня и, вероятно, является одной из тех статей, на которых основывается ООП. Его вывод: Мы попытались продемонстрировать на этих примерах, что почти всегда неправильно начинать декомпозицию системы …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.