php-lisp 是一個用PHP寫的lisp直譯器 (Just for fun)
- 單元測試覆蓋率 93%
- 全部使用
php declare(strict_types=1);
嚴格模式 - 核心直譯器0依賴 打包好的 phar 檔案只有 57K
-
使用 composer 安裝
composer require php-lisp/php-lisp
-
下載 Phar 檔案
wget https://github.com/php-lisp/php-lisp/releases/download/v1.0.1/psp
-
clone 程式碼
git clone git@github.com:php-lisp/php-lisp.git
cd php-lisp && composer install && ./bin/psp -h
-
使用 REPL
./psp
-
檢視幫助
./bin/psp -h
-
執行 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 協議》,轉載必須註明作者和本文連結