gpt4 book ai didi

haskell - 创建中缀函数

转载 作者:行者123 更新时间:2023-12-04 22:32:11 24 4
gpt4 key购买 nike

我可以定义这样的函数

method1 :: Int -> Int -> Int
method1 a b = a + b

main = print $ 1 `method1` 2

如果我不想在每次调用函数时都使用``,但又想以中缀形式使用它,我该怎么做?
method1 :: Int -> Int -> Int
method1 a b = a + b

main = print $ 1 method1 2

最佳答案

嗯,简短的回答是,你不能。想象一下,如果 a b c 可能是中缀,那么 b 会出现可怕的歧义。但是您可以定义一个运算符来为您执行此操作。这些中的任何一个都会起作用

a |+| b   = method1
(|+|) a b = method1 a b
(|+|) = method1

然后
a |+| b === a `method1` b === method1 a b

haskell 的中缀运算符允许的字符是有限的,请选择
:|!@#$%^&*-+./<>?\~

一个常见的库,lens,有很多操作符作为长名称的同义词。这是很常见的。不过请务必使用判断,否则你最终会得到比 Haskell 更多的 perl :)

关于haskell - 创建中缀函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18605158/

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