Вопросы по теме 'purely-functional'

Когда можно изменять переменную в функциональных языках?
Итак, я учу себя функциональному программированию с использованием Racket Scheme, и пока мне это нравится. В качестве упражнения для себя я пытался реализовать несколько простых задач чисто функциональным способом. Я знаю, что неизменность - важная...
937 просмотров

Эквивалент вложенного совпадения в Rust
Я пытаюсь реализовать чисто функциональное красно-черное дерево в Rust, следуя примеру Окасаки. Когда я вставляю в красно-черное дерево, мне, возможно, придется вставить в дерево. Вот код Haskell для функции balance : balance :: Ord a =>...
53 просмотров

Параллельный подсчет с использованием функционального подхода и неизменяемых структур данных?
Я слышал и принимал аргумент о том, что мутация и состояние вредны для параллелизма. Но мне сложно понять, какие на самом деле правильные альтернативы? Например, если посмотреть на простейшую из всех задач: подсчет, например подсчет слов в...
55 просмотров

Clojure: работа с java.util.HashMap в идиоматической манере Clojure
У меня есть объект java.util.HashMap m (возвращаемое значение из вызова кода Java), и я хочу получить новую карту с дополнительной парой ключ-значение. Если бы m была картой Clojure, я мог бы использовать: (assoc m "key" "value") Но...
15022 просмотров

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

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

Могут ли чистые функции быть асинхронными?
Проходя через определение чистых функций, он обычно определяется двумя трейтами: 1) Должен выдавать одинаковый результат при одном и том же входе 2) Не должно вызывать побочных эффектов. Означает ли это также, что чистая функция не должна...
1351 просмотров

Вопрос о равенстве строк в Scala из интервью по программированию
Поскольку мне нравилось программировать на Scala, для интервью в Google я попросил их задать мне вопрос о стиле Scala/функциональном программировании. Вопрос о функциональном стиле Scala, который я получил, был следующим: У вас есть две строки,...
713 просмотров

Как я могу правильно перебирать этот список
Следующий пример является упрощением задачи. У меня есть список [Either Foo Bar] и еще один список [Biz] . Идея состоит в том, что я перебираю каждый элемент Biz через [Either Foo Bar] , с начала [Either Foo Bar] , пока Biz не станет...
111 просмотров
schedule 06.09.2022

Понимание порядка оценки и выполнения с синтаксисом точки с запятой
Я уже немного узнал о точках с запятой FFL из моего предыдущего вопроса . Однако до сих пор неясно, какой порядок оценки или выполнения они применяют. Итак, вот более конкретный пример: [ expr_a, expr_b ; expr_c, expr_d ; expr_e, expr_f ]...
36 просмотров
schedule 21.09.2022

Как реализовать раннюю логику возврата в F#
Я знаком с тем фактом, что в F# нет эквивалентного ключевого слова return. Однако недавно мы столкнулись с проблемой, когда нам понадобился рабочий процесс, состоящий из множества шагов, где каждый шаг может возвращать хороший или плохой результат....
3633 просмотров

Kotlin: обновить неизменяемый элемент списка
Котлин для начинающих здесь. Как взять список и, не изменяя его, создать второй (неизменяемый) список с одним обновленным элементом по определенному индексу? Я думаю о двух способах, оба из которых, похоже, могут привести к снижению...
23688 просмотров
schedule 04.11.2022

Чисто функциональный подход для создания уникального идентификатора
Это больше теоретический вопрос, но я чувствую, что должен быть способ сделать это. У меня есть JS-компоненты, для которых при создании необходимо присвоить элементу html уникальный идентификатор, который не использовался ни в одном другом...
776 просмотров

Статические методы близки к чистым методам?
Следуя требованиям чистого метода (метода, который не оказывает побочных эффектов на внешний мир), я обнаружил, что в большинстве случаев статические методы удовлетворяют этому требованию. Мы не можем получить доступ к переменным экземпляра в...
929 просмотров
schedule 21.01.2023

Как использовать оператор |› с функцией, которая ожидает два параметра?
kll : Float kll = let half x = x / 2 in List.sum (List.map half (List.map toFloat (List.range 1 10))) преобразование с использованием |> Можете ли вы также объяснить, как правильно использовать |> с...
75 просмотров

Можно ли сопоставить шаблон с параметром по имени без его оценки?
Играл с Lazy Structure Stream, как показано ниже import Stream._ sealed trait Stream[+A] { .. def toList: List[A] = this match { case Empty => Nil case Cons(h, t) => println(s"${h()}::t().toList");...
52 просмотров
schedule 12.11.2022

Могу ли я изменить переменную на месте чисто функциональным способом?
Я знаю, что могу использовать передачу состояния и монады состояния для чисто функциональной мутации, но на самом деле это не на месте, и я хочу получить преимущества в производительности, делая это на месте. Пример был бы отличным, например....
110 просмотров
schedule 10.04.2023

Scala: Почему эта функция не хвостовая рекурсия?
У меня есть такая реализация сортировки слиянием: import scala.annotation.tailrec object MergeSort { def sortBy[T]: ((T, T) => Int) => Seq[T] => Seq[T] = comparator => seqToSort => { @tailrec def merge(xs : Seq[T], ys :...
139 просмотров

Как реализовать побочные эффекты в чистом функциональном программировании?
Я уже некоторое время занимаюсь концепцией функционального программирования и нахожу ее довольно интересной, увлекательной и захватывающей. Особенно потрясающая идея чистых функций во многих смыслах. Но есть одна вещь, которую я не понимаю: как...
5657 просмотров

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