gpt4 book ai didi

purescript - 如何在 Purescript 的记录数组中查找元素

转载 作者:行者123 更新时间:2023-12-02 00:10:11 24 4
gpt4 key购买 nike

大家。我想在 Purescript 的记录数组中找到一个元素,但由于我不熟悉 Purescripot,所以无法解决。

我有一个包含银行记录的数组banks

这是银行记录的类型。

type Bank = {
id :: Int,
name :: String
}

我想在 banks 中找到一家银行,其 ID 与给定的搜索 ID 相同。

我试过如下:

find (_.id == searchId) banks

但出现此错误。


Could not match type
Int
with type
Function
{ id :: t0
| t1
}

请帮我解决这个简单的问题。

最佳答案

表达式 _.id 是一个接受 Bank 并返回它的 id 的函数(有点过于简单,但现在已经足够好了).

举例说明:

getId = _.id
bank = { id: 42, name: "my bank" }
getId bank == 42

然后您使用该函数并尝试将它与 searchId 进行比较,我假设它是一个数字。

嗯,您不能将函数与数字进行比较,这就是编译器告诉您的内容:“无法将 Int 类型与 Function 类型相匹配

find 函数希望获得一个函数作为其第一个参数,该函数接受一个 Bank 并返回一个 Boolean。有很多方法可以生成这样的函数,但最明显的方法是使用 lambda 抽象:

\bank -> bank.id == searchId

因此将其插入您的代码:

find (\bank -> bank.id == searchId) banks

关于purescript - 如何在 Purescript 的记录数组中查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59345337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com