小编flu*_*oii的帖子

在某种意义上,“Fix”和“(,)”可以被视为函子吗?

我一直想知道一个完整的、包罗万象的背景instance Functor (f :.: g)是什么样的。我脑海中立即浮现的想法是:

newtype (f :.: g) a = Comp (f (g a))
instance (Functor f, Functor g) => Functor (f :.: g) where
    fmap f (Comp x) = Comp (fmap (fmap f) x)
Run Code Online (Sandbox Code Playgroud)

但是,两个逆变函子也会组合成协变的,如下所示:

instance (Contravariant f, Contravariant g) => Functor (f :.: g) where
    fmap f (Comp x) = Comp (contramap (contramap f) x)
Run Code Online (Sandbox Code Playgroud)

这已经不是一个有希望的开始。然而,我也注意到,从技术上讲,f甚至g不必有 kind * -> *—— 唯一的要求f :.: g :: * -> * …

haskell composition functor category-theory

5
推荐指数
1
解决办法
267
查看次数

`forall a -> b` 语法是什么意思?

在GHCi中,其类型FUN显示如下:

\n
\xce\xbb> :k FUN\nFUN :: forall (n :: Multiplicity) -> * -> * -> *\n
Run Code Online (Sandbox Code Playgroud)\n

起初,我以为这是一种迂回的表达方式

\n
FUN :: Multiplicity -> * -> * -> *\n
Run Code Online (Sandbox Code Playgroud)\n

但事实证明 Template Haskell 对于这种形式有一个单独的构造函数:ForallVisT。我找不到任何关于它的文档,而且我不知道如何开始以有意义的方式进行实验。

\n

这个语法是什么意思?forall a -> b与“正常”有什么不同forall a. a -> b

\n

haskell types existential-type forall data-kinds

4
推荐指数
1
解决办法
229
查看次数

如何使用 Pygame 播放正弦波/方波?

我正在尝试使用 Pygame 的函数来播放正弦波sndarray.make_sound。但是,当我使用这个数组来播放它时:

np.sin(2 * np.pi * np.arange(44100) * 440 / 44100).astype(np.float32)

其中440是频率,44100是采样率,而是播放响亮、刺耳的噪音。这可以使用pyaudio.PyAudio(),但是我需要一些不会阻止执行的东西。方波也会发生这种情况,但它只是不播放任何内容。我正在使用channels=1formixer.pre_initmixer.init函数。

我怎样才能解决这个问题?如果有帮助的话,我正在使用 Mac。提前致谢!

python pygame playback python-3.x

3
推荐指数
1
解决办法
1990
查看次数