参考资料

  1. WordPress 是一个开源的内容管理系统
  2. MySQL多版本管理允许在同一环境中安装和运行多个MySQL版本
  3. Fedora 是由 Fedora 项目社区开发
  4. Stirling-PDF 是一个开源的 PDF 工具集
  5. Open Liberty是由IBM开发的开源轻量级Java应用服务器
  6. Jenkins 是一个开源的持续集成和持续交付(CI/CD)工具
  7. cpolar 是一款内网穿透工具
  8. DeepSeek-R1 是一款高性能的开源大语言模型,由深度求索(DeepSeek)团队研发

Hy(Hylang)是一种基于 Python 的 Lisp 方言,允许开发者使用 Lisp 语法编写代码

HyLang 简介

Hy(Hylang)是一种基于 Python 的 Lisp 方言,允许开发者使用 Lisp 语法编写代码,并编译为 Python 字节码运行。它兼容 Python 生态,可直接调用 Python 库。

特点

  1. Lisp 语法:支持括号表达式、宏等 Lisp 特性。

  2. 无缝 Python 互操作:可直接导入和使用 Python 模块。

  3. 动态编译:Hy 代码在运行时转换为 Python AST(抽象语法树)。

  4. 跨平台:支持 Windows、Linux、macOS。

  5. 宏系统:支持 Lisp 风格的宏编程。

最新更新内容及时间

  • 最新版本:0.28.0(截至 2024 年 3 月)

  • 更新内容

    • 改进 Python 3.11+ 兼容性

    • 优化宏展开性能

    • 修复 REPL 交互问题

镜像下载地址

官网地址

文档地址

Docker 安装示例

# 拉取官方镜像
docker pull hylang/hy

# 运行 REPL
docker run -it hylang/hy

# 运行 Hy 脚本
docker run -v $(pwd):/src -w /src hylang/hy your_script.hy

.hy 文件设置教程

  1. 基本语法

    (print "Hello, Hy!")
    (defn greet [name] (print (+ "Hello, " name)))
    (greet "World")
  2. 导入 Python 模块

    (import math)
    (print (math.sqrt 16))
  3. 宏定义

    (defmacro infix [a op b] `(~op ~a ~b))
    (print (infix 1 + 2))  ; 输出 3

常见错误及解决方法

  1. SyntaxError(语法错误)

    • 检查括号是否匹配,例如 (print "Hello" 会报错,应为 (print "Hello")

  2. NameError(未定义变量)

    • 确保变量或函数已定义,例如:

      (defn foo [] (print x))  ; 若 x 未定义会报错
  3. Python 模块导入失败

    • 确保模块已安装,例如:

      pip install numpy
      (import numpy)  ; 需先安装
  4. 宏展开错误

    • 检查宏定义是否正确,例如:

      (defmacro bad-macro [] `(print x))  ; 缺少反引号或符号
  5. REPL 交互问题

    • 更新 Hy 版本或使用 hy --repl-output-fn=repr 避免输出格式问题。


以上为 HyLang 的完整信息,涵盖安装、配置、示例及常见问题。