MyNixOS website logo
Description

A Lisp.

核心

Copyright (C) 2014-2018 Zaoqi [email protected]

這只是核心,不是直接用來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 ...
Metadata

Version

0.2.2

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows