Запитання з тегом «functional-programming»

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

9
У Java SE 8 є пари або кортежі?
Я граю з ледачими функціональними операціями в Java SE 8, і хочу mapіндексувати iпару / кортеж (i, value[i]), потім filterбазуючись на другому value[i]елементі, і, нарешті, вивести просто індекси. Потрібно, як і раніше, зазнавати цього: Який еквівалент пари C ++ <L, R> на Java? у сміливій новій ері лямбдів та струмків? …

7
Як функціональні функції частково роблять те, що вона робить?
Я не в змозі переконатися в тому, як працює часткова робота у фунікулерах. У мене звідси такий код : >>> sum = lambda x, y : x + y >>> sum(1, 2) 3 >>> incr = lambda y : sum(1, y) >>> incr(2) 3 >>> def sum2(x, y): return x …

8
Чому в Haskell моделюються побічні ефекти як монади?
Чи може хтось дати деякі вказівки на те, чому нечисті обчислення в Haskell моделюються як монади? Я маю на увазі, що монада - це просто інтерфейс з чотирма операціями, тож, що було міркуванням для моделювання побічних ефектів у ньому?

6
Згрупуйте, рахуючи в потоці API 8
Я намагаюся знайти простий спосіб в Java 8 stream API зробити групування, я виходжу цим складним способом! List<String> list = new ArrayList<>(); list.add("Hello"); list.add("Hello"); list.add("World"); Map<String, List<String>> collect = list.stream().collect( Collectors.groupingBy(o -> o)); System.out.println(collect); List<String[]> collect2 = collect .entrySet() .stream() .map(e -> new String[] { e.getKey(), String.valueOf(e.getValue().size()) }) .collect(Collectors.toList()); collect2.forEach(o …



9
Чим відрізняються функціональні та імперативні мови програмування?
Більшість основних мов, включаючи об'єктно-орієнтовані мови програмування (OOP), такі як C #, Visual Basic, C ++ та Java, були розроблені для підтримки в першу чергу імперативного (процедурного) програмування, тоді як Haskell / gofer, як і мови, є суто функціональними. Чи може хтось детальніше розібратися в тому, чим відрізняється ці два …

23
Як уникнути тривалого вкладання асинхронних функцій у Node.js
Я хочу створити сторінку, яка відображає деякі дані з БД, тому я створив деякі функції, які отримують ці дані з моєї БД. Я просто новачок у Node.js, тому, наскільки я розумію, якщо я хочу використовувати їх на одній сторінці (відповідь HTTP), я повинен був би їх вкладати: http.createServer(function (req, res) …

2
Застосування реального світу зигогістоморфних препроморфізмів
Так, це : {-#LANGUAGE TypeOperators, RankNTypes #-} import Control.Morphism.Zygo import Control.Morphism.Prepro import Control.Morphism.Histo import Control.Functor.Algebra import Control.Functor.Extras import Control.Functor.Fix import Control.Comonad.Cofree zygohistomorphic_prepromorphism :: Functor f => Algebra f b -> GAlgebra f (ZygoT (Cofree f) b) a -> (f :~> f) -> FixF f -> a zygohistomorphic_prepromorphism f = g_prepro …

7
Наслідки foldr vs. foldl (або foldl ')
По-перше, справжній світ Хаскелл , який я читаю, говорить, що ніколи не використовувати, foldlа замість цього використовувати foldl'. Тож я їй довіряю. Але я туманно, коли використовувати foldrпроти foldl'. Хоча я бачу структуру того, як вони працюють по-різному, викладену переді мною, я занадто дурний, щоб зрозуміти, коли "що краще". Я …

13
Які засоби існують для функціонального програмування на C?
Останнім часом я багато думав про те, як займатися функціональним програмуванням на C (а не на C ++). Очевидно, що C є процедурною мовою і насправді не підтримує функціональне програмування. Чи є компілятори / розширення мови, які додають до мови деякі функціональні конструктивні програми? GCC надає вкладені функції як розширення …

14
Поєднання потоків за допомогою JDK8 з лямбда (java.util.stream.Streams.zip)
У JDK 8 з лямбда-b93 був клас java.util.stream.Streams.zip в b93, який можна було використовувати для поштових потоків (це проілюстровано у підручнику « Дослідження Java8 Lambdas». Частина 1 від Dhananjay Nene ). Ця функція: Створюється лінивий і послідовний поєднаний Потік, елементи якого є результатом поєднання елементів двох потоків. Однак у b98 …

2
Як я можу використовувати метод include у lodash, щоб перевірити, чи є об’єкт у колекції?
lodash дозволяє перевірити приналежність основних типів даних за допомогою includes: _.includes([1, 2, 3], 2) > true Але наступне не працює: _.includes([{"a": 1}, {"b": 2}], {"b": 2}) > false Це мене бентежить, тому що наступні методи пошуку в колекції здаються чудовими: _.where([{"a": 1}, {"b": 2}], {"b": 2}) > {"b": 2} _.find([{"a": …

4
Помилка компілятора Swift: "Вираз занадто складний" в рядковому конкатенації
Мені це здається кумедним більше всього. Я це виправив, але мені цікаво про причину. Тут помилка: DataManager.swift:51:90: Expression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions. Чому він скаржиться? Це здається одним із найпростіших можливих виразів. Укладач вказує на columns + …

7
Яка різниця між lapply і do.call?
Я нещодавно вивчаю R і переплутана двома функціями: lapplyі do.call. Здається, вони просто схожі на mapфункцію в Lisp. Але чому існують дві функції з такою різною назвою? Чому R просто не використовує функцію, яку називають map?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.