1068得票14回答
C++函数对象是什么?它们有什么用途?

我一直听到在C++中有关functor的许多内容。能否给我一个概述,告诉我它们是什么以及在什么情况下它们会有用?

275得票7回答
函数作为模板参数传递

我正在寻找关于将C++模板函数作为参数传递的规则。 这在C++中是被支持的,下面的示例说明了这一点: #include <iostream> void add1(int &v) { v += 1; } void add2(int &v) { v += 2; }...

244得票19回答
在函数式编程中,什么是函子?

我在阅读一些关于函数式编程的文章时,几次遇到了“Functor”这个术语,但作者通常假设读者已经理解了该术语。在网上搜索提供的是过度技术化的描述(参见维基百科文章)或者是极其模糊的描述(请参见此ocaml-tutorial网站下的Functors部分)。 可以有人友好地定义这个术语、解释它的...

233得票5回答
不是函子/函子/应用函子/单子的好例子?

当我向某人解释类型类X是什么时,我很难找到恰好属于X的良好数据结构示例。 因此,我想要以下示例: 一个不是函子的类型构造器。 一个是函子但不是应用函子的类型构造器。 一个是应用函子但不是单子的类型构造器。 一个是单子的类型构造器。 我认为单子的示例无处不在,但如果有一个与先前示例相关...

130得票3回答
F# 转换为 OCaml

F#源自OCaml,但有哪些重要的元素缺失或添加了呢?具体来说,我想知道学习OCaml的资源对于想学习F#的人是否也有用。

107得票1回答
为什么我们需要map、fmap和liftM?

map :: (a -> b) -> [a] -> [b] fmap :: Functor f => (a -> b) -> f a -> f b liftM :: Monad m => (a -> b) -> m a ->...

86得票12回答
为什么要重载运算符()?

在Boost Signals库中,它们重载了() 运算符。 这是C++中的一种约定吗?用于回调等情况? 我在一个同事(碰巧是个大Boost粉丝)的代码中看到过这个。尽管Boost有很多好处,但这只让我感到困惑。 您能解释一下为什么要进行这种重载吗?

85得票5回答
单子作为伴随。

我一直在阅读范畴论中关于单子的内容。其中一种定义使用了一对伴随函子。通过这些函子,可以定义一个单子的往返路径。显然,在范畴论中,伴随是非常重要的,但我没有看到任何使用伴随函子来解释Haskell单子的说明。有没有人考虑过这个问题?

83得票11回答
为什么我不能在另一个函数内定义一个函数?

这不是关于lambda函数的问题,我知道可以将lambda分配给变量。 允许我们在代码中声明但不定义函数的目的是什么呢? 例如:#include <iostream> int main() { // This is illegal // int one(int...

83得票7回答
在函数式编程中,为什么应该使用可应用函子?

我刚接触 Haskell,正在学习有关函子和应用函子的知识。我理解函子以及如何使用它们,但我不理解为什么应用函子很有用,以及我如何在 Haskell 中使用它们。你能给我一个简单的例子来解释一下为什么我需要应用函子吗?