20得票1回答
索引容器:数学基础

当你想从数据结构中取出一个元素时,你需要给出它的索引。但是,索引 的含义取决于数据结构本身。 class Indexed f where type Ix f (!) :: f a -> Ix f -> Maybe a -- indices can be out ...

20得票4回答
在C++中,编译器将函数对象“内联”是什么意思?

在维基百科关于函数对象的文章中提到,当与for_each一起使用时,这些对象具有性能优势,因为编译器可以将它们“内联”。 在这个上下文中,我不太清楚这意味着什么...或者任何上下文,我很尴尬地说。感谢您的帮助!

20得票3回答
如何让 (fmap . fmap) 通过类型检查?

我正在阅读一篇文章(http://comonad.com/reader/2012/abstracting-with-applicatives/),在那里发现了以下代码片段:newtype Compose f g a = Compose (f (g a)) deriving Show inst...

20得票2回答
为什么<$>和<*>的输入顺序与>>=相反?

我理解 &lt;$&gt; 的类型签名背后的原因,因为它只是 fmap 的中缀版本,但将其与 &gt;&gt;= 的类型签名进行比较时,它对我来说就不那么有意义了。 让我们首先确定我所指的内容。(&gt;&gt;=) :: Monad m =&gt; m a -&gt; (a -&gt; m...

19得票3回答
使 (a, a) 成为一个函子

我如何使 (a, a) 成为一个 Functor 而不需要使用 newtype? 基本上我希望它的用法如下: instance Functor (a, a) where fmap f (x, y) = (f x, f y) 当然,这并不是一种合法的表达方式: Kind mis-m...

19得票2回答
boost::bind如何调用私有方法?

boost::bind在许多情况下都非常方便。其中之一是调度/提交方法调用,以便io_service稍后进行调用,当它可以时。 在这种情况下,boost::bind的行为与人们可以坦白地期望的相同:#include &lt;boost/asio.hpp&gt; #include &lt;bo...

19得票5回答
ML函数子是否可以完全编码在.NET (C#/F#) 中?

ML的functor能否通过.NET接口和泛型实现?是否有高级ML functor使用示例违反这种编码方式? 答案概要: 一般情况下,答案是否定的。ML模块提供了一些功能(例如通过签名共享规范[1]),这些功能不能直接映射到.NET概念。 然而,在某些用例中,ML的习惯用法可以被翻译。这...

19得票3回答
`loeb`函数还能用于哪些方面?

我正在尝试理解《Haskell 中的 Löb 和 möb:奇怪的循环》,但现在意义正逐渐远离我,我只是看不出它为什么有用。回顾一下,函数loeb的定义如下:loeb :: Functor f =&gt; f (f a -&gt; a) -&gt; f a loeb x = go where g...

19得票2回答
为什么在C++11中移除了unary_function和binary_function?

我发现在C++11中,binary_function被移除了。我想知道为什么。 C++98: template &lt;class T&gt; struct less : binary_function &lt;T,T,bool&gt; { bool operator() (const...

19得票2回答
接受任何类型的可调用对象,并且能够知道参数类型。

我不确定是否可能,所以我想找出答案。 我想创建一个接受任何类型的函数/可调用对象的函数,但我想知道参数类型。( 但不强制要求 ) 因此,这个函数可以捕获所有内容,但是不能给我参数类型: template &lt; typename T &gt; void optionA( T ); ...