在Haskell中,如何重载内置函数,例如!!?
我最初试图弄清楚如何重载内置函数!!以支持自己的数据类型.具体来说,!!是这样的类型:
[a] -> Int -> a
Run Code Online (Sandbox Code Playgroud)
我想保留它现有的功能,但也可以在类型签名看起来更像的地方调用它
MyType1 -> MyType2 -> MyType3
Run Code Online (Sandbox Code Playgroud)
我原本想要这样做,因为MyType1就像一个列表,我想使用!!运算符,因为我的操作非常类似于从列表中选择一个项目.
如果我重载了类似的东西,+我可以将我的函数实例添加到适用的类型类中,但我不认为这是一个选项.
我不相信我实际上甚至想要重载这个函数,但我仍然对它将如何完成感兴趣.实际上,关于是否超载运营商的评论!!甚至是一个好主意也将受到赞赏.