用 PHP 写一个"编程语言"

php-lisp

php-lisp 是一个用PHP写的lisp解释器 (Just for fun)

简介

  1. 单元测试覆盖率 93%
  2. 全部使用 php declare(strict_types=1); 严格模式
  3. 核心解释器0依赖 打包好的 phar 文件只有 57K

安装

  1. 使用 composer 安装
    composer require php-lisp/php-lisp

  2. 下载 Phar 文件
    wget https://github.com/php-lisp/php-lisp/releases/download/v1.0.1/psp

  3. clone 代码
    git clone git@github.com:php-lisp/php-lisp.git
    cd php-lisp && composer install && ./bin/psp -h

使用

  1. 使用 REPL

    ./psp 
  2. 查看帮助

    ./bin/psp -h
  3. 执行 psp 代码

    echo '(define zero (lambda (f) (lambda (x) x))) 
      (define one (lambda (f) (lambda (x) (f x)))) 
      (define plus (lambda (m n) (lambda (f) (lambda (x) ((n f) ((m f) x)))))) 
      (define mult (lambda (m n) (lambda (f) (lambda (x) ((n (m f)) x))))) 
      (define xp (lambda (m n) (lambda (f) (lambda (x) (((n m) f) x))))) 
      (define pr (lambda (x) (do (echo x) x))) 
      (define prn (lambda (n) (do ((n pr) ".") (echo "\n")))) 
      (define two (plus one one)) 
      (define three (plus two one)) 
      (define six (mult two three)) 
      (define sixty-four (xp two six)) 
      (prn sixty-four)'  >> church-encoding.psp  && ./bin/psp church-encoding.psp

更多 Demo 查看 https://github.com/php-lisp/php-lisp/tree/...

参考

REPL
LISP
pharen
lispphp
mal
pEigthP

交流与反馈

Email: itwujunze#gamil.com

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 1

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!