@hackage lang0.2.2

A Lisp

  • Categories

    • License

      AGPL-3.0-only

    • Maintainer

      zaomir@outlook.com

      Lottery factor: 0

      Uploader: Zaoqi

    • Versions

    核心

    Copyright (C) 2014-2018 Zaoqi zaomir@outlook.com

    這只是核心,不是直接用來solve problems · make languages的。

    因爲

    • Idris的Lazy有Bug
    • Shen不支持中國字
    • Agda std-lib缺少一些東西
    • Scheme,Racket不能很好的編譯到ECMAScript
    • Clojure-JVM不支持Tail Call Optimization
    • F#是Microsoft的

    所以只能用GHC-Haskell或Ocaml或Coq。

    因爲杭十五中西溪中学差等原因,我使用傳統寫法。我聽說臺灣不使用這種寫法。

    文档

    歷史/特性

    某些東西被意外毀了,所以我可以修改歷史。雖然被修改過,我說以下內容是事實。

    版本

    用易語言寫的一個版本

    用Java寫的一個版本

    用Go重寫三次

    用Haskell寫的一個版本

    用Racket/Scheme/Idris/Haskell重寫十三次

    函數和宏

    複雜的Curried+非Curried函數和宏

    非Curried的函數和宏

    數據

    用Mapping實現用戶自定義數據

    構--Scheme的cons的一種用法

    Lazy

    像MicroKanren一樣的Lazy (現在是可以沒有的)

    命名 Symbol

    Scheme的symbol

    普通symbol+call/gensym產生的不能symbol->string的symbol

    只有域+值的symbol

    call/gensym修改默認是()

    列表

    • 'hash-set(名 '((#\h #\a #\s #\h) (#\s #\e #\t)))
    • 'a(名 '((#\a)))
    • (call/gensym 'a f)產生(名 '(#<procedure> (#\a)))

    現在的

    ...

    開始就只有值

    Mapping

    不可知有哪些鍵 不可修改 作爲數據和模塊 帶有letrec功能

    可知有哪些鍵 可修改

    Mapping,letrec分離 成爲普通的Mapping和letrec

    Mapping的鍵可以是誤

    誤 錯誤 raise

    ... (被我從歷史中刪除了)

    多次變化:

    只有 參數爲環境+S-Exp 返回一個值 的函數 作爲宏

    還有 參數爲 S-Exp 返回S-Exp 的函數 作爲宏 (現在的)

    反算

    反算函數

    多次變化:

    • 全部反算
    • 表層反算
    • 都有

    解構

    • 機-境
    • 機-形
    • 機-物

    刪 機-境

    爲反算出現的特殊形式 !-界

    多次變化:

    • 特殊名字 是一個宏
    • 是特殊形式 (現在的)

    語法

    ... (被我從歷史中刪除了)

    被刪除的

    • 數字
    • English
    • 新象形文字
    • 一種 undefined 類似 R7RS中可以繼續的raise
    • 某些函數 : map ...