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

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

5
Почему чтение из памяти не побочный эффект, а чтение из файла?
Что именно делает чтение из памяти процесса чистой операцией? Предположим, я создал массив из 100 целых чисел в глобальной памяти, а затем взял 42-й элемент этого массива. Это не побочный эффект, верно? Так почему же чтение того же массива из 100 целых чисел из файла является побочным эффектом?

2
Применение принципов чистого кода к функциональным языкам
В настоящее время я читаю Чистый код Роберта Мартина . Я думаю, что это здорово, и когда я пишу ОО-код, я принимаю его уроки близко к сердцу. В частности, я думаю, что его совет использовать маленькие функции со значимыми именами делает мой код более плавным. Лучше всего подытожить этой цитатой: …

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

1
Недостатки функциональной промежуточной формы
Я пишу оптимизатор для языка, похожего на JavaScript, и мне нужно выбрать промежуточное представление кода. Очевидный / типичный выбор в эти дни - статическое одиночное назначение (SSA). Однако в современной реализации компилятора на C также обсуждается функциональная промежуточная форма, что в основном означает использование чисто функционального для промежуточного представления (чисто …

2
Каковы виды использования алгебраических типов данных?
Я читаю об алгебраических типах данных (благодаря Ричарду Минериху я нашел это отличное объяснение концепции). Хотя я думаю, что понимаю понятие типов сумм, типов продуктов и т. Д., Я не совсем понимаю, как алгебраические типы данных полезны помимо определения соответствия шаблонам. Что еще можно сделать с помощью ADT помимо сопоставления …

5
Функциональные языки, которые компилируются в Android Dalvik VM? [закрыто]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 4 года назад . У меня проблема с программным обеспечением, которая соответствует функциональному подходу к программированию, …

4
Почему хорошо не полагаться на изменение состояния?
Этот вопрос возникает из вопроса /software/25569/is-haskell-worth-learning Обычно делается несколько часто повторяемых заявлений о том, как Haskell улучшает ваши навыки кодирования на других языках, и, кроме того, это потому, что Haskell не имеет состояния, и это хорошо. Почему? Я видел, как кто-то сравнивал это с тем, чтобы печатать только левой рукой, …

5
В чем преимущество отсутствия «исключений во время выполнения», как утверждает Элм?
Некоторые языки утверждают, что у них нет «исключений времени выполнения», как явное преимущество перед другими языками, которые их имеют. Я запутался в этом вопросе. Насколько я знаю, исключение времени выполнения - это всего лишь инструмент: вы можете сообщать о «грязных» состояниях (выбрасывая неожиданные данные) добавив стек, вы можете указать на …

4
API и функциональное программирование
Из моего (по общему признанию ограниченного) знакомства с функциональными языками программирования, такими как Clojure, кажется, что инкапсуляция данных играет менее важную роль. Обычно различные нативные типы, такие как карты или наборы, являются предпочтительной валютой представления данных поверх объектов. Кроме того, эти данные обычно неизменны. Например, вот одна из самых известных …

9
Какие были бы хорошие фактические аргументы, чтобы убедить руководство высокого уровня рассмотреть функциональное программирование? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 5 лет назад . Существует множество «теоретических» аргументов в пользу того, почему функциональное программирование является хорошей идеей …

3
Соглашение об именах для функций высшего порядка? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 4 года назад . Существует ли соглашение об именах для функций более высокого порядка? То есть функции, …

2
Что является примером продолжения, не реализованного как процедура?
Интересная дискуссия о различии между обратными вызовами и продолжениями SO подтолкнула этот вопрос. По определению, продолжение является абстрактным представлением логики, необходимой для завершения вычисления. В большинстве языков это проявляется как процедура с одним аргументом, которой вы передаете любое значение, требующее дальнейшей обработки. На чисто функциональном языке (где все функции являются …

5
Как называется λx.λf.fx (как в обратном порядке) в лямбда-исчислении? У соответствующей функции есть стандартное имя в программировании?
Как называется λx.λf.fx в лямбда-исчислении? Имеет ли соответствующая функция стандартное имя в функциональных языках программирования, таких как Haskell? В объектно-ориентированном программировании есть ли обычное имя для метода, fooкоторый принимает функцию в качестве аргумента, такую, которая x.foo(f)возвращает f(x)?

5
Какая функционально-программная альтернатива интерфейсу?
Если я хочу программировать в «функциональном» стиле, чем бы заменить интерфейс? interface IFace { string Name { get; set; } int Id { get; } } class Foo : IFace { ... } Может быть Tuple<>? Tuple<Func<string> /*get_Name*/, Action<String> /*set_Name*/, Func<int> /*get_Id*/> Foo; Единственная причина, по которой я в первую …

4
Groovy называет частичное приложение «карри»?
В Groovy есть концепция, которая называется «карри». Вот пример из их вики: def divide = { a, b -> a / b } def halver = divide.rcurry(2) assert halver(8) == 4 Мое понимание того, что здесь происходит, заключается в том, что правый аргумент divideсвязывается со значением 2. Это похоже на …

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