F# TupleGet ActivePattern 用法
我想知道如何在使用引号时从 F# 中的元组表达式中提取值。例如,如果我有一个引用 <@ fst(sample_tuple) @>
,如何解构元组引用以获取值?
I would like to know how to extract values out of a tuple Expression in F# when using quotations. If for example, I have a quotation <@ fst(sample_tuple) @>
, how do I deconstruct the tuple quotation to get out the values?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
unquote 库 [1] 包含一个 eval 函数,据报道该函数比 FSharp.PowerPack 更快。
[1] http://code.google.com/p/unquote
The unquote library [1] contains an eval function that is reported as being faster than the FSharp.PowerPack.
[1] http://code.google.com/p/unquote
从向 FSI 发送此类报价的输出中可以看出,您的报价不使用
TupleGet
,而是使用对通用Fst< 的
Call
/code> 方法,因此您无法使用TupleGet
对其进行解构。像
<@ 这样的引用将sample_tuple 与 | 匹配一个,_-> @>
将使用TupleGet
提取第一个元素。As you can see from the output of sending a quotation like that to FSI, your quotation doesn't use
TupleGet
, it uses aCall
to the genericFst
method, so you can't destructure it usingTupleGet
.A quotation like
<@ match sample_tuple with | a, _ -> a @>
would useTupleGet
to extract the first element.