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

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

1
Как рассуждать о безопасности стека в 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): Pull[F,O,Unit] = { s.pull.uncons.flatMap …

2
Очистка списка данных в Java8
Для очистки списка данных я создал метод, который принимает список данных и список операций очистки, которые необходимо выполнить. public <T> List<T> cleanData(List<T> data, List<Function<T, T>> cleanOps) { List<T>dataNew=data.stream().map((str) -> { T cleanData = str; for(Function<T,T> function:cleanOps) { cleanData=function.apply(cleanData); } return cleanData; }).collect(Collectors.toList()); return dataNew; } Проблема в том, что мы …

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

2
Как сгенерировать JSDoc для функции `pipe`d ES6
У меня есть функция в стиле ES6, которая определяется с помощью композиции функций с asyncPipe. import { getItemAsync } from 'expo-secure-store'; const asyncPipe = (...fns) => x => fns.reduce(async (y, f) => f(await y), x); const getToken = () => getItemAsync('token'); const liftedGetToken = async ({ ...rest }) => ({ …

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

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

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

2
Должно ли моделирование объектов с состоянием моделироваться с типом эффекта?
При использовании функциональной среды, такой как 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] = F.delay { new Service(name) } Конструкция не подвержена ошибкам, поэтому мы могли …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.