参考资料

  1. Bash(Bourne-Again SHell)是 Unix/Linux 系统默认的命令行解释器
  2. OnlyOffice是一款开源办公套件
  3. Matomo(原名 Piwik)是一个开源的网站分析平台
  4. docker镜像源配置详细说明以及案例
  5. SimpleDocker 是一个轻量级 Docker 管理工具
  6. PHP-ZendServer 是由 Zend Technologies 开发的一个企业级 PHP 应用服务器
  7. SuiteCRM是一款开源的企业客户关系管理(CRM)软件
  8. docker安装mysql详细说明以及案例

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 的完整信息,涵盖安装、配置、示例及常见问题。