每个人。我想在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
(我假设是一个数字)进行比较。
嗯,您不能将函数与数字进行比较,而这就是编译器告诉您的:“函数find
期望获得一个接受Bank
并返回Boolean
的函数作为其第一个参数。产生这种功能的方法有很多,但是最明显的是使用lambda抽象:
\bank -> bank.id == searchId
因此,将其插入您的代码:
find (\bank -> bank.id == searchId) banks
您可以这样更改代码。
find(\{id} -> id == searchId) banks
所以您可以获得结果对象。