gpt4 book ai didi

F# 三参数中缀运算符

转载 作者:行者123 更新时间:2023-12-04 09:30:08 24 4
gpt4 key购买 nike

如何使用三参数中缀运算符?
例如:基函数是let orElse labelFunc p1 p2 = {...}和运算符(operator) let ( <|> ) = orElse现在,对于非中缀版本,这很好用:List.reduce ((<|>) labelFunc) parserList .
我可以以某种方式使用它仍然“固定”吗?例如:(p1 (<|> labelFunc) p1)除了在此处使用非中缀版本之外,也不起作用或任何其他组合。

最佳答案

首先,我认为最好限制您在代码中使用的自定义运算符的数量,因为自定义运算符使 F# 代码难以阅读。 F# 允许您定义自定义运算符,但它并不是专门设计来使这成为一种很好的体验 - 它对某些特定于小型域的语言(如解析器组合器)有意义,但对于其他的就没有什么意义了。
因此,虽然我不建议使用它,但有一个奇怪的技巧可以用来编写类似 p1 (<op> l) p2 的内容。 , 即使 <op>用另外两个自定义运算符中缀并替换括号:

let (</) a b = a, b
let (/>) c d = c, d
let (!) f = f

1 </ !10 /> 2
此示例仅生成一个包含所有三个参数的元组,但如果您在 </ 中实现您的逻辑运营商,它实际上会做你想做的事情。但正如我所说,我不会这样做:-)。

关于F# 三参数中缀运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62882505/

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