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

83
Разделить массив JavaScript на куски с помощью Lodash

Мне нужно разбить массив JavaScript на nкуски определенного размера. Например: учитывая этот массив ["a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a10", "a11", "a12", "a13"] и a nравно 4, результат должен быть таким: [ ["a1", "a2", "a3", "a4"], ["a5", "a6", "a7", "a8"], ["a9", "a10",...

82
Scala currying против частично применяемых функций

Я понимаю, что здесь есть несколько вопросов о том, что такое каррирование и частично применяемые функции, но я спрашиваю, чем они отличаются. В качестве простого примера приведем каррированную функцию для поиска четных чисел: def filter(xs: List[Int], p: Int => Boolean): List[Int] = if...

80
Функциональные линзы

Может ли кто-нибудь объяснить мне функциональные линзы? Это удивительно сложная тема для Google, и я не добился никакого прогресса. Все, что я знаю, это то, что они предоставляют ту же функциональность, что и в OO....

55
Что именно подразумевается под «частичной функцией» в функциональном программировании?

Насколько я понимаю, частичные функции - это функции, которые мы получаем, передавая в функцию меньше параметров, чем ожидалось. Например, если это было правильно в Python: >>> def add(x,y): ... return x+y ... >>> new_function = add(1) >>> new_function(2) 3 В приведенном...

50
Как уменьшить дублирование кода при работе с рекурсивными типами сумм

В настоящее время я работаю над простым интерпретатором языка программирования, и у меня есть такой тип данных: data Expr = Variable String | Number Int | Add [Expr] | Sub Expr Expr И у меня есть много функций, которые делают простые вещи, такие как: -- Substitute a value for a variable...

16
Есть ли разница между типовыми сигнатурами a -> b -> a и c -> a -> c?

Этот вопрос является теоретическим вопросом о функциях Haskell, которые могут принимать аргументы любого типа. Есть ли разница между способом функций с сигнатурами типа a -> b -> a а также c -> a -> c создаются? Любая помощь...

16
Haskell: класс типов против передачи функции

Мне кажется, что вы всегда можете передавать аргументы функции, а не использовать класс типов. Например, вместо определения класса типов равенства: class Eq a where (==) :: a -> a -> Bool И использование его в других функциях для указания аргумента типа должно быть экземпляром Eq: elem :: (Eq...

15
Есть ли в представлении Ван Ларховена `Optional`

Многие виды оптики имеют представление Ван Ларховена. Например, Lensтип Lens s t a b может быть представлен как: Functor f => (a -> f b) -> s -> f t Аналогично, a Traversalможет быть представлен аналогичным образом, поменяв местами Functorограничение Applicative: Applicative f => (a...

14
Возможно ли реализовать эту функцию слова без шага постобработки после свертывания?

Real World Haskell, глава 4, стр. 98 печати спрашивает, wordsможно ли реализовать с помощью сгибов, и это тоже мой вопрос: Является ли это возможным? Если нет, то почему? Если это так, как? Я придумал следующее, которое основано на идее, что каждый непробел должен быть добавлен перед последним...

13
Как рассуждать о безопасности стека в Scala Cats / fs2?

Вот фрагмент кода из документации для fs2 . Функция goрекурсивная. Вопрос в том, как узнать, безопасен ли он для стека, и как определить, является ли какая-либо функция безопасной для стека? import fs2._ // import fs2._ def tk[F[_],O](n: Long): Pipe[F,O,O] = { def go(s: Stream[F,O], n: Long):...

11
Очистка списка данных в Java8

Для очистки списка данных я создал метод, который принимает список данных и список операций очистки, которые необходимо выполнить. public <T> List<T> cleanData(List<T> data, List<Function<T, T>> cleanOps) { List<T>dataNew=data.stream().map((str) -> { T...

10
Почему println считается нечистой функцией?

Я читаю книгу программирования в Scala, и там сказано: ... в этом случае его побочным эффектом является печать в стандартный поток вывода. и я не вижу, где находится побочный эффект, так как для того же ввода println будет печатать один и тот же вывод (я думаю) UPDATE, например, каждый раз, когда...

9
Должно ли моделирование объектов с состоянием моделироваться с типом эффекта?

При использовании функциональной среды, такой как Scala cats-effect, следует ли моделировать объекты с состоянием с типом эффекта? // not a value/case class class Service(s: name) def withoutEffect(name: String): Service = new Service(name) def withEffect[F: Sync](name: String): F[Service] =...

9
Что я могу сделать с callCC, что нельзя сделать с помощью cont?

Я действительно очень борюсь с пониманием callCC. Я получаю силу от Continuations и использую концепцию в некоторых своих проектах для создания классных концепций. Но мне никогда не приходилось использовать что-то с большими возможностями, чем cont :: ((a->r)->r)-> Cont r a. После его...

9
Способ репликации геттеров / сеттеров для открытых свойств в POJO

У нас есть POJO, который автоматически генерируется с ~ 60 свойствами. Это генерируется с Avro 1.4, который не включает в себя геттеры / сеттеры. Для библиотеки, которую мы используем для обеспечения простых преобразований между объектами, для правильной работы требуются методы, подобные методам...

9
Haskells Weak Head Нормальная форма

Я наткнулся на некоторые раздражающие вещи. Я знаю, что haskell работает со слабой головой нормальной формы (WHNF), и я знаю, что это такое. Введите следующий код в ghci (я использую команду: sprint, которая, насколько мне известно, сокращает выражение до WHNF): let intlist = [[1,2],[2,3]] :sprint...