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

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

1
Какие интуиции поддерживают вызов конструктора Maybe в Haskell «Just»?
Интуиция необязательного типа, подобного этому, Maybe Intзаключается в том, что либо нет Int (то есть он Nothingесть), либо существует некоторое Int; там что-то есть Для меня имеет смысл, что мы вызываем конструктор типов для «отрицательного» случая Nothing, поскольку это означает именно то, что там его нет Int. Но зачем использовать …

2
Можем ли мы действительно использовать неизменяемость в ООП, не теряя все ключевые функции ООП?
Я вижу преимущества создания неизменных объектов в моей программе. Когда я действительно глубоко задумываюсь над хорошим дизайном для своего приложения, я часто, естественно, считаю, что многие из моих объектов неизменяемы. Часто приходит момент, когда я хочу, чтобы все мои объекты были неизменными. Этот вопрос касается той же идеи, но ни …

6
Как бы это было запрограммировано в не-OO? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 2 года назад . Читая ужасную статью о минусах ООП в пользу какой- то другой парадигмы, я …

5
В функциональном программировании, как можно достичь модульности через математические законы?
Я прочитал в этом вопросе, что функциональные программисты склонны использовать математические доказательства, чтобы гарантировать, что их программа работает правильно. Это звучит намного проще и быстрее, чем модульное тестирование, но, исходя из опыта OOP / Unit Testing, я никогда не видел, чтобы это было сделано. Можете ли вы объяснить это мне …

2
Эффективность памяти Haskell - какой подход лучше?
Мы реализуем библиотеку сжатия матрицы на основе модифицированного синтаксиса двумерной грамматики. Теперь у нас есть два подхода к нашим типам данных - какой из них будет лучше в случае использования памяти? (мы хотим что-то сжать;)). Грамматики содержат нетерминалы с ровно 4 продукцией или терминалом с правой стороны. Нам понадобятся имена …

3
Почему мы не можем написать вложенные сокращенные функции в Clojure?
Сегодня я попытался оценить выражение Clojure с помощью вложенных сокращенных функций, и оно мне не дало. Выражение было: (#(+ % (#(+ % (* % %)) %)) 5) ; sorry for the eye bleed Выход был: IllegalStateException Nested #()s are not allowed clojure.lang.LispReader$FnReader.invoke (LispReader.java:630) ...and a bunch of other garbage

5
Вычислить, если функция является чистой
Согласно Википедии: В компьютерном программировании функция может быть описана как чистая, если оба эти утверждения о функции выполняются: функция всегда оценивает одно и то же значение результата, учитывая одно и то же значение (я) аргумента. Значение результата функции не может зависеть от какой-либо скрытой информации или состояния, которые могут изменяться …

1
Почему Scala требует, чтобы функции имели явный тип возвращаемого значения?
Недавно я начал учиться программировать в Scala, и до сих пор было весело. Мне действительно нравится возможность объявлять функции в другой функции, что кажется интуитивно понятным. У меня есть одна любимая мозоль о Scala - тот факт, что Scala требует явного возвращаемого типа в своих функциях . И я чувствую, …

3
Лучше предварительно инициализировать атрибуты в классе или добавлять их по пути?
Извините, если это АБСОЛЮТНО софомальный вопрос, но мне любопытно, какие есть лучшие практики, и я не могу найти хорошего ответа в Google. В Python я обычно использую пустой класс в качестве контейнера структуры данных super-catchall (вроде как файл JSON) и добавляю атрибуты по пути: class DataObj: "Catch-all data object" def …

3
Рекомендации по функциональному программированию Scala или Clojure
Я много занимался кодированием для самостоятельной работы, получил опыт работы с моделями параллельного программирования: актерами, программной транзакционной памятью, потоком данных. Когда я пытаюсь применить эти архитектуры в реальной жизни - в веб-приложении с высокой нагрузкой - ни одна модель не поддерживает долговечность и постоянство данных. Реальные задачи требуют сохранения данных …

5
Преобразовать список значений суточных осадков за сутки
Допустим, у меня есть список значений осадков по часам, каждый из которых показывает, сколько осадков выпало за предыдущие 24 часа, упорядоченные по дате. Например: { '2012-05-24 12:00': 0.5, // .5" of rain from 5/23 12:00 - 5/24 11:59 '2012-05-24 11:00': 0.6, // .6" of rain from 5/23 11:00 - 5/24 …

4
Дизайн на «смешанных» языках: объектно-ориентированный дизайн или функциональное программирование?
В последние несколько лет языки, которые я люблю использовать, становятся все более и более «функциональными». Сейчас я использую языки, которые являются своего рода «гибридом»: C #, F #, Scala. Мне нравится разрабатывать свое приложение, используя классы, которые соответствуют объектам домена, и использовать функциональные возможности, где это делает кодирование проще, более …

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

5
Структуры данных в функциональном программировании
В настоящее время я играю с LISP (особенно Scheme и Clojure), и мне интересно, как обрабатываются типичные структуры данных в функциональных языках программирования. Например, скажем, я хотел бы решить проблему, используя алгоритм поиска пути к графу. Как обычно можно представить этот граф на функциональном языке программирования (в первую очередь интересующемся …

3
Подход к функциональному программированию для упрощенной игры с использованием Scala и LWJGL
Я, императивный программист на Java, хотел бы понять, как создать простую версию Space Invaders, основанную на принципах проектирования функционального программирования (в частности, ссылочной прозрачности). Однако каждый раз, когда я пытаюсь придумать дизайн, я теряюсь в муре чрезвычайной изменчивости, той же изменчивости, которой избегают пуристы функционального программирования. В качестве попытки освоить …

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