functional-programming 相关问题

函数式编程是一种基于使用函数构建抽象,避免副作用和状态变化的编程范例。纯函数编程是线程安全的。

无需循环构造即可更改数组的所有值

我在 php 中有以下数组: $a = [0, 4, 5, 7]; 我想增加所有值而不编写循环(for,foreach ...) // 增加所有值 // $a 现在是 array(1, 5, 6, 8) 是吗

回答 3 投票 0

在 OCaml 中展平嵌套列表

我正在做 OCaml 练习的第 7 题。它基本上要求给定一个定义的嵌套列表: 输入“节点= | 'a 之一 |许多'a节点列表 写一个函数 function flatten 来展平...

回答 1 投票 0

SML 中 let-in-end 的递归是什么样的

有人可以教我 let-val-in-end 情况下的递归是什么样的吗?我很难理解这个过程,即循环的崩溃 [SML] 示例: “c”的行为如何...

回答 1 投票 0

FT-TS如何压平TaskEither的左侧

鉴于以下几点: OnRequestSuccess 是一个异步函数,它执行一些工作并返回一个字符串 OnRequestFailure 是一个异步函数,它执行一些工作并返回错误 这有点……

回答 1 投票 0

如何基于谓词创建实时子集合?

背景 我有一个界面 公共接口 ThingRegistry { 公共集 getAllThings(); 公共 Set getAllThingsWithProperty(String property); } 还有一个

回答 1 投票 0

Haskells 绑定运算符和 >> 运算符及其关系

我最近发布了一个关于 >> 运算符的问题,因为尽管我已经阅读了 LYAH walk the linee 部分,但我的理解仍然存在一些差距。下面是一些代码/MVE...

回答 1 投票 0

Haskell 深度优先图遍历具有无限循环

我最近花了一些时间尝试在Haskell中制作深度优先遍历算法。然而,对于我的,我希望该函数返回一个“已访问”列表,其中包含访问过的每个节点

回答 1 投票 0

F# - 将 char 转换为 int

在为项目使用 F# 进行编码时,我想要将 char 转换为 int。 IE。 让c = '3' c |> int //但是我相信这将给出 3 的 ascii 值 我的问题...

回答 4 投票 0

zip_longest 无填充值

我正在Python的zip和zip_longest函数(来自itertools模块)之间寻找中间立场,它耗尽所有给定的迭代器,但不填充任何内容。所以,举例来说,它...

回答 3 投票 0

Array.prototype 中哪些函数是 Javascript 中的纯函数

我知道纯函数有以下一些规则。 无副作用。 当您调用此函数时始终相同的输入和相同的输出。 有人可以帮我列出 Javascript 中的所有纯函数吗

回答 1 投票 0

我可以使用 std::bind* 编写函数吗?

我正在使用 C++20 进行函数式编程并编写类似的内容: 模板 概念可组合= std::可调用 我正在使用 C++20 进行函数式编程并编写类似的内容: template <class OuterFn, class InnerFn, class... Args> concept Composable = std::invocable<OuterFn, std::invoke_result_t<InnerFn, Args...>>; template <class OuterFn, class InnerFn> constexpr auto compose(OuterFn&& outer, InnerFn&& inner) { return [ out = std::forward<OuterFn>(outer), in = std::forward<InnerFn>(inner) ]<class... Args>(Args && ... args) requires Composable<OuterFn, InnerFn, Args...> { using std::invoke, std::forward; return invoke(out, invoke(in, forward<Args>(args)...)); }; } template <class OuterFn, class InnerFn> constexpr auto operator*(OuterFn&& outer, InnerFn&& inner) { using std::forward; return compose(forward<OuterFn>(outer), forward<InnerFn>(inner)); } template <class... RestFn> constexpr auto compose(RestFn&&... rest) { return (std::forward<RestFn>(rest) * ...); } 这是工作,但我想通过使用 std::bind* 而不是 lambda 来重构两个参数的 compose。 也许您有想法我该如何做到这一点,或者我不能这样做的原因? 问题是如何检索内部函数的参数。 std::bind(outer, std::bind_front(inner)); 我通过类比尝试了可变参数模板参数(以及数百万个其他变体) std::bind(outer, std::bind(inner, _1)); 对于一个论点,但它不起作用。 附注对不起我的英语) 当您提供代码时,似乎可以按照您的要求进行操作。 这是您要求的示例(如果我理解正确的话): #include <functional> using namespace std::placeholders; double mulF(const double x, const double y) { return x * y; } double addTen(const double x) { return x + 10; } int main() { static const std::function<double(const double, const double)> mulCb = std::bind(mulF, _1, _2); static const std::function<double(const double)> addTenCb = std::bind(addTen, _1); const std::function<double(const double, const double)> composed = std::bind(addTenCb, std::bind(mulCb, _1, _2)); // together as you asked std::cout << "Output: " << composed(5, 3) << std::endl; // Output 25 (5 * 3 + 10). return 0; }

回答 1 投票 0

Rust 是否/会支持函数式编程习惯吗?

我喜欢 Rust 支持代数数据类型,特别是这些数据类型的匹配, 但是有计划支持其他函数式习语吗? 例如。有标准合集吗...

回答 2 投票 0

如何纯粹使用Python的标准库来编写函数?

Python 的标准库非常庞大,我的直觉告诉我其中一定有一种方法可以实现这一点,但我就是想不出来。这纯粹是出于好奇和学习目的: 我哈...

回答 1 投票 0

如何在 Swift 中正确输入链式函数生成器函数?

特别是在 Swift 中(但老实说,我希望在任何类型语言中都有一个好的解决方案)我想正确键入函数组合器函数。 我确实有相当多的打字经验

回答 1 投票 0

提升状态单子以关注记录的一部分

使用以下代码片段: 数据圆 = 圆 { 中心点 ,半径 :: 双精度 } 数据点 = 点(双精度、双精度) someFuncOverPoint :: 状态 Po...

回答 1 投票 0

如何在 Ruby 中预先填充函数的参数?

假设我有一个函数 foo: def foo(A, B, C) A+B+C 结尾 我这样称呼它,只更改最后一个参数: foo(“富”,“酒吧”,“123”) foo(“fo...

回答 4 投票 0

排序时以相反顺序附加附加元素的解决方法

我想排序,以便列表中的奇数首先出现,偶数最后出现,但我需要偶数与预排序的位置相同,是否有一个简单的解决方法? 让记录

回答 3 投票 0

如何检查 Mono<Void> 是否真的被调用了?

我是反应式编程的新手(并且我读过很多类似的问题)。在我当前的宠物项目中,我遇到了以下问题(我正在为任务中的场景提供伪代码......

回答 1 投票 0

Ocaml 可添加号码

我正在学习Ocaml,从我为论文学习的一点Haskell中学习,我想知道是否有类似的机制(类型类)来表达2个数字是可加的(就像一个泛型.. .

回答 1 投票 0

如何将所有匹配项的列表返回到 C# 函数/linq 中的字典查找?

基本上尝试 输入字符列表。 根据 char>string 连接的字典交叉引用每个字符。 输出字符串列表。 在普通的 C# 中,我的工作方式类似于...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.