gpt4 book ai didi

haskell - 如何在 Haskell 中编写符号的限定名称?

转载 作者:行者123 更新时间:2023-12-03 01:46:36 26 4
gpt4 key购买 nike

两个不同的 Haskell 模块之间存在名称冲突,它们想要使用相同的中缀运算符 ( <*> )。 Haskell 98 报告指出

modid.varsym

是允许的,但我无法让它工作。全部内容如下:Test.hs :

module Test
where

import qualified Test2 as T

three = T.<*>

Test2.hs :

module Test2
where
(<*>) = 3

但是尝试编译会出现错误消息:

Test.hs:6:12: parse error on input `T.<*>'

我试过T.(<*>)但这也行不通。

如何引用 import qualified 导入的模块中定义的符号名称?

最佳答案

尝试

three = (T.<*>)

将中缀运算符定义为整数很奇怪。让我们考虑 \\ (集合差运算符):

import qualified Data.List as L

foo = [1..5] L.\\ [1..3] -- evaluates to [4,5]
diff = (L.\\)

正如您在上面看到的,L.\\ 是一个合格的中缀运算符;它仍然作为中缀运算符工作。要将其用作值,请将整个内容放在括号中。

关于haskell - 如何在 Haskell 中编写符号的限定名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/741184/

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