问题标签 [combinators]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2631 浏览

haskell - 如何使 Parsec chainl1 函数遵循运算符优先规则

我正在编写标准数学符号-> DC POSIX 兼容格式转换器。它获取输入字符串,将其解析为中间数据类型,然后通过showing 将其转换为输出字符串。

这是使用的数据类型。我对 Data type -> Output String 转换没有任何问题,它完美无缺:

然而,Parsec 解析器部分拒绝遵守定义的运算符优先级规则。显然是因为解析器定义chainl1中使用的方式:subexpression

有没有办法让解析器考虑运算符优先级规则而不必重写我的整个代码?

0 投票
1 回答
504 浏览

javascript - 这是定点组合器的实现吗?

我认为这不能称为“定点递归”,因为它太简单了。然而,我最近意识到它实际上可能是。

我是否有效地实现了定点递归?

这是有问题的功能:

这里有一些额外的上下文:

其余的代码在这里,但上面的代码片段应该足以遵循。

0 投票
1 回答
990 浏览

functional-programming - 组合器和高阶函数有什么区别?

我一直认为这两个的定义都是以其他函数为参数的函数。我知道每个的领域是不同的,但它们的定义特征是什么?

0 投票
2 回答
132 浏览

css - CSS 组合子优先级

我希望在其本身或另一个名为“plus”的 div 悬停时对名为 rightPanel 的 div 进行更改。

(当前的组合器不起作用)。如何组织组合子的优先级以产生 (div#plus:hover, div#rightPanel:hover) ~ #rightPanel 的效果?

0 投票
2 回答
204 浏览

function - 将表单定义为函数名?

我想知道这段代码在 Scheme 中的含义:

整个文件在这里

这是合法的计划吗?(K x) 是参数化函数,类似于 Java 中的泛型函数吗?我查了MIT Scheme 参考,似乎没有提到这种定义。

0 投票
3 回答
299 浏览

haskell - foldr 和 foldl 的高阶函数细节

我无法解释 foldl 的函数签名。我了解它是如何工作的,但我不确定它与签名有何关系。

我有几个关于它的细节的问题

似乎第一个参数需要一个加法函数:

在函数参数中,到底发生了什么?在这种情况下,本节是否将最右边的整数a应用于累加器b以产生另一个整数 9?在此之后,它是否会返回一个以累加器为参数的函数?

在此之后,下面的最后两个参数是什么意思?

非常感谢。

0 投票
3 回答
1154 浏览

list - 将列表组合泛化为 N 个列表

在 Scala 中生成已知数量的列表的组合非常简单。您可以使用理解:

或者您可以使用脱糖版本:

在套件之后,我想从 N 个列表中创建元素的组合(N 在运行时是已知的)。按照组合器示例,3 个列表将是:

所以我看到了这个模式,我知道那里有一个递归,但我一直在努力把它固定下来。

有任何想法吗?

0 投票
3 回答
5062 浏览

haskell - 什么是 Haskell 中的组合器

Real World Haskell中,他们这样描述组合子:

在 Haskell 中,我们将其他函数作为参数并返回新函数作为组合子的函数。

然后他们声明这个maybeIO函数是一个组合子,它的类型签名看起来像这样:

但我能看到的maybeIO是一个函数,它接受一个包装在 IO monad 中的值并返回一个 IO monad 中的值。那么这个函数如何成为一个组合子呢?

0 投票
2 回答
1477 浏览

functional-programming - 对于定点组合 Y,什么是 \xf(xx)

对于 Y 组合子定理,

这是什么F意思?什么是固定点F(x) = x +1?我的理解是x+1=x没有解决办法?

对于下面的证明:

怎么λx.F(xx)定义的?再次F(x) = x + 1以示例为例,这是什么F(xx)意思?

0 投票
1 回答
101 浏览

scala - Scala Combinator Parser 不使用空格

为什么这个简单的 scala 组合器解析器示例会失败?

当我提供以下字符串时:

我收到此错误:

为什么它会在太空中绊倒?