Phel v0.36.0 – 运行于 PHP 之上的 Lisp,现支持数值塔(Numeric Tower)与一等公民 Var
摘要
Phel v0.36.0 已发布,为这款受 Lisp 启发的、编译为 PHP 的函数式编程语言引入了数值塔和一等公民 Var。
暂无内容
查看缓存全文
缓存时间: 2026/05/11 09:49
phel-lang/phel-lang 来源: https://github.com/phel-lang/phel-lang — 一种编译为 PHP 的函数式、受 Lisp 启发的语言。支持宏、持久化数据结构、REPL。
示例
(ns my.example)
(defn greet [name]
(str "Hello, " name "!"))
(println (greet "Phel"))
;; => Hello, Phel!
更多示例 →
数据处理管道
(def users [{:name "Ada" :age 36}
{:name "Bob" :age 17}
{:name "Cam" :age 41}])
(->> users
(filter #(>= (:age %) 18))
(map :name)
sort)
;; => ["Ada" "Cam"]
HTTP 响应
(ns app
(:require phel.http :as h))
(def req (h/request-from-globals))
(h/emit-response
(h/response-from-map
{:status 200
:headers {"Content-Type" "text/plain"}
:body (str "Hello " (:uri req))}))
宏
(defmacro unless [pred & body]
`(if (not ,pred)
(do ,@body)))
(unless (zero? 1)
(println "not zero"))
;; => not zero
(unless false
(println "ok"))
;; => ok
PHP 互操作性
(ns app)
(def now (php/new \DateTime))
(.format now "Y-m-d")
;; => "2026-04-20"
(def epoch (php/new \DateTime "1970-01-01"))
(.-days (.diff now epoch))
;; => 20564
入门指南
composer require phel-lang/phel-lang
./vendor/bin/phel init # 添加 `--minimal` 可生成单文件布局
生成 phel-config.php、src/phel/main.phel、tests/phel/main_test.phel。
./vendor/bin/phel run src/phel/main.phel # 运行
./vendor/bin/phel test # 测试
./vendor/bin/phel repl # REPL
./vendor/bin/phel build # 编译为 PHP
内联或标准输入求值:
./vendor/bin/phel eval '(+ 1 2)' # 输出 3
echo '(println "hi")' | ./vendor/bin/phel eval -
./vendor/bin/phel eval - < script.phel
文档
- 快速入门 — 安装、REPL、第一个脚本(5 分钟)
- 文档索引 — 所有指南,按用途分类
- phel-lang.org (https://phel-lang.org) — 教程、练习、博客
- 仓库规范 · Packagist (https://packagist.org/packages/phel-lang/phel-lang)
AI 编程助手
- resources/agents/ — Claude Code、Cursor、Codex、Gemini、Copilot、Aider
./vendor/bin/phel agent-install [platform] [--all]— 为你的助手安装技能文件
构建 PHAR
./build/phar.sh 会生成 build/out/phel.phar。
贡献指南
配置和工作流:CONTRIBUTING.md。
架构和代码审查要求:AGENTS.md。
相似文章
Pyrefly v1.0 正式发布
Pyrefly,一款开源 Python 类型检查器和语言服务器,现已发布 v1.0,标志着其达到生产就绪状态,同时带来了显著的性能提升,并被 PyTorch 和 NumPy 等主要代码库所采用。
Blaise – 一款面向 QBE 的现代、自举、无历史包袱的 Object Pascal 编译器
Blaise 是一款现代且自举的 Object Pascal 编译器,旨在通过提供单一语言模式、统一的内存模型以及基于 QBE 的原生代码生成,来消除遗留系统的负担。
vllm-project/vllm v0.20.1
vLLM v0.20.1 是一个小版本更新,针对这款流行的开源大语言模型推理和服务库,继续保持其高吞吐量和高效内存管理的核心优势。
vllm-project/vllm v0.21.0rc1
vLLM v0.21.0rc1 是高性能大语言模型推理和服务库的预发布更新,主要功能包括针对吞吐量、量化以及硬件支持的优化。
Mojo v1.0.0b1
Mojo,Modular 推出的高性能编程语言,已发布 1.0.0 beta 1 版本。