Euphoria - 库例程

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

为了指示可以传入和返回什么类型的对象,使用以下前缀 −

S.No 前缀 & 描述
1

x

一般对象(原子或序列)

2

s

一个序列

3

a

一个原子

4

i

一个整数

5

fn

用作文件编号的整数

6

st

字符串序列,或单字符原子

预定义类型

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

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

序列操作

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 − 对相应位进行逻辑与
or_bits − 对相应位进行逻辑或
xor_bits − 对相应位进行逻辑异或
not_bits − 对所有位执行逻辑非

文件和设备 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 − output a string sequence to a file or device
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 − dynamically turns tracing on or off
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 − 产量控制,以便调度程序可以选择要运行的新任务。