这是 runhugs 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
Hugs, runhugs, ffihugs - Hugs 98,函数式编程系统
概要
拥抱 [ 选项 [ 模块 ]
拥抱 [ 选项 ] 模块 [ ARGS ]
拥抱 [ 选项 ] 模块 [ 编译器参数 ] ...
商品描述
Hugs 是 Haskell 的解释器,Haskell 是一种标准的非严格函数式编程语言。
Hugs 实现了几乎所有的 Haskell 98 标准,除了相互递归
模块。 名字 拥抱 是一个助记符 哈斯克尔 用户的 戈弗 系统.
解释器开始使用 拥抱 命令。 处理选项后,它加载
标准模块 序幕 以及命令行中列出的任何其他模块。
每个 Haskell 模块都存储在一个单独的文件中。 加载模块时 姓名, 拥抱
替换每个`.' 在 姓名 用`/' 并在其搜索的每个目录中查找
路径(见 -P 下 配置) 用于文件 姓名.hs 和 姓名.lhs. (公认的后缀
可以使用 -S 选项,如下所述 配置.) 它也尝试 姓名 作为一个
文字文件名。 以“结尾的文件.lhs" 被视为文字脚本。
配置
一些选项切换为 + or - 分别打开或关闭它们。
语言 conformance
+98 只接受 Haskell 98(不能在 拥抱; 默认值:开)。 转这个
off 启用几个特殊的 Hugs 扩展,这些扩展在 拥抱 98
用户 用户手册.
+o 允许重叠实例(一个拥抱扩展;默认值:关闭)
+O 允许不安全的重叠实例(Hugs 扩展;默认值:关闭)
+H 允许“此处文档”(Hugs 扩展;默认值:关闭)
模块 装载
+l 处理名称不以 ` 结尾的文件.hs'也不是`.lhs' 作为文字脚本
(默认:关闭)
+. 在加载模块时打印点以显示进度(默认:关闭)
+q 加载模块时不打印任何内容以显示进度(默认值:打开)
+w 始终显示加载了哪些文件(默认:关闭)
口语 评估
+s 每次评估后打印减少/单元格的数量(默认值:关闭)
+t 每次评估后打印类型(默认:关闭)
+T 在打印类型之前应用 Haskell 默认规则(默认值:关闭)
+g 打印每次垃圾收集后恢复的单元格数(默认值:关闭)
+Q 打印时限定名称(默认:关闭)
+k 完整显示种类错误(默认:关闭)
+u 使用 ”显示" 显示结果(默认:开启)
+I 显示IO程序的结果(默认:关闭)
参数
其他选项(其中 - 可以替换为 +,没有区别的选择)是:
-hNUM 设置堆大小(不能在 拥抱; 默认值:250K)
-pSTR 将提示字符串设置为 STR (默认:`%s> ')。 任何 %s 在提示中将被替换
按当前模块名称。
-rSTR 将重复最后一个表达式字符串设置为 STR (默认: $$).
-PSTR 将源文件的搜索路径设置为 STR, 这应该是一个冒号分隔的列表
目录。 此列表中的空条目将被先前的搜索替换
小路; 空值 STR 表示默认路径。 任何发生 {拥抱} 在这个字符串中
扩展到Hugs库目录,即 /usr/lib/拥抱。 同样的, {家}
扩展到您的主目录( 主页 环境变量)。
表单条目`目录/*' 表示的所有直接子目录
目录. 默认值为
.:{Home}/lib/hugs/packages/*:/usr/local/lib/hugs/packages/*:{Hugs}/packages/*:{Hugs}/libraries
-SSTR 将冒号分隔的源文件后缀列表设置为 STR (默认: .hs:.lhs)。 一
此列表中的空条目将被前一个后缀列表替换; 空值 STR
表示默认列表。
-ESTR 使用给出的编辑器设置 STR (默认值: EDITOR 环境
多变的)。 任何出现 %d 和 %s 在编辑器选项中被替换为
分别是要编辑的文件的起始行号和名称。 普通的
设置是“vi +%d %s".
-cNUM 在类型检查器中将约束截止限制设置为 NUM (默认值:40)。
-FCMD 将源文件的预处理器过滤器设置为 CMD (默认未设置)。 代替
直接读取源文件, 拥抱 将读取标准输出 CMD 运行
源文件名作为参数。
-XSTR 字符串 STR 被解释为一个选项字符串。 这很有用,例如,
用于将多个参数传递给 拥抱 育明在 #! 脚本。
指令
加载解释器后,可以使用以下命令:
:加载 [模块] 清除除 prelude 之外的所有模块,并加载指定的模块。
:还 模块 阅读附加模块。
:重新加载 最后重复 加载 命令。
编辑: 文件 编辑 文件.
编辑: 编辑最后一个文件。
:模块 模块 设置用于评估表达式的模块。
表达式 评估表达式。
:类型 表达式 打印类型的表达式。
:? 显示此命令列表。
:放 选项 设置命令行选项。
:放 有关命令行选项的帮助。
:名字 [模式] 列出当前在与任何 shell 样式模式匹配的范围内的名称。
:信息 名称 描述命名对象。
:浏览 模块 浏览导出的名称 模块.
:找 姓名 编辑包含定义的文件 姓名.
:!命令 壳逃逸。
:光盘 DIR 更改目录。
:GC 强制垃圾收集。
:版 打印拥抱版本。
: 放弃 退出拥抱翻译。
任何命令都可以缩写为 :c 协调 c 是全名中的第一个字符。 在
大多数系统,你也可以退出 拥抱 通过键入文件结束符 (^D)。
请注意,中断键(大多数系统上的 ^C)可以在使用时随时使用
拥抱 放弃读取函数定义文件的过程或
表达式的评估。 当检测到中断时, 拥抱 打印字符串
"{打断!}"并打印提示,以便可以输入更多命令。
单机版 美加学院课程
这个 拥抱 command 是一个可执行 Hugs 脚本的解释器,它必须包含一个
哈斯克尔 主要 模块。 例如,可执行文件 hello 可能包含行
#!/usr/bin/runhugs +l
> 模块 主要 协调
> 主 = 放置Str “你好, 世界\n"
当这个文件被执行时, 拥抱 将调用 主 功能。 给出的任何论点
命令行将通过 获取参数.
需要注意的是 #! 只将一个 orgument 传递给脚本。 这 -X 选项可用于获取
围绕这个。
C 接口
在支持动态链接的架构上, 拥抱 执行部分 哈斯克尔 98
国外 功能 接口 (FFI) 允许 Haskell 函数调用 C 例程。 (在
x86、PowerPC 和 Sparc 架构,所有 国外 进口s 是支持的; 在其他人身上,
仅由 静止 提供了导入。)包含此类的模块 国外 声明必须是
使用编译 拥抱 使用前的命令 拥抱. C 的附加参数
编译器可以通过 编译器参数s。 例如,假设你有一些 C
功能 测试.c 以及这些函数的一些 FFI 声明 测试文件 和代码
in 测试.c 需要编译 -lm. 然后你会编译模块
命令
拥抱 测试文件 测试.c -lm
生成目标文件 测试.so. 那么当 拥抱 负载 测试文件,它也会加载
测试.so.
在标准 FFI 中,每个 国外 进口 声明应该命名一个 C 头文件
包含函数的原型。 因为这往往很麻烦, 拥抱
提供以下附加选项:
-iSTR 为生成的 C 文件指定一个包含。 包含字符串应该是
可以跟随的东西“的#include" 在 C 程序中,如
拥抱 '-一世' '-i"mydefs.h"' 测试文件 测试.c -lm
环境
拥抱旗
附加选项 拥抱, 在命令行上的任何给定之前处理。
哈吉斯迪尔
Hugs 库目录(默认: /usr/lib/拥抱).
EDITOR 默认编辑器,如果 -E 没有给出。
SHELL 用于指定被调用的shell :! 命令。
使用 onworks.net 服务在线使用 runhugs