Euphoria - 库例程



提供了大量的库例程。有些内置于解释器中,ex.exe、exw.exe 或 exu。其他的是用 Euphoria 编写的,您必须包含euphoria\include目录中的一个 .e 文件才能使用它们。

为了指示可以传入和返回哪种类型的对象,使用了以下前缀:

序号 前缀和描述
1

x

通用对象(原子或序列)

2

s

序列

3

a

原子

4

i

整数

5

fn

用作文件号的整数

6

st

字符串序列或单字符原子

预定义类型

除了用这些类型声明变量之外,您还可以像调用普通函数一样调用它们,以测试某个值是否为某种类型。

integer 测试对象是否为整数
atom 测试对象是否为原子
sequence 测试对象是否为序列
object 测试对象是否为对象(始终为真)

序列操作

length 返回序列的长度
repeat 将对象重复 n 次以形成长度为 n 的序列
reverse 反转序列
append 在序列末尾添加一个新元素
prepend 在序列开头添加一个新元素

搜索和排序

compare 比较两个对象
equal 测试两个对象是否相同
find 在序列中查找对象 - 从元素编号 1 开始搜索
find_from 在序列中查找对象 - 从任何元素编号开始搜索
match 查找另一个序列的切片作为序列 - 从元素编号 1 开始搜索
match_from 查找另一个序列的切片作为序列 - 从任何元素编号开始搜索
sort 将序列的元素排序为升序
custom_sort 根据您提供的比较函数对序列的元素进行排序

模式匹配

lower 将原子或序列转换为小写
upper 将原子或序列转换为大写
wildcard_match 匹配包含 ? 和 * 通配符的模式
wildcard_file 将文件名与通配符规范匹配

数学

这些例程可以应用于单个原子或值序列。

sqrt 计算对象的平方根
rand 生成随机数
sin 计算角度的正弦
arcsin 计算具有给定正弦的角度
cos 计算角度的余弦
arccos 计算具有给定余弦的角度
tan 计算角度的正切
arctan 计算数字的反正切
log 计算自然对数
floor 向下舍入到最接近的整数
remainder 计算一个数除以另一个数的余数
power 计算一个数的幂
PI 数学值 PI (3.14159...)

按位逻辑运算

这些例程将数字视为二进制位的集合,并且对数字二进制表示中相应的位执行逻辑运算。

没有用于将位左移或右移的例程,但您可以通过乘以或除以 2 的幂来实现相同的效果。

and_bits 对相应的位执行逻辑 AND
or_bits 对相应的位执行逻辑 OR
xor_bits 对相应的位执行逻辑 XOR
not_bits 对所有位执行逻辑 NOT

文件和设备I/O

要对文件或设备进行输入或输出,您必须首先打开文件或设备,然后使用以下例程读取或写入它,然后关闭文件或设备。open() 将为您提供一个文件号,用作其他 I/O 例程的第一个参数。某些文件/设备会自动为您打开(作为文本文件):

  • 0 - 标准输入
  • 1 - 标准输出
  • 2 - 标准错误
open 打开文件或设备
close 关闭文件或设备
flush 将缓冲数据刷新到文件或设备
lock_file 锁定文件或设备
unlock_file 解锁文件或设备
print 在一行上打印 Euphoria 对象,使用大括号和逗号 {,,} 来显示结构
pretty_print 以易于阅读的形式打印 Euphoria 对象,使用多行和适当的缩进
? x print(1, x) 的简写
sprint 将打印的 Euphoria 对象作为字符串序列返回
printf 格式化打印到文件或设备
sprintf 格式化打印作为字符串序列返回
puts 将字符串序列输出到文件或设备
getc 从文件或设备读取下一个字符
gets 从文件或设备读取下一行
get_bytes 从文件或设备读取接下来的 n 个字节
prompt_string 提示用户输入字符串
get_key 检查用户按下的键,不要等待
wait_key 等待用户按下键
get 从文件读取任何 Euphoria 对象的表示形式
prompt_number 提示用户输入数字
value 从字符串读取任何 Euphoria 对象的表示形式
seek 移动到打开文件内的任何字节位置
where 报告打开文件中的当前字节位置
current_dir 返回当前目录的名称
chdir 更改为新的当前目录
dir 返回目录中所有文件的完整信息
walk_dir 递归遍历目录中的所有文件
allow_break 允许或不允许 control-c/control-Break 终止您的程序
check_break 检查用户是否按下了 control-c 或 control-Break

鼠标支持 (DOS32 和 Linux)

在 Windows XP 上,如果您希望 DOS 鼠标在(非全屏)窗口中工作,则必须禁用 DOS 窗口的属性中的快速编辑模式。

get_mouse 返回鼠标“事件”(点击、移动)
mouse_events 选择要监视的鼠标事件
mouse_pointer 显示或隐藏鼠标指针

操作系统

time 自过去某个固定点以来的秒数
tick_rate 设置每秒的时钟滴答数 (DOS32)
date 当前年份、月份、日期、小时、分钟、秒等
command_line 用于运行此程序的命令行
getenv 获取环境变量的值
system 执行操作系统命令行
system_exec 执行程序并获取其退出代码
abort 终止执行
sleep 暂停执行一段时间
platform 找出我们正在运行哪个操作系统

特殊的机器相关例程

machine_func 具有返回值的专门内部操作
machine_proc 没有返回值的专门内部操作

调试

trace 动态地打开或关闭跟踪
profile 动态地打开或关闭分析

图形和声音

以下例程允许您在屏幕上显示信息。在 DOS 中,PC 屏幕可以置于多种图形模式之一。

以下例程适用于所有文本和像素图形模式。

clear_screen 清除屏幕
position 设置光标行和列
get_position 返回光标行和列
graphics_mode 选择新的像素图形或文本模式 (DOS32)
video_config 返回当前模式的参数
scroll 向上或向下滚动文本
wrap 控制屏幕右边缘的行换行
text_color 设置前景色
bk_color 设置背景色
palette 更改一个颜色编号的颜色 (DOS32)
all_palette 更改所有颜色编号的颜色 (DOS32)
get_all_palette 获取所有颜色的调色板值 (DOS32)
read_bitmap 读取位图 (.bmp) 文件并返回调色板和像素的二维序列
save_bitmap 创建一个位图 (.bmp) 文件,给定一个调色板和一个像素的二维序列

get_active_page 返回当前正在写入的页面(DOS32)
set_active_page 更改当前正在写入的页面(DOS32)
get_display_page 返回当前正在显示的页面(DOS32)
set_display_page 更改当前正在显示的页面(DOS32)
sound 在PC扬声器上发出声音(DOS32)

以下例程仅在文本模式下工作

cursor 选择光标形状
text_rows 设置文本屏幕上的行数
get_screen_char 从屏幕获取一个字符
put_screen_char 在屏幕上放置一个或多个字符
save_text_image 保存文本屏幕上的矩形区域
display_text_image 在文本屏幕上显示图像

以下例程仅在像素图形模式下工作(DOS32)

pixel 设置像素或一组像素的颜色
get_pixel 读取像素或一组像素的颜色
draw_line 用线连接一系列图形点
polygon 绘制一个n边形
ellipse 绘制椭圆或圆形
save_screen 将屏幕保存到位图(.bmp)文件
save_image 保存像素图形屏幕上的矩形区域
display_image 在像素图形屏幕上显示图像

多任务处理

task_clock_start 重新启动调度程序的时钟
task_clock_stop 停止调度程序的时钟
task_create 创建一个新任务
task_list 获取所有任务的列表
task_schedule 调度一个任务以执行
task_self 返回当前任务的任务ID
task_status 任务的当前状态(活动、挂起、终止)
task_suspend 挂起一个任务。
task_yield 放弃控制权,以便调度程序可以选择一个新的任务来运行。
广告