Haskell:在 WinGHCi 中卸载模块

2024-01-08

我加载了两个模块(NecessaryModule1.hs 和 NecessaryModule2.hs 中的链接)Haskell:加载当前目录路径中的所有文件 https://stackoverflow.com/questions/10268692/haskell-loading-all-files-in-current-directory-path)。现在我想卸载NecessaryModule2.hs。我发现了一个“卸载”功能系统.插件.加载 http://hackage.haskell.org/packages/archive/plugins/1.5.1.4/doc/html/System-Plugins-Load.html但是它在 WinGHCi 中不起作用。我收到的错误消息是:

>unload NecessaryModule2

<interactive>:1:1: Not in scope: `unload'

<interactive>:1:8:
    Not in scope: data constructor `NecessaryModule2'

I tried

import System.Plugins.Load

但这没有用。有没有办法以上述方式卸载模块?

-------------------------------------------------- ------------------------------------------------

[对里卡多的回应]

你好,Riccardo,我尝试了你的建议,但无法让它在 WinGHCi 中工作。我有一个文件 NecessaryModule1.hs 如下:

module NecessaryModule1 where

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

我通过 ':cd' 命令转到文件的位置,然后执行以下操作:

> :module +NecessaryModule1

<no location info>:
    Could not find module `NecessaryModule1':
      it is not a module in the current program, or in any known package.

它是否正确?谢谢[编辑:请参阅下面的更正]

-------------------------------------------------- ------------------------------------------------

[以上更正]

只是为了解释为什么上面是不正确的(正如 Riccardo 所解释的),需要做的事情如下:

如果我们有一个文件Necessary Module1.js,如下所示:

--NecessaryModule1.hs
module NecessaryModule1 where

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

然后我们做:

> :load NecessaryModule1
[1 of 1] Compiling NecessaryModule1 ( NecessaryModule1.hs, interpreted )
Ok, modules loaded: NecessaryModule1.
> addNumber1 4 5
9
> :module -NecessaryModule1
> addNumber1 4 5

<interactive>:1:1: Not in scope: `addNumber1'

安装的模块

您必须使用 ghci 的命令才能加载(:module +My.Module)并卸载(:module -My.Module)安装的模块。您还可以使用:m代替:module为了少写一点,像这样:

Prelude> :m +Data.List
Prelude Data.List> sort [3,1,2]
[1,2,3]
Prelude Data.List> :m -Data.List
Prelude> sort [3,1,2]

<interactive>:1:1: Not in scope: `sort'

请记住,ghci 提示符始终会提醒您当前导入的模块:您可以查看该提示以了解要卸载的内容:m -Module.To.Unload.

具体文件

如果您尝试加载的模块未安装在系统中(例如,您编写了源代码并将文件保存在某处),则需要使用不同的命令,:load filename.hs。更快的方法是将文件的路径直接作为命令行参数传递给ghci, e.g ghci filename.hs。如果你跑winghci并且您将其关联到.hs扩展名,只需双击该文件即可。

在这两种情况下,您都会收到 ghci 提示,其中指定的模块已正确加载并导入到范围内(前提是您没有出现编译错误)。和以前一样,您现在可以使用:m [+/-] My.Module加载和卸载模块,但请注意,这与:load因为:module假设你已经:load编辑您想要进入/超出范围的内容。

例如,如果你有test.hs

module MyModule where
import Data.List

f x = sort x

您可以通过双击它来加载它(在带有 winghci 的 Windows 上),输入ghci test.hs在控制台中,或通过加载ghci并打字:load test.hs(注意相对/绝对路径)。

另一个有用的 ghci 命令是:reload,这将重新编译您之前加载的模块。当您更改源文件并且想要快速更新 ghci 中加载的模块时使用它。

Prelude> :load test.hs
[1 of 1] Compiling MyModule         ( test.hs, interpreted )
Ok, modules loaded: MyModule.
*MyModule> let xs = [1,2,3] in sort xs == f xs
True
*MyModule> :reload
Ok, modules loaded: MyModule.

:help将为您提供所有可用命令的完整列表。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Haskell:在 WinGHCi 中卸载模块 的相关文章

  • Haskell 中美元符号 ($) 和 id 函数之间有关系吗?

    这几天我正在读一篇评论莫纳德挑战 http mightybyte github io monad challenges 我强烈推荐给像我这样的 Haskell 初学者 我最终得到了这个线程 https news ycombinator co
  • 如何在 Yesod 中使用 CSS 框架?

    我想将 Blueprint CSS 框架与 Yesod 一起使用 有没有最佳实践 因为 Yesod 使用 CSS 模板 所以在我看来我不能直接使用 css 文件 我必须将它们重命名为 lucius files 吗 如何将 CSS 添加到 d
  • 整数转浮点数

    这段代码的工作原理 posToXY Float gt Float gt Integer posToXY a b do let y a b round y 但这不起作用 posToXY Integer gt Integer gt Intege
  • 访问函数中的环境

    In main我可以读取我的配置文件 并将其提供为runReader somefunc myEnv正好 但somefunc不需要访问myEnv读者提供 链中的下一对也没有提供 需要 myEnv 中某些内容的函数是一个微小的叶函数 如何在不将
  • Haskell:找不到模块“Data.List.Split”

    我正在尝试在 Haskell 中拆分列表 据我所知 最简单的方法是splitOn 但是这个函数需要Data List Split 所以我尝试运行import Data List Split在前奏曲中 但是 我收到以下错误 Could not
  • 如何为强制长度为 2^n 的向量类型定义可用的 Applicative 实例

    对于某些应用程序 我需要长度为 2 n 的向量 为了强制某些操作的长度匹配 我使用 ist 应用实例定义了我的类型 如下所示 LANGUAGE GADTs DataKinds FlexibleInstances FlexibleContex
  • Haskell 类型系统的细微差别

    我一直在深入了解 haskell 类型系统的本质 并试图了解类型类的要点 我已经学到了很多东西 但我在下面的代码片段上遇到了困难 使用这些类和实例定义 class Show a gt C a where f Int gt a instanc
  • 在 Haskell 中,为什么我必须在这段代码中使用美元符号?

    我仍在尝试破解这段代码 import Data Char groupsOf groupsOf n xs take n xs groupsOf n tail xs problem 8 x maximum map product groupsO
  • Haskell:是的,没有类型类。为什么是整数?

    我有一个关于 GHCi 如何假定整数类型的问题 我正在阅读 Learn you a Haskell 是 否类型的课程 如果您想阅读全文 这里有一个链接 http learnyouahaskell com making our own typ
  • 如何在 Haskell 中向右或向左移动列表的 1 个元素?

    嗨 我一直在寻找答案 但找不到 假设我们有一个像这样的列表 1 10 4 5 3 我怎样才能将 5 向左移动 使这个列表变成 1 10 5 4 3 我尝试过了swapElementsAt通过找到该元素的索引 但它看起来非常不足 swapEl
  • Haskell 泛化问题(涉及列表理解)

    假设我想知道a上的所有要点 x y 矩形内的平面has 我可以使用列表推导式来计算 如下所示 let myFun2D x y x lt 0 2 y lt 0 2 现在 如果我想为一个人完成同样的事情 x y z 空间 我可以采取同样的方式并
  • 使用 FoldLine 解析多个块

    对于这个简化的问题 我试图解析一个如下所示的输入 foo bar baz quux woo hoo xyzzy glulx into foo bar baz quux woo hoo xyzzy glulx 我尝试过的代码如下 import
  • Haskell 中列表列表的笛卡尔积

    给定一个长度列表的列表x所有子列表的长度都相同y 输出y x长度列表x包含每个子列表中的一项 例子 x 3 y 2 1 2 3 4 5 6 Output 2 3 8不同的输出 1 3 5 1 4 5 1 3 6 1 4 6 2 3 5 2
  • 如何在 Haskell 中漂亮地打印表格?

    我想在 Haskell 中漂亮地打印一个类似表格的数据结构 列列表 例如 Table StrCol strings a bc c IntCol ints 1 30 2 DblCol doubles 2 0 4 5 3 2 应该渲染类似 st
  • Traversable 类型类的用途

    有人可以向我解释一下类型类的目的是什么吗Traversable 类型类定义是 class Functor t Foldable t gt Traversable t gt where So Traversable is a Functor
  • Haskell:Data.Numbers.Primes 库在哪里?

    我尝试导入 Data Numbers Primes import Data Numbers Primes 伦哈斯克尔给了我 5 hs 1 8 Could not find module Data Numbers Primes Use v t
  • Haskell 对于 Web 应用程序来说足够成熟吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Haskell 标准库是什么?

    GHC专用库可以称为标准库吗 或者只有 Haskell 2010 报告中的那些才算数 许多 GHC 库可以通过 Haskell 报告中的函数来实现 可能与 C 绑定相结合 但其他语言依赖于 GHC 特定的扩展 因为语言报告中定义的当前 Ha
  • 不同编程语言中的浮点数学

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采
  • 如何在不声明新数据的情况下更改类型(String,Int)元组的 Ord 实例?

    我正在尝试对类型列表进行排序 String Int 默认情况下 它按字符串排序 然后按整数排序 如果字符串相等 我希望它是相反的 首先比较整数 然后如果相等则比较字符串 另外 我不想切换到 Int String 我找到了一种通过定义实例来实

随机推荐

  • AudioKit FFT 转换为 dB?

    第一次发帖 感谢社区的厚爱 我在用AudioKit并尝试向麦克风输入添加频率加权滤波器 因此我尝试了解来自 AudioKit AKFFTTap 的值 目前我正在尝试打印转换为 dB 值的 FFT 缓冲区 for i in 0
  • 如何自动缩放小部件以适应不同的屏幕尺寸?

    我有一个包含 ListTile 的卡片 ListView 在每个列表图块内我都有标题和副标题 我尝试在几部手机 android ios 上调试我的应用程序 对于其中一些手机 字幕文本会溢出卡片小部件 因为它们的屏幕较小 有没有办法根据屏幕尺
  • 点击按钮然后在android中自动发送电子邮件

    我有一个 xml 文件 用户将在其中输入电子邮件 然后当单击提交按钮时 我希望应用程序自动向该电子邮件发送一封包含特定内容的电子邮件 我可以从中获得帮助的任何好的教程或示例 package com example emailtest imp
  • 预加载取决于 Ruby on Rails 中的关联类型

    我有一个多态关联 belongs to resource polymorphic true where resource可以是多种不同的型号 为了简化问题 假设它可以是Order or a Customer 如果它是一个Order我想预加载
  • 安装pbr时出错

    我想在运行 OSX 10 8 5 的计算机上安装 openstack 客户端 作为先决条件 我需要安装 pbr 所以 我做了以下事情 git clone git github com openstack dev pbr git cd pbr
  • 对具有多个条件的元组列表进行排序

    我有一个包含 k 个元素的元组列表 我想先对元素 0 进行排序 然后对元素 1 进行排序 依此类推 我用谷歌搜索 但我仍然不太清楚该怎么做 会是这样的吗 list sort key lambda x x 0 x 1 x k 1 特别是 我想
  • 是否可以在 iPhone 应用程序图标中使用透明度?

    我为我的应用程序创建了一个 57 57 圆形图标 无光泽 其圆外具有透明度 我可以在模拟器和 iPhone 上成功安装该应用程序 它工作得很好 而且看起来很棒 但是 我可以向 Apple 提交透明的图标吗 他们会接受吗 我找不到任何图标具有
  • Cocos2d-x - 如何将CCLayer的一部分设置为透明?

    我是新手cocos2d x我需要你的帮助 我需要使图层的触摸部分透明 如何使图层的一部分透明 我曾想过使用 ClippingNode 但我找不到示例或文档 我使用C 谢谢 在所有cocos2d x版本中添加的TestCpp项目中 您可以找到
  • java 清单类路径与-classpath

    我试图找出可执行 jar 文件的一个奇怪问题 xyz jar 在清单文件 中有一个类路径 并且依赖于 abc jar 库 不幸的是 xyz jar 中的清单类路径不正确 为了避免灾难 我正在更新执行命令以使用 java classpath
  • 为什么 this.evaluate 不能正确返回 DOM 节点?

    我试图通过以下方式从网页获取对象evaluate 方法 这样我就可以在范围之外使用它evaluate 使用名称选择的元素symbol is a
  • “不存在”和“不存在”有什么区别?

    有什么区别not in and not exists在 Oracle 查询中 我什么时候使用not in And not exist 和 之间的不同NOT IN and 不存在变得清楚哪里有NULL结果中包含的值 例如 create tab
  • 使用硬件加速的自定义 Android 视图中的部分失效

    我的应用程序中有一个自定义视图 它填充了整个活动 在大多数情况下 当我想刷新控件时我调用invalidate 没有任何参数 但是 在某些情况下 我只更改控件的一小部分区域 我会调用invalidate Rect 以避免重绘整个屏幕 这很重要
  • 向 JTable 和数据库 (phpMyAdmin) 添加一行?

    initComponents try ResultSet res statement executeQuery SELECT FROM banh ResultSetMetaData RSMD res getMetaData NumberOf
  • 如何在 Xamarin.Forms 中删除(Android)应用程序标题栏?

    我是否可以在 Xamarin Forms 中删除应用程序的标题栏 我正在开发 Xamarin Forms Portable 项目 我尝试了很多解决方案 但都不起作用 我什至无法启动应用程序 第一次尝试我尝试将其添加到我的 AndroidMa
  • TypeScript:为同一项目中的不同文件声明不同的库/引用

    我有一个用 TypeScript 编写的项目 我同时使用 dom 和 Web Workers 因此我在某些文件中需要 webworker d ts 库 在其他文件中需要 dom d ts 我已经尝试将 webworker 添加到 tscon
  • Dynamo DB 中的自动递增计数器

    我正在尝试在 dynamo 数据库中实现哈希键的自动递增计数器 但我的代码对于并发事务失败 任何帮助实现该功能的帮助将不胜感激 我是堆栈溢出的新手 可能无法正确指定它 任何实施都会有所帮助 您有两种选择 使用 dynamo db 原子计数器
  • YAML 媒体类型?

    通过 HTTP 发送使用 YAML 构建的数据时最合适的媒体类型 正式的 MIME 类型 是什么 为什么 没有已注册的应用类型 http www iana org assignments media types application or
  • 为什么在单独的模型文件中使用 model.export ?

    在查看一些有关拆分模型数据的 Stackoverflow 答案时 我看到了两种不同的格式 见下文 var UserSchema mongoose Schema name String module exports mongoose mode
  • Java 是否可以在运行时实现接口?

    我正在开发一个项目 其中有很多由库创建的对象 并且我无法访问这些对象的创建过程 以下片段是说明我的问题的一个很好的例子 Code public class Clazz The contents of Clazz are irrelevant
  • Haskell:在 WinGHCi 中卸载模块

    我加载了两个模块 NecessaryModule1 hs 和 NecessaryModule2 hs 中的链接 Haskell 加载当前目录路径中的所有文件 https stackoverflow com questions 1026869