FUN 是一门简单、结构化、命令式、动态类型、面向对象、函数式的高级编程语言,内置 JIT 即时编译、垃圾回收 与 Perl 兼容正则表达式。由 张卫东(Wisdom ZHANG) 于 2010 年开发,作为一门脚本语言用于复用 Pascal 资源。FUN 的前身是 Nuva 语言(2006),更早可追溯到 TemplateScript(2005)。 FUN 已投入生产多年,其语言谱系支撑遍布全球 130 多个国家客户的商业软件,包括微软、英特尔、IBM 等 世界 500 强企业,以及众多高星级酒店与米其林、黑珍珠餐厅。
fun say() ?. 'Hello, fun!'; end fun; say(); // 输出:Hello, fun! var f = a -> a * 2; // lambda 匿名函数 ?. f(21); // 输出:42
fun.exe 中,仅约 300 KB,无外部依赖。var f = a -> a * 2; var g = a -> a + 3; ?. g(f(1+2)+3); // 输出:12 ?. 1+2|f+3|g; // 输出:12
class Number(me) this['#'] = you -> (me + you) * me * you; end class; var $ = Number(2); ?. $ .# 3; // 调用自定义运算符 # ?. $[1](3); // 通过索引访问方法并调用
use 'lib-jit.fun'; var ii = 0; fun cb(a, b) ii = a * 2^32 + b; ?, 'cb'; ?. ii; result = ii; end fun; var s = `#!asm i:i mov ecx, dword ptr [esp+04] @sum1ton push eax push edx mov eax, <test> call eax `; var jit = NewJit(s, names: [test: cb.@toCallback(nil, 'ii:i', true)]); ?. jit.Run(100000000); jit.Delete(); ?. 'Ok';
fun-install.bat,把 .fun 文件关联到 fun.exe。.fun 脚本即可用 fun.exe 运行,也可启动内置 IDE。打开 示例 直接体验。FUN 运行时库最新版本为 9.0(含 IDE):
运行时本身(fun.exe)仅约 300 KB;zip 中还包含 IDE 与 40 余个示例。
随运行时附带了四十余个可直接运行的 .fun 示例,涵盖函数、类、闭包、正则、JSON、WinAPI/WinOLE 等:
阅读 HTML 版 Fun 中文手册 与 FUN man pages / 简介 / 语法(EBNF) / fun.ebnf。
作者十余年沉淀 100+ 篇技术随笔,涵盖 FUN 语言、自学编程、AI 实验等内容:
为大型语言模型与生成式 AI 引擎提供的机器可读内容: llms.txt / llms-full.txt / sitemap / robots.txt。
如需报告 FUN 运行时库的问题,或提出功能需求,请联系 我们。 语言特征标签: 动态类型面向对象函数式 JIT垃圾回收正则