抑制标准 ML 中的“val it”输出

2023-11-27

我正在用标准 ML (SML/NJ) 编写一个“脚本”,根据我的喜好设置交互式环境。该脚本所做的最后一件事是打印一条消息,表明一切顺利。本质上,最后一行是这样的:

print "SML is ready.\n";

当我运行脚本时,一切顺利,但 SML 解释器显示来自print功能。

SML is ready.
val it = () : unit
-

由于我只是在屏幕上打印一些内容,因此如何抑制“val it = () : unit”输出,以便我看到的只是“SML 已准备好”消息,后跟解释器提示符?


要抑制 SML-NJ 提示和响应,请使用以下分配。

Compiler.Control.Print.out := {say=fn _=>(), flush=fn()=>()};
print "I don't show my type";

I don't show my type

虽然我不明白为什么返回类型的打印函数不好。

say 函数控制打印的内容。

以下 SML/NJ 注释中有一个更大的示例http://www.cs.cornell.edu/riccardo/prog-smlnj/notes-011001.pdf

useSilently 函数可用于加载文件但不显示任何输出 与加载相关

fun useSilently (s) = let
val saved = !Compiler.Control.Print.out
fun done () = Compiler.Control.Print.out := saved
in
Compiler.Control.Print.out := {say = fn _ => (), flush = fn () => ()}
(use (s); done ()) handle _ => done ()
end

这本质上是将 say 函数更改为不执行任何操作,然后在最后将其设置回来。

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

抑制标准 ML 中的“val it”输出 的相关文章

  • Windows系统 Emacs运行SML REPL控制台报错 “Searching for program: no such file or directory, sml“

    首先保证在smlnj官网 xff0c 下载并安装了SMLNJ xff0c 然后再检查Emacs是否安装sml mode xff08 需要注意的是Emacs的sml mode只是一种Emacs的编辑模式 xff0c 并不包含SML的编译器之类
  • NJ 的 ML 中的嵌套本地声明

    大家好 我有这段代码 local helper f i j local fun NTimesF f n int if n 1 then fn x gt f x else fn x gt f NTimesF f n 1 x in if i l
  • 如何组合相等的序列元素(函数式编程)?

    我想编写一个函数 它接受序列 并返回具有相同元素分组的序列 如 gt 我使用的是序列 而不是列表 但有些功能是相似的 我正在考虑使用的一些功能是map reduce tabulate filter append等 Reduce 接受一个关联
  • 查看 SML 完整列表

    有没有办法使用 SML 打印完整列表 通常在 SML 中发生的情况是 当我有太多元素时 它会打印前几个元素 并用 分隔 然后省略列表的其余部分 但我想查看完整的列表 有什么办法可以做到这一点吗 val a 1 2 3 4 5 6 7 8 9
  • SML 中绑定的价值?

    有人可以解释一下为什么评估后 and 的值一定是 16 这是正确的答案吗 我认为答案 3 是因为我们调用函数 f 并将值 1 和 2 作为函数 f 发送 但看不到值 5 和 10 但我想我错了 val x 1 val y 2 val f f
  • number_in_month 练习(SML 列表迭代)

    我需要获取日期列表和月份列表 并获取列出的任何月份中的日期数量总数 从而返回一个整数 我有一个先前定义的number in month函数 它接受一个列表 日期和一个月 并返回该日期中的日期数量 月 它已经过测试并且工作正常 我以此为基础
  • SML - 未绑定变量或构造函数

    我有下一个代码 datatype expr K of string Number2 of expr expr list datatype number Number1 of string Number3 of int fun append
  • 如何在 Isabelle 的 ML 级别轻松编写简单的策略?

    在 Isabelle 理论文件中 我可以编写简单的一行策略 如下所示 apply clarsimp simp split def split prod splits 然而 我发现 当我开始编写 ML 代码来自动化证明 生成 MLtactic
  • 未解析的弹性记录(需要知道此上下文中所有字段的名称)

    我一直在尝试创建一个以元组列表作为参数的函数 但我不断收到错误 未解析的弹性记录 需要知道此上下文中所有字段的名称 我的代码是 fun convert d map 1 d map 2 d 这基本上是试图将一对列表转换为一对列表 我还尝试声明
  • 通过索引变量访问 SML 元组

    问题很简单 如何在SML中使用索引变量访问元组 val index 5 val tuple1 1 2 3 4 5 6 7 8 9 10 val correctValue index tuple1 我希望有人能够提供帮助 提前致谢 不存在接受
  • 记录列表上的SML功能

    我试图声明一个函数 该函数将元组内的记录列表作为参数 但语法并不像我希望的那样直观 这就是我想做的 type Player id int privateStack int list fun foo id x xs Player player
  • 修复 OCaml 中的数据类型

    Haskell 中的以下数据类型如何用 OCaml 或 SML 表示 newtype Fix f In f Fix f 我已经在邮件列表上回答了这个问题 https sympa inria fr sympa arc caml list 20
  • fn 类型的 ml 函数:'a -> 'b

    功能 fn a gt b 现在 有没有可以定义并具有这种类型的函数 标准机器学习中该函数签名有两种可能的实现 一种使用异常 另一种使用递归 val raises a gt b fn a gt raise Fail some error In
  • SML/NJ:如何使用哈希表?

    我真的很想在 SML 中创建一个哈希表 似乎 SML NJ 中已经有一个结构 问题是 我该如何使用它 我还没有完全理解如何在SML中使用结构 并且我读过的书中的一些非常基本的示例给了我错误 我什至不知道如何纠正 所以使用HashTable结
  • StandardML 中的 y 组合器

    我知道我可以用 SML 编写 y 组合器 如下所示 首先声明一个新的数据类型来绕过由于循环而导致的类型不匹配 datatype a mu Roll of a mu gt a val unroll fn Roll x gt x 现在您可以轻松
  • 如何在SML中使用IntInf或LargeInt?

    我想通过此链接中的 pow 等函数在 SML 中执行大整数计算 http www standardml org Basis int inf html IntInf STR SPEC http www standardml org Basis
  • SML 中的柯里化匿名函数

    我有下面的功能并且它有效 fn x gt x 2 2 但这不起作用 fn x y gt x y 2 3 谁能告诉我为什么 或者给我一些提示让它发挥作用 fn x gt fn y gt x y 2 3 works fn只是没有相同的语法糖来定
  • SML 中的 'a 和 ''a 有什么区别?

    例如 fun example a a list list a 将有以下签名 a list gt a list 如果我定义不同但内容相同怎么办 例如 fun example a a list list a 它的签名是 a list gt a
  • 将命令行参数传递给 SML 脚本

    如何将命令行参数传递给 SML 脚本 我知道有一个CommandLine arguments 正确类型的函数 unit gt string list 但像这样调用解释器 sml script name sml an argument ano
  • number_in_month 练习(计算列表中的元素数)

    我一直在尝试使用 SML 对整数 3 元组列表中的元素进行计数 该列表等于给定的整数 但它不起作用 谁能帮我找出下面的代码有什么问题或者为我纠正它 fun number in month x int int int list m int i

随机推荐

  • 未记录的 CONVERT 样式 - 日期时间 23

    最近我偶然发现CONVERT函数样式 23 这非常方便 因为它为您提供 DATE 格式yyyy mm dd 问题是msdn中没有记录 在 CONVERT 上 F1 后来自 SSMS 帮助的链接 http msdn microsoft com
  • c# 以编程方式从 Exchange 服务器读取电子邮件

    当您在网络上搜索时 您会找到 如何以编程方式阅读电子邮件 的非常简单的答案 所有网站都解释了大部分与此页面相同的内容 http omegacoder com p 454 depends from Exchange server versio
  • UIFileSharingEnabled 仅在调试变体上

    我正在寻找一种方法来仅为调试变体启用 UIFileSharingEnabled 标志 这样我就可以更改文档文件夹的内容 但我不希望最终用户做同样的事情 我想我可以使用运行脚本来执行此操作 但不确定如何获取脚本的活动配置名称 解决了 if C
  • 异步的替代方案: false ajax

    我循环遍历一个数组 为每个数组运行 ajax 请求 我需要请求按顺序发生 这样我就可以接收最后一个请求并在成功时运行一个函数 目前我正在运行 简化 each array function i item ajax request item i
  • 中 ANYSIZE_ARRAY 的用途是什么?

    目的是什么ANYSIZE ARRAY 位于WinNT h 我在 2004 年看到一篇关于它的 MSDN 博客文章 但它对我来说没有意义 我假设你正在谈论这篇博文 当可变大小 编译时未知 数组是结构的一部分时 通常使用它 typedef st
  • SQL 视图上的 LINQ select 得到错误答案

    我有一个 SQL 视图 它生成 8 列的响应 它相当复杂 所以我不会在这里列出它 它不会对我试图理解的问题增加太多内容 当我直接使用此查询在 SQL Manager 中查询视图时 SELECT FROM GPPS dbo PartIndex
  • 如何将 R 对象的定义导出为纯文本以便其他人可以重新创建它?

    假设您在 R 中有这些数据 并且您想在 stackoverflow 上发布问题 为了让其他人能够最好地帮助您 如果他们能够拥有您的对象 数据框 矢量等 的副本来使用 那就太好了 假设您的数据位于名为 site data 的数据框中 gt s
  • 了解 Java 泛型中的通配符

    我不确定为什么以下代码中的最后一条语句是非法的 Integer应该是一个子类型 那么为什么我不能将它分配给b List
  • 在 matlab 中绘制一堆 3d 线的最有效方法

    我需要在 matlab 中绘制 3d 线列表 最快的方法是什么 我目前正在做类似的事情 edges is a MX2 matrix holding the list of edges points are the vertices coor
  • 在php/mysql中导入带有图像的excel文件

    我想制作一个导入脚本 允许用户将他们的 excel 文件 扩展名不重要 上传到我的 php 应用程序 应用程序应该识别一个项目列表 到目前为止一切顺利 这种情况下的困难在于 Excel 文件包含图像 我已阅读有关 phpexcel 库的信息
  • 使用 HTML5 将 1000 条记录插入 sqlite 时如何加快处理速度

    我是 HTML5 应用程序开发新手 在此 我想使用 HTML5 将 1000 条记录插入到 sqlite 数据库中 这个过程非常缓慢 如何在插入记录之前使用 BEGIN COMMIT 这样可以加快插入速度 请任何人指导我 提前致谢 请在ch
  • 反编译 APK 并在您的应用程序中使用其部分代码是否合法

    反编译 apk 并使用其部分代码是否合法 更具体地说 一个 URL 连接器 我还没学过 应用程序的其余部分 布局等 是我制作的 我可以发布此应用程序而不用担心法律问题吗 不管骗子说什么 反编译绝对合法 最多 您可能会因与软件相关的未经授权的
  • MySQL 是否有与 PHP 的 preg_replace 等效的工具?

    我有一个匹配 MySQL 中的字段 我认为我可以使用正则表达式 但 MySQL 似乎没有完成这项工作所需的功能 这是场景 我在 PHP 中有一个名为 url 的变量 假设此变量设置为字符串 article my article page 2
  • 最大化并行请求数 (aiohttp)

    tl dr 如何最大化可以并行发送的 http 请求数量 我正在从多个网址获取数据aiohttp图书馆 我正在测试它的性能 我发现在这个过程中的某个地方存在瓶颈 一次运行更多的网址并没有帮助 我正在使用这段代码 import asyncio
  • KineticJS 中的缩放和平移

    有没有一种方法可以使用 KineticJS 在画布上进行缩放和平移 我找到了这个图书馆Kineticjs视口 但只是想知道是否有其他方法可以实现这一目标 因为这个库似乎使用了很多额外的库 并且不确定哪些库是完成工作所绝对必需的 或者 我什至
  • Java 二进制兼容性问题:sun.font.FontManager 类变成接口

    我正在使用Lobo Java Web 浏览器库 它给了我一个例外 经过一些研究 我确定可能是由于该库是针对旧版本的 Java 进行编译的 代码如下 import java io IOException import org lobobrow
  • 特定时间和日期的 JavaScript 倒计时

    我正在使用 jQuery 插件将倒计时器放入我的网页中 目前控制计时器显示内容的代码是 插件的 JS 可以在这里查看 https github com objectivehtml FlipClock blob master js flipc
  • Flutter:TextEditingController 数组

    设置数组的最佳方法是什么TextEditingController扑扑中 我的意思是我需要获取一个值数组Textfield 1 到 n 值并发送到服务器 谁能帮助如何实现这一目标 I tried for int i 1 i lt 75 i
  • if(CONST==variable) 或 if(variable==CONST) 有什么区别?

    比较运算符的顺序有区别吗 define CONST VALUE 5 int variable if variable CONST VALUE Method 1 OR if CONST VALUE variable Method 2 这仅仅是
  • 抑制标准 ML 中的“val it”输出

    我正在用标准 ML SML NJ 编写一个 脚本 根据我的喜好设置交互式环境 该脚本所做的最后一件事是打印一条消息 表明一切顺利 本质上 最后一行是这样的 print SML is ready n 当我运行脚本时 一切顺利 但 SML 解释