问题标签 [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 投票
4 回答
4705 浏览

haskell - 在 Haskell 中将多个函数应用于相同的值无点样式

有一天我很无聊,想锻炼一下大脑,所以我决定做99 个 Haskell 问题,但我限制自己以无点的方式做。当我以无点风格做事时,似乎经常出现的一个问题是:如何将多个函数应用于相同的值,同时将每个结果保持为独立实体?使用尖头符号:

到目前为止,我以无点表示法提出了什么:

我似乎无法从x那里结束。

0 投票
2 回答
1691 浏览

f# - 如何使用原语在 F# 中实现列表过滤功能

我正在阅读为什么函数式编程很重要,作者使用 foldr 和函数组合实现了几个应用程序。我在 F# 中做了其中的一些,例如 map 函数:

然后我想实现列表过滤功能,结果卡住了:

这里有什么?函数应该将列表项、累积过滤列表作为输入,如果谓词返回 false,则返回相同的列表,如果返回 true,则返回 cons:ed 列表。

我想我需要这里的选项类型,但不知道如何将它们粘合在一起。是否可以使用 pred 和 cons(可能还有其他一些原语)来组合一个函数来实现这一点,而无需编写一个自定义的 lambda 函数来完成所有的工作?这是计算表达式的情况吗?

0 投票
3 回答
291 浏览

haskell - 应用重写(Haskell)

当我不了解 Haskell 中的表达式如何工作时,我经常发现将其分解为更基本的形式会有所帮助。

使用以下定义

我改写sequenceA [(+3),(+2)] 3

然后把它变成(请原谅格式;我不确定分割线的约定是什么)

(\d ->(\c->(\b -> (\a -> (\_ -> (:)) a (+3) a) b (\_ -> (:)) b) c (+2) c) d (\_ -> []) d) 3

当我手动完成它时,这似乎是正确的,但我无法让 GHCi 接受它。我在这里做错了什么?我的第二个问题是如何从这种形式转换为功能组合。我试过用各种组合替换点,但 GHCi 拒绝所有这些....

0 投票
2 回答
659 浏览

function - Haskell 中的隐性函数组合

假设我有一个mean这样定义的函数:

但我希望它以某种默认形式出现,如下所示:

是否有一种内置的 Haskell 方法可以按照这些方式做一些事情,而不必构建我自己的tacit函数(类似这样):

在这种形式中,函数如下所示:

但感觉可能有一种方法可以避免使用诸如此类的显式函数。我是在想; 有没有内置于 Haskell 中的方法来做到这一点?

0 投票
5 回答
700 浏览

haskell - Pointfree 在 Haskell 中返回一个元组

无点函数可以返回元组吗?例如,以下是否可以用 pointfree 样式编写(其中 f1、f2 和 f3 已定义):

在这种情况下,我的 f1、f2 和 f3 是 quot、mod、* 和一些整数的组合。

是一个更一般的情况,并且等价于

命名函数是可以的,但我的例子是匿名的。(命名示例如下)

编辑:我只是好奇,我不会这样做。

0 投票
3 回答
1435 浏览

haskell - 具有多个变量的无点组合

我已经开始关注它,并且更喜欢将它用于简单的情况,在这些情况下,我基本上可以将值从一个输出传递到一个输入。我喜欢的无点构图的一个简单示例是:

今天在玩 GHCI 时,我想看看我是否可以作曲not(==)复制(/=),但我真的无法推理出来。(==)取两个输入,not取一个。我认为这可能有效:

假设单个Bool输出(==)将转到not,但它不会编译,引用以下错误:

我希望我能说这对我来说意义重大,但我得到的只是传递给的第二个论点可能是为了(==)搞砸事情not?任何人都可以帮助我更好地理解这个组合背后的逻辑吗?

0 投票
2 回答
163 浏览

haskell - 无意义编程时 readFile 和 IO monad 之间没有合作

为什么 countInFile1 和 countInFile3 有编译器错误,而 countInFile0 和 countInFile2 没有。这四个都是一样的。

还有为什么 countInFile3 有这个 countInFile1 没有的附加错误:

0 投票
3 回答
310 浏览

f# - 无点函数能够内联吗?

inline显式地柯里化函数似乎是不可能的。所以无论何时调用,即使正确mycurried也不会得到,对吗?inlinedmyfunctioninlined

那么这可以看作是柯里化函数的缺点之一吗?

0 投票
3 回答
4924 浏览

haskell - 由于 (-1) 被视为负数,因此减法等于 (+1) 是什么?

可能重复:
柯里化减法

我开始了我的第一个 haskell 项目,它不是从教程开始的,当然我偶然发现了最简单的东西。

我有以下代码:

我花了一些时间来理解为什么我的代码无法编译:我使用了 (-1),这被视为负数。将减号括起来并没有帮助,因为它是它的前缀并使 1 成为它的第一个参数。

简而言之,这个免费版本是什么?

0 投票
3 回答
297 浏览

haskell - 寻找haskell高阶函数

将列表压缩到自身上的函数可以定义为:

这行得通,但我想以无点风格定义它。为此,我定义了一个函数dollarize

这可行,但显然我宁愿不定义自己的高阶函数。有没有办法找到 的标准等价物dollarize,假设它存在?如果不是,那么用于组合功能的此类功能在哪里?