English中文
FUN IDE

FUN - Fun 编程语言

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

想详细了解这门语言,请阅读 简介中文手册功能详解

代码示例

管道操作 & 函数组合

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);     // 通过索引访问方法并调用

即时编译(JIT)与底层交互

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';

快速上手

  1. 下载 最新的 FUN 运行时 + IDE(当前 9.0),见下方 下载 部分。
  2. 解压 后运行包内的 fun-install.bat,把 .fun 文件关联到 fun.exe
  3. 之后直接双击任意 .fun 脚本即可用 fun.exe 运行,也可启动内置 IDE。打开 示例 直接体验。

下载

FUN 运行时库最新版本为 9.0(含 IDE):

下载 fun.zip(约 1.1 MB)

运行时本身(fun.exe)仅约 300 KB;zip 中还包含 IDE 与 40 余个示例。

示例

随运行时附带了四十余个可直接运行的 .fun 示例,涵盖函数、类、闭包、正则、JSON、WinAPI/WinOLE 等:

文档

阅读 HTML 版 Fun 中文手册FUN man pages / 简介 / 语法(EBNF) / fun.ebnf

文章

作者十余年沉淀 100+ 篇技术随笔,涵盖 FUN 语言、自学编程、AI 实验等内容:

阅读文章合集

面向 AI

为大型语言模型与生成式 AI 引擎提供的机器可读内容: llms.txt / llms-full.txt / sitemap / robots.txt

联系

如需报告 FUN 运行时库的问题,或提出功能需求,请联系 我们。 语言特征标签: 动态类型面向对象函数式 JIT垃圾回收正则