小编mno*_*nha的帖子

对于部分应用的中缀运算符,名称"section"来自何处?

在Haskell中,我们使用术语"section"来表示在中缀位置使用的部分应用函数.例如,对于一个函数foo :: a -> b -> c和值x :: ay :: b,我们有两节

s1 = (x `foo`) :: b -> c == \b -> foo x b
Run Code Online (Sandbox Code Playgroud)

s2 = (`foo` y) :: a -> c == \a -> foo a y
Run Code Online (Sandbox Code Playgroud)

在类别理论,然而,一个段gf定义为一个右逆f(以便f . g == id).

我没有看到两个定义之间有明显的联系.例如,s1显然不是反向foo,至少不是在Hask中.我想s1甚至不必在Hask中反转.

类别理论定义是否是Haskell定义的来源,如果是,如何?

haskell category-theory

13
推荐指数
1
解决办法
272
查看次数

Haskell:类型fa实际意味着什么?

我偶然发现了fold ((,) <$> sum <*> product)带有类型签名的这段代码,:: (Foldable t, Num a) => t a -> (a, a)我完全迷失了.

我知道它的作用,但我不知道怎么做.所以我试着把它分成几小块:

?: :t (<$>)
(<$>) :: Functor f => (a -> b) -> f a -> f b
?: :t (,)
(,) :: a -> b -> (a, b)
?: :t sum
sum :: (Foldable t, Num a) => t a -> a
Run Code Online (Sandbox Code Playgroud)

一切都很好,只是基本的东西.

?: :t (,) <$> sum
(,) <$> sum :: (Foldable t, Num a) => t a …
Run Code Online (Sandbox Code Playgroud)

haskell functor

6
推荐指数
1
解决办法
503
查看次数

Java中如何根据概率生成随机数

我想在 10% 的时间内随机选择“1”,在 30% 的时间内随机选择“2”,在其他 60% 的时间内随机选择“3”。我想知道是否有一种方法可以让我根据 Java 中的这些概率随机抽样。

谢谢

java sampling

2
推荐指数
1
解决办法
6852
查看次数

Haskell显式forall在lhs上有"缺失"类型参数

我正在阅读haxl-Haxl的源代码.Core我发现了以下代码

data BlockedFetch r = forall a. BlockedFetch (r a) (ResultVar a)
Run Code Online (Sandbox Code Playgroud)

并意识到我不完全理解ExplicitForall/ 的用法ExistentialQuantification.

上面的代码片段在哪些方面有所不同

data BlockedFetch r a = BlockedFetch (r a) (ResultVar a)
Run Code Online (Sandbox Code Playgroud)

为什么我可以"省略"数据声明的lhs上的类型参数.

haskell

2
推荐指数
1
解决办法
112
查看次数

如何在每个列表中打印某个元素

我在haskell编码,想知道如何在多列表中找到某个元素.

这里举个例子说:

x = [(1,2,3,4,5),
      (3,4,5,6,6),
      (5,6,2,1,1),
      (1,2,5,6,2)];
Run Code Online (Sandbox Code Playgroud)

假设我想找到每个列表的第3个元素.

所以该程序将打印出4,6,1,6

我知道!! 但是当我做x之类的事情时!3,它打印出第三行(1,2,5,6,2).

我想要它所以它打印出每个列表的第3个元素.

haskell tuples list

0
推荐指数
1
解决办法
153
查看次数

标签 统计

haskell ×4

category-theory ×1

functor ×1

java ×1

list ×1

sampling ×1

tuples ×1