问题标签 [pointfree]

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 投票
3 回答
550 浏览

function - 函数应用:这里为什么用$?

前段时间,我问了一个关于 $的问题,得到了有用的答案——事实上,我以为我理解了如何使用它。

看来我错了:(

此示例显示在教程中:

我一生都无法理解为什么在那里使用 $ ;ghci 也没有帮助我,因为即使我在那里进行的测试似乎也显示出与简单地省略 $ 的版本等价。有人可以为我澄清一下吗?

0 投票
1 回答
1723 浏览

haskell - Confusion about currying and point free style in Haskell

I was trying to implement the function

which was the topic for this question. I tried to do this without explicit recursion. I came up with the following code

My function didn't work since it wasn't lazy (which was required in the question), so no upvotes there :-).

However, I did not stop there. I tried to make the function point-free so that it would be shorter (and perhaps even cooler). Since the arguments f and xs are the last ones in the expression I just dropped them:

But this did not work as expected, in fact it didn't work at all:

Why is that? I was under the impression that it was possible to simply drop trailing function arguments, which basically is what currying is about.

0 投票
6 回答
31017 浏览

functional-programming - 什么是“无点”风格(在函数式编程中)?

我最近注意到的一个短语是“无点”风格的概念......

首先,有这个问题,还有这个问题。

然后,我发现他们在这里提到“另一个可能值得讨论的话题是作者不喜欢无点风格。”

什么是“无点”风格?有人可以给出简明的解释吗?它与“自动”柯里化有关吗?

为了了解我的水平 - 我一直在自学 Scheme,并编写了一个简单的 Scheme 解释器......我了解“隐式”柯里化是什么,但我不知道任何 Haskell 或 ML。

0 投票
5 回答
3361 浏览

haskell - 翻转/反转 fmap (<$>)?

我发现定义以下

我可以这样写代码:

对我来说,它比替代方案更有意义:

显然,这只是顺序问题。

还有其他人这样做吗?有正当理由不写这样的代码吗?

0 投票
5 回答
4489 浏览

haskell - Haskell 中的无积分

我有这段代码,我想让它变得无意义;

(\k t -> chr $ a + flip mod 26 (ord k + ord t -2*a))

我怎么做?

除了“想想这个amd想出什么”之外,还有一些关于无点风格的一般规则吗?

0 投票
2 回答
306 浏览

function - 从函数应用到函数组合的 Haskell 类型错误

这个问题与antal sz 回答的这个Function Composition VS Function Application有关。

你怎么能得到这个?

为什么下面的代码有函数组合的类型错误?

但这没有类型错误

为了利用函数组合,是否必须编写一个无点函数?我还是不太明白函数组合的用法。

请帮忙。谢谢。

0 投票
2 回答
757 浏览

haskell - 为什么这个函数的pointfree版本看起来像这样?

我一直在玩 Haskell,包括练习以无点形式编写函数。这是一个示例函数:

我想以无点形式编写此函数。这是我在其他地方找到的一个例子:

但是,我不明白为什么无点形式看起来像(sum .) . zipWith (*)而不是sum . zipWith (*). 为什么 sum 在括号中并且有 2 个组合运算符?

0 投票
7 回答
7911 浏览

haskell - Haskell 地图/zip 与。列表理解

您最有可能写以下哪项?

或者

网上的示例代码似乎表明前者更丰富,是首选方式。

0 投票
2 回答
639 浏览

functional-programming - 摆弄无点代码?

我一直在学习 Factor 和 J 语言来尝试无点编程。这些语言的基本机制似乎很清楚,但是要了解如何进行算法设计是一个挑战。

对我来说,一个特别的困惑来源是应该如何构造代码,以便轻松地尝试不同的参数。我的意思是 Mathematica 和 Matlab 非常擅长的那种东西。您设置了一个算法,然后操纵变量并观察会发生什么。

如果没有显式变量,你如何做到这一点?也许我在想这一切都是错的。我应该如何在无点编程中解决这个问题?

0 投票
3 回答
547 浏览

haskell - Point-free form versus style

Can you convert

to pointfree style while maintaining clarity (I know of the program 'pointfree', but would prefer not to obfuscate the code even more)?

Either way, what changes could be made to improve the style of the function, or otherwise makes its intent clearer? The function is intended to be used as below.

What are some better naming conventions to use (see the ps, ps', es, and es' variables)?