如何解决Lambda表达式中逗号的F#语法
我是F#的新手。有人可以解释以下lambda表达式在说什么吗?具体来说,> yarn why -R 'babel-jest' # services -> feature/RS2-1243-logging $ !
├─ @bb/apollo-test-util@workspace:app-lib/graph/packages/apollo-test-util
│ └─ jest@npm:26.5.2 (via npm:^26.5.2)
│ ├─ @jest/core@npm:26.5.2 (via npm:^26.5.2)
│ │ └─ jest-config@npm:26.5.2 (via npm:^26.5.2)
│ │ └─ babel-jest@npm:26.5.2 [dc086] (via npm:^26.5.2 [dc086])
│ └─ jest-cli@npm:26.5.2 (via npm:^26.5.2)
│ ├─ @jest/core@npm:26.5.2 (via npm:^26.5.2)
│ └─ jest-config@npm:26.5.2 (via npm:^26.5.2)
│
├─ @bb/app-lib@workspace:app-lib
│ └─ jest@npm:26.5.2 (via npm:^26.5.2)
│
├─ @bb/graph@workspace:app-lib/graph/packages/app
│ ├─ @bb/apollo-test-util@workspace:app-lib/graph/packages/apollo-test-util (via workspace:app-lib/graph/packages/apollo-test-util)
│ └─ jest@npm:26.5.2 (via npm:^26.5.2)
│
└─ @bb/test-apollo-configuration@workspace:app-lib/graph/packages/test-apollo-configuration
└─ @bb/apollo-test-util@workspace:app-lib/graph/packages/apollo-test-util (via workspace:app-lib/graph/packages/
之后的逗号在做什么,并且所有括号都在做什么?
Some c.Id
我有点困惑来自C#。
谢谢。
解决方法
括号用于解构元组。 lambda表达式采用一个元组(一个元组和一些值)和一些其他值;然后返回另一个元组。
现在涉及的类型-由于名为b
的参数是布尔运算符&&
的操作数,因此它的类型必须为bool
。参数p
必须具有一个名为SelectedInnerRow
的属性,而该属性又应产生一个选项。此选项与参数c
的属性Id
的另一个选项值相等,因此整个表达式将返回布尔值的元组和参数c
不变。)>
(* Dummy types to make it work *)
type Foo = { SelectedInnerRow : int option }
type Bar = { Id : int }
(fun ((b,p),c) -> (b && p.SelectedInnerRow = Some c.Id,c))
(* val it : _arg1:(bool * Foo) * c:Bar -> bool * Bar *)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。