首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么ghc (Haskell)编译器找不到我导入的模块Data.Vector?我收到错误:找不到模块'Data.Vector‘

GHC (Glasgow Haskell Compiler) 是一个功能强大的 Haskell 编译器,它用于将 Haskell 代码转化为可执行程序。当出现错误 "找不到模块 'Data.Vector' "时,通常有以下几种可能的原因:

  1. 模块未正确导入:
    • 确保正确导入了 Data.Vector 模块。在代码中使用 import Data.Vector 来导入该模块。
    • 检查导入语句是否拼写正确,包括大小写和正确的符号。
    • 如果使用了不同的模块别名,确保在代码中使用了正确的别名。
  • 编译器未找到相关的库文件:
    • Data.Vector 模块可能依赖于其他库文件。请确保所需的库已经安装,并在代码中正确引用。
    • 在 GHC 编译器中,可以使用 -package 选项指定所需的库文件,例如 ghc -package vector myfile.hs
    • 如果使用了 Cabal 或 Stack 等构建工具,需要在项目的配置文件中声明所需的依赖库。
  • 模块未安装:
    • Data.Vector 模块可能是一个额外的扩展模块,需要单独安装。
    • 检查是否已经安装了名为 vector 的 Haskell 包,以确保 Data.Vector 模块可以被找到。
    • 在 GHCi 中,可以使用 :m +Data.Vector 命令来加载该模块。

关于 Data.Vector 模块的具体信息和使用方法,可以参考腾讯云的 Haskell 相关文档和资源,例如:

请注意,以上答案是基于不提及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行云计算品牌商的要求给出的。如果需要针对特定云计算品牌商的解决方案,请提供相应要求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

从惰性IO说起_Haskell笔记6

一.惰性I/O与buffer Haskell中,I/O也是惰性,例如: readThisFile = withFile "....而是逐chunk(64K一个chunk),一定程度上减少了所产生thunk数量 严格:位于Data.ByteString模块,不会产生任何thunk,表示一连串字节,所以不存在无限长strict...,编译器能够推断出random $ mkStdGen i所需类型是(Bool, StdGen) 这下有点(伪)随机意思了,因为random是个纯函数,所以只能通过换种子参数来得到不同返回值 实际上有更简单方式...putStr contents ) 在找不到文件,或者其他原因导致readFile异常时,会输出提示信息: $ runhaskell ioException.hs ....\n")) 为了把file变量传入errorHandler,我们多包了一层,看起来蠢蠢,而且能保留现场信息很有限 所以,像其他语言一样,我们能够从异常对象身上取出一些错误信息,例如: exists'

2.3K30

Haskell

这两种安装包,都包含了ghc。...ghc包含了三个主最要部分: ghc 编译器 ghci 交互式解析器和调试器 runghc 以脚本方式运行Haskell 而我们即将学习起点就是在ghci中来练习Haskell基本语法。...(注明:本文不是投资建议,仅仅是从Haskell引发出来Cardano项目) 是的,Cardano就是用Haskell来编写,(这样渣渣也仅仅是阅读和学习)Haskell用户大部分都是教授或者是数学领域牛人...Haskell模块,也有高阶函数,同样也有.操作符,更多时候你要弄明白是很多设计哲学,带着Why,How去学习这门语言。...觉得,这小小门入,就不耽误大家了,如果大家有兴趣,一定可以从(http://learnyouahaskell.com/)Haskell官方指定在线图书中找到属于自己乐趣。

85030

热爱函数式你,句句纯正 Haskell【类型篇】

调试 目前 Haskell 主要编译器GHC,下载地址,你可以创建 .hs 文件,用 Notepad++ 打开。 GHCi 是 GHC 一部分,可以解析、调试 Haskell 程序。..." :r 用来重新导入当前源代码文件; :cd 改变当前GHCi路径; Prelude> :cd C:\Users\User\Desktop :edit 用默认文本编辑器编辑当前导入文件...也可以新建一个文件:Helloworld.hs 然后 :l 引入,输入 main 运行: Prelude> :l D://ghc-haskell//test.hs *Main> main Hello,...强类型:可以帮助我们检查错误、对程序进行抽象(函数式编程关键)、具有文档说明作用。...看到这里,点个赞吧~ 掘文不易,还需鼓励~ 是掘金安东尼,输出暴露输入,技术洞见生活,再会~

94730

Python导入运行的当前模块报错

name__ == '__main__': tt() 以上导入模块编译器自动导入,运行后直接报错: ?...说没有找到这个模块,然后导入换成相对路径 ? 可以看到编译器是有报错提示,但是运行完全没有问题。 将路径换成相对路径试试呢? ? 很好,编译器是认识,但是不好意思运行报错 ?...没有问题 在第二个路径下找test.tt,应该也可以找到啊,为什么会提示找不到呢?...相对路径查找为什么找不到呢?在网上找了找,没有找到能够解决问题答案,那我就只好自己探究了。...再尝试一下刚才编译器做法: ? 正常: ? 相对路径经过尝试也是正常。 思考 那我就奇怪了,为什么换个模块运行就可以。就不能正常导入自己包模块吗?还是说python没有把运行路径当做包?

1.5K20

泛型和元编程模型:Java, Go, Rust, Swift, D等

这种方式虽然被Haskell类型类使用,但GHCGHCHaskell编译器)通过内联和特殊化,也可以做单态化优化。...Swift编译器能够在模块内和跨模块使用注解为@inlinable函数进行单态化处理(monomorphize)和内联泛型,以避免这些成本,其使用启发式算法来估算代码会膨胀多少。...使用宏就可以直接将用户写代码以token形式从输入粘贴到输出,如果用户代码在宏输出中引起编译器错误编译器输出错误信息将正确地指向用户代码所在文件、行和列,但如果宏生成了错误,那么错误信息将指向宏调用...例如如果在日志调用中使用了一个封装函数宏,而在封装函数实现中出错,编译器错误将直接指向错误所在代码,而非指向宏。...这一方式也让Swift编译器HaskellGHC编译器即使默认使用装箱来实现泛型,也可以单态化作为优化手段。 机器码单态化 单态化泛型下一步是在编译器后端中进一步推进。

3K30

【实测】python & pycharm & 终端 导入上级模块文件问题

经常有小伙伴提问,为什么有时候执行某个脚本就会报错: 报 no module named xxx 这种问题一定会有人会热心出来说,这个模块导入失败,没有找到这个模块。...现在让我们在pycharm中运行一下p2.py 结果: 可以看到,p1成功导入进来了。 然后我们再去终端执行p2,结果如下: 看到了吧,问题出现了。 这里大致给大家解释下原因。...如果导入并不是上级模块文件,而是同级/下级文件,那么就可以找到了。这也是为什么不推荐从上级文件夹/模块导入文件原因之一。...那现在我们再来看看之前报错: 注意,这里是报错t1模块找不到。 那么这个路径值,既不是写到t1本身,更不是写到t1下面的p1.py 。!!! 此时 你去终端执行p2.py仍然会报一样错误。...因为在培训中,有测试平台关联游离脚本设计,此时用shell命令去调用可插拔脚本,结果在终端执行时候,有的小伙伴路径写错就会提示找不到脚本父级模块等问题。

1.2K20

types 和 @types 是什么?

原因有: 它们大多数没有一个清晰主线,而是按照 API 组织章节,内容在**逻辑上**比较零散。 大多是“讲是什么,怎么用“,而不是”讲为什么,讲原理“。 大多数内容比较枯燥,趣味性比较低。...如果你想查一个包是否在 @type 下,可以访问 https://microsoft.github.io/TypeSearch/ 那么 TypeScript 是怎么找定义,什么情况会找不到定义而报类似上面举例子错误...如果找不到,则会去 node_modules 中@types (默认情况,目录可以修改,后面会提到)目录下去寻找对应包名模块声明文件。...当然你可以导入 @types 下导出定义,使得它们作用域变成你模块内部。.../typings"] } } types: TypeScript 编译器会默认引入typeRoot下所有的声明文件,但是有时候我们并**不希望全局引入所有定义**,而是仅引入部分模块

2.7K20

为什么 Haskell 是我们构建生产软件系统首选

在这篇文章中,将介绍 Haskell 一些突出特性,这些特性让它成为一种出色、具有行业水准语言,从而非常适合构建商业软件;还会解释为什么我们新项目考虑使用第一个工具往往就是它。...这并不是说上面这些都是在 Haskell 中永远不需要回答问题;这里说是当你需要解决其中一个问题时,编译器会抛出一个错误。...ghcid 会立即捕获程序员在使用 Python 或 PHP 之类语言编写 Web 服务时遇到许多运行时错误,并将它们显示为编译器错误。...4Haskell 程序具有出色性能,从而带来更快应用程序和更低硬件成本 GHC 是最常用 Haskell 编译器,可生成非常快速可执行文件,尤其是与其他通常用于应用程序开发语言(例如 PHP...默认情况下,GHCHaskell 编译器)在未处理值情况下不会抛出错误,但是 Haskell 生产项目的标准做法是使用 -Wall 和 -Werror 标志,这将打开几乎所有可用警告并将所有警告变成错误

1.4K10

听说你还没学Spring就被源码编译劝退了?30+张图带你玩转Spring编译

之所以写这么一篇文章是因为群里小伙伴在编译源码时碰到了问题,再加上笔者自身正准备做一个源码注释版本,恰好也需要重新编译一份代码,至于为什么要将源码编译到本地就不用多说了吧?...比如,你可以任意添加注释,一边读源码一边记笔记,甚至你可以修改源码,更好调试程序等等。但是如果你坚持通过导入依赖或者引入jar包方式来学习源码,觉得也可以,没有最好,只有最适合自己!...6、将代码导入到IDEA中 6.1、打开IDEA并选择导入项目 ? 6.2、选择导入一个Gradle项目 ? 6.3、配置导入项目 ?...可能出现问题 AnnotationCacheAspect找不到符号 在这个过程中你可能会碰到如下错误: ?...如果不勾选这个代理选项,则全部项目都使用Ajc编译器编译,可能会导致编译错误。 ? 指定需要使用Ajc编译项目 分别为spring-aop及spring-aspects添加Facets属性。

85020

软件随想录

任何C或Fortran程序复杂到一定程度之后,都会包含一个临时开发、不合规范、充满程序错误、运行速度很慢、只有一半功能Common Lisp实现。...练起来不难,没内力入门很快,网上到处是现成模块,据为己有后立刻等级提升。不过其致命缺陷导致你只能在准一流游走,用不好关键时刻还会反噬。...所以,格林斯潘说其实不完全对,对于大部分人而言,写一个软件,就像在写一个临时开发、不合规范、充满程序错误、运行速度很慢、只有一小部分功能编译器。...我们只是使用未经良好设计,原始而粗糙手段,用拼凑出来类,函数,if-else攒了一个只能用在特定场景编译器而已。 或者数据库。其实数据库也是编译器编译器也是数据库。看你怎么理解。...你不锻炼business vision,找不到产品能被人使用,客户愿意购买点,只能是打工角色(做到CTO也是打工角色);即便创业,也是一个理论上来说容易被替换角色。

82590

Python3.7中一种懒加载方式

最古老方式是在局部加载,而不是全局加载(例如在你定义函数内进行导入,而不是在模块顶部进行导入)。这种方式确实推迟了加载时间点,在你函数被运行时,函数里import语句才会进行真正加载。...使用这个延迟加载器有一个很好效果,它会提前检查要导入模块是否能找到,如果找不到会抛出一个ModuleNotFoundError错误,而真正被延迟只是模块加载过程。...优点是你没有额外付出什么努力,就让所有的模块都延迟加载了。缺点是因为你让模块默认延迟加载了,会导致一些需要即时加载模块逻辑发生错误(这也就是Python箴言中为什么说明确优于隐晦)。...新方法 在Python3.7中,模块上可以定义一个__getattr__方法,这让开发者可以定义一个函数,使得访问模块属性不存在时,导入一个模块作为当前模块属性。...这样做确实也有“发现导入错误被推迟”这个弊病,但是由于你导入还是全局,所以代码更容易控制。 这个代码本身并不复杂。 ? 你可以这样使用上面的代码 ?

1.4K00

Node.js 是怎么找到模块

大家好,是前端西瓜哥,今天我们来看看 Node.js 模块查找原理。 模块种类 模块有三种来源。 核心模块:Node.js 内置包。比如 http、fs、path; 自定义模块:NPM 包。...核心模块 首先分析标识符风格,如果是不是路径写法,我们会先找 Node.js 内置包有没有匹配,如果匹配,就导入对应模块,比如 require('http') 就能拿到一个 http 对象,可用于创建...如果找不到,会报 Cannot find module '包名' 错误。...之后被多次导入,不会再执行这个模块文件,而是直接取出对应 module.exports。 总结 画了个流程图,丢掉了一些细节(路径定位到目录后逻辑)。...是前端西瓜哥,欢迎关注,学习更多前端知识。 ----

2K10

Python3和Go成最大赢家?一张主流编程语言变迁图讲清程序员迁移模式

最喜欢例子就是 有趣空指针。Linux 内核有个编译器带来致命弱点,即 NULL 值“不可能”出现,因此没有对函数进行空指针检查。C 也是一团糟,其规格里有几个新编程语言所没有的致命错误。...还建议添加第五个分类,“配置编辑”。 该图也忽略了 Haskell。它可以在旁边用一个独立框来表示,和其他语言之间没有出入箭头,不过这没关系。...最近也这样做过。和怪异 Perl 不同,Python 2 类似 C 语言风格,其语法更简单。C 程序员很容易理解 Python C 模块(并可以编写新 Python 模块)。...如果在 Java 里调用,就需要处理非引用计数垃圾回收问题。 Python “os”模块提供了 C 系统调用及该调用能工作环境。程序员可以访问 C 语言中错误码并设置相应信号处理程序。...人们有不同想法:明显正确(“为什么会使用与 C 或 Java 一样让人痛苦语言呢?”),或明显错误(“可视化....Basic?开玩笑吧?”)。

1.2K30

StackOverflow上87万访问量问题:什么是“找不到符号”?

总之呢,是我们程序员搞鬼,把编译器搞懵逼了,它有点力不从心,很无辜。 ? 02、“找不到符号”是如何发生 1)拼写错误 程序员毕竟也是人,是人就会犯错。..."; System.out.println(str.length); // 找不到符号,变量 length 4)忘记导入类了 在使用第三方类库时候,切记要先导入类。...StringUtils.upperCase("abcd");// 找不到符号,类 StringUtils 不过,IDEA 中可以设置类自动导入,来避免这个错误。 ? 。。。。。。...03、如何修复“找不到符号”错误 一般来说,修复“找不到符号”错误很简单,要么根据 IDE 提示在编写代码时候直接修复;要么根据运行后输出堆栈日志顺藤摸瓜。 ?...在初学 Java 时候,老师要求我们用记事本来编写代码,然后在命令行中编译和运行代码,那时候真的叫一个痛苦啊。 ? 经常出现“找不到符号”错误,差点入门到放弃。

1.5K41

正确地使用 Kotlin internal

---- Kotlin internal 被定义为 "只有这个模块可以调用" 却在被打包为 jar 后可以被 Java 代码视为 public 调用, which 被广为诟病。...这个问题其实很好解决,不知道为什么之前都没有人发现。 方法就是欺负 Java 语法不行。 比如说我们有这个 Kotlin internal 函数。...internal fun zython() { } 如果 Kotlin 编译器能知道有 Java 代码跨模块调用了它,那么 Kotlin 编译器会说编译不过。...比如我在一个个人项目里某个文件就用了这种操作。 当然不是为了 internal ,只是为了好看。...结束 顺带一提,刚刚在复制这篇文章内容时候,谷歌翻译把代码给翻译出来了, internalfun 变成了 "内部乐趣",笑出声。 说完了。

3.1K31

2018最新win10 安装tensorflow1.4(GPUCPU)+cuda8.0+cudnn8.0-v6 + keras 安装CUDA莫名失败 导入tensorflow失败报错问题解决

这里推荐到MSDN告诉你下载,也感谢作者国内优秀作者雪龙狼前辈所做出贡献与牺牲。 ?..._bootstrap>", line 222, in _call_with_frames_removed ImportError: DLL load failed: 找不到指定模块。...或者导入tensorflow报错: ImportError: DLL load failed: 找不到指定模块。...亦或者导入tensorflow报错: 1、libcudnn.so.x 找不到情况:没有装 cuDNN 2、libcublas.so.x 找不到情况:版本不匹配, CUDA与 cuDNN 或者tensorflow...版本不匹配,等等 以上所有报错都经历过,并且别人教程都说是CUDA和CUDNN版本不匹配,或者VS2015/2017没有安装 ,的确是这样,结果都试了好多个版本都没有解决。

2.2K20
领券