问题标签 [function-composition]

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 投票
6 回答
62662 浏览

haskell - Haskell中的点运算符:需要更多解释

我试图了解点运算符在此 Haskell 代码中的作用:

整个源代码如下。

我的理解

点运算符将两个函数sum以及结果map euler和结果mkList作为输入。

但是,sum不是函数,而是函数的参数,对吗?那么这里发生了什么?

还有,在(map euler)做什么?

代码

0 投票
13 回答
190278 浏览

haskell - What is the difference between . (dot) and $ (dollar sign)?

What is the difference between the dot (.) and the dollar sign ($)?

As I understand it, they are both syntactic sugar for not needing to use parentheses.

0 投票
2 回答
1026 浏览

haskell - Haskell:类型推断和函数组合

这个问题的灵感来自另一个问题的答案,表明您可以使用定义为的函数从列表中删除每个出现的元素:

用铅笔和纸从 和 的类型中计算出来,filter函数的类型为(/=)(.)

这正是您根据其合同所期望的。但是,使用 GHCi 6.6,我得到

除非我明确指定类型(在这种情况下它可以正常工作)。为什么 Haskell 会为函数推断出如此特定的类型?

0 投票
6 回答
1618 浏览

java - Java中的函数组合

我正在尝试实现一个惰性序列(意味着仅在调用 step 函数时才计算下一项),它应该具有的方法之一是“ map”,它接收一个影响所有成员的函数。
最优雅的方法是使用函数组合,并将新函数分配给函数变量,但由于函数不是 Java 中的第一类值,我不知道该怎么做。

我想过有一个只包含一个函数的类,作为一种“函数指针”包装器,但我不明白它如何用于组合。

编辑:问题与作业有关。
此外,它应该能够处理多个组合map(map(map(stepFunction())))(“ map”在这种情况下是通过方法“map”给出的函数)。

0 投票
5 回答
931 浏览

java - 用Java编写函数?

我正在为我们创建的 API 编写演示代码,但我一直遇到同样的问题,我一遍又一遍地重复自己,令人作呕。我痛苦地意识到 Java 计划添加闭包,但我现在无法访问它们。以下是在所有地方重复的内容,我只想把它装进它自己的小角落:

关于我认为解决此问题的唯一方法是将 a 传递给Method一个带有 try-catch 逻辑的函数,并将其全部包装在另一个函数中,如下所示:

但它看起来很丑,并且带有很多样板。有没有更简单的方法在 Java 中编写函数?

0 投票
1 回答
4045 浏览

python - Python函数组成

我试图用很好的语法来实现函数组合,这就是我所拥有的:

它适用于整数,但在列表/元组上失败:

哪里有错?

0 投票
4 回答
1594 浏览

python - 在 Python 中为函数组合提供语法糖是个好主意吗?

前段时间我查看了 Haskell 文档,发现它的功能组合运算符非常好。所以我实现了这个小装饰器:

问题:如果没有语言支持,我们不能在内置函数或 lambdas 上使用这种语法,如下所示:

问题:有用吗?值得在 python 邮件列表上讨论吗?

0 投票
6 回答
14004 浏览

haskell - Haskell 中的句号、句号或点 (.) 是什么意思?

我真的希望 Google 更擅长搜索语法:

0 投票
3 回答
1696 浏览

python - Python 列表作为 *args?

我有两个 Python 函数,它们都在函数定义中采用可变参数。举一个简单的例子:

我 想 组合 它们 —— 就像func1(func2(3, 4, 5))—— 但 我 不想args成为, 我 想要 它 是func1,好像 它 被 称为而 不是.([6, 7, 8],)(6, 7, 8)func1(6, 7, 8)func1([6, 7, 8])

通常,我会使用func1(*func2(3, 4, 5))func1检查是否args[0]是一个列表。不幸的是,我不能在这个特定的实例中使用第一个解决方案,而应用第二个解决方案需要在很多地方进行这样的检查(角色中有很多功能func1)。

有谁知道如何做到这一点?我想可以使用某种内省,但我可能是错的。

0 投票
2 回答
590 浏览

haskell - 将函数应用于任意长的参数列表

我想创建一个函数 apply ,它接受一个带有任意数量参数的函数以及一个整数列表,并返回函数的结果(其中列表中的每个整数都是按顺序排列的参数。

我在想类似的事情:

但我知道这行不通,因为类型签名是错误的——该函数不采用 int 列表,它只需要一些 int 参数。

此外,当我到达基本情况时,要应用的 f 参数实际上应该是一个整数,无论​​如何都违反了类型签名。

有谁知道如何处理这类问题?