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

96
Каковы преимущества функционального программирования? [закрыто]

В настоящее время этот вопрос не подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, потребует дебатов, аргументов, опросов или расширенного обсуждения. Если вы считаете, что этот вопрос можно...

96
Пример приложения Clojure среднего размера?

Есть ли пример приложения Clojure среднего размера, которое можно было бы использовать в качестве примера «передового опыта» и хорошего способа увидеть, как такое приложение будет выглядеть с точки зрения кода и организации кода? Для меня было бы особенно интересно веб-приложение, но самое...

96
Что такое параморфизмы?

Читая эту классическую статью , я зацикливаюсь на параморфизмах. К сожалению, раздел довольно тонкий, и на странице Википедии ничего не сказано. Мой перевод на Haskell: para :: (a -> [a] -> b -> b) -> b -> [a] -> b para f base = h where h [] = base h (x:xs) = f x xs (h xs) Но...

94
Почему я не могу сопоставить целые числа со строками при потоковой передаче из массива?

Этот код работает (взят из Javadoc): List<Integer> numbers = Arrays.asList(1, 2, 3, 4); String commaSeparatedNumbers = numbers.stream() .map(i -> i.toString()) .collect(Collectors.joining(", ")); Этот не может быть скомпилирован: int[] numbers = {1, 2, 3, 4}; String commaSeparatedNumbers...

94
реализация вывода типа

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

94
Могу ли я объединить в Scala более двух списков?

Учитывая следующий список Scala: val l = List(List("a1", "b1", "c1"), List("a2", "b2", "c2"), List("a3", "b3", "c3")) Как я могу получить: List(("a1", "a2", "a3"), ("b1", "b2", "b3"), ("c1", "c2", "c3")) Поскольку zip можно использовать только для объединения двух списков, я думаю, вам нужно...

93
Почему я могу определять структуры и классы внутри функции на C ++?

Я просто по ошибке сделал что-то подобное на C ++, и это работает. Почему я могу это сделать? int main(int argc, char** argv) { struct MyStruct { int somevalue; }; MyStruct s; s.somevalue = 5; } Теперь, сделав это, я как бы вспомнил, что читал где-то об этом трюке давным-давно, как об инструменте...

93
Упорядочивание параметров для использования каррирования

Я дважды недавно реорганизовал код, чтобы изменить порядок параметров, потому что было слишком много кода, где хаки вроде flipили \x -> foo bar x 42происходили. Какие принципы помогут мне лучше всего использовать каррирование при разработке сигнатуры функции?...

93
Объяснение комбинаторов для рабочего человека

Что такое комбинатор ?? Это «функция или определение без свободных переменных» (как определено в SO)? Или как насчет этого: согласно Джону Хьюзу в его известной статье о стрелах, «комбинатор - это функция, которая строит фрагменты программы из фрагментов программы» , что выгодно, потому что «......

93
Как мне написать функцию, которая возвращает другую функцию?

В Python я хотел бы написать функцию, make_cylinder_volume(r)которая возвращает другую функцию. Эта возвращенная функция должна быть вызвана с параметром hи возвращать объем цилиндра с высотой hи радиусом r. Я знаю, как возвращать значения из функций в Python, но как мне вернуть другую функцию ?...

92
Что такое полиморфизм в Javascript?

Я прочитал возможную статью о полиморфизме, которую смог найти в Интернете . Но я думаю, что не мог полностью понять значение этого и его важность. В большинстве статей не говорится, почему это важно и как добиться полиморфного поведения в ООП (конечно, в JavaScript). Я не могу привести пример...

92
Как / почему функциональные языки (в частности, Erlang) хорошо масштабируются?

Некоторое время я наблюдал за растущей популярностью языков и функций функционального программирования. Я заглянул в них и не увидел причины обращения. Затем, недавно я посетил презентацию Кевина Смита «Основы Erlang» на Codemash . Мне понравилась презентация, и я узнал, что многие атрибуты...

92
Выполняет ли Ruby оптимизацию хвостового вызова?

Функциональные языки приводят к использованию рекурсии для решения множества проблем, поэтому многие из них выполняют оптимизацию хвостового вызова (TCO). TCO вызывает вызовы функции из другой функции (или самой функции, в этом случае эта функция также известна как Tail Recursion Elimination,...

92
Как работают языки функционального программирования?

Если языки функционального программирования не могут сохранять какое-либо состояние, как они делают простые вещи, такие как чтение ввода от пользователя? Как они «хранят» ввод (или хранят какие-либо данные в этом отношении?) Например: как эта простая вещь C может быть переведена на функциональный...

92
Как заархивировать списки в список

Я хочу заархивировать следующий список списков: >>> zip([[1,2], [3,4], [5,6]]) [[1,3,5], [2,4,6]] Этого можно достичь с помощью текущей zipреализации, только если список разделен на отдельные компоненты: >>> zip([1,2], [3,4], [5,6]) (1, 3, 5), (2, 4, 6)] Не могу понять, как...

91
Оптимизированы ли какие-либо хвостовые вызовы движков JavaScript (TCO)?

У меня есть хвостовой рекурсивный алгоритм поиска пути, который я реализовал в JavaScript, и я хотел бы знать, могут ли какие-либо (все?) Браузеры получить исключения переполнения стека....

90
Удаление элементов с помощью Array.map в JavaScript

Я хотел бы отфильтровать массив элементов с помощью map()функции. Вот фрагмент кода: var filteredItems = items.map(function(item) { if( ...some condition... ) { return item; } }); Проблема в том, что отфильтрованные элементы по-прежнему используют пространство в массиве, и я хотел бы полностью их...

90
Когда использовать функциональный язык программирования?

В каких ситуациях я должен выбрать использование функционального языка программирования вместо более подробного объектно-ориентированного языка, такого как C ++, C # или Java? Я понимаю, что такое функциональное программирование, но на самом деле не понимаю, для каких типов проблем это идеальное...

90
Каков статус текущих реализаций функционального реактивного программирования?

Я пытаюсь визуализировать некоторые простые автоматические физические системы (такие как маятник, манипуляторы и т. Д.) В Haskell. Часто эти системы можно описать уравнениями типа df/dt = c*f(t) + u(t) где u(t)представляет собой своего рода «интеллектуальное управление». Эти системы очень хорошо...