Skip to content

hulang1024/Scheme

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

scheme

Scheme编程语言的一个解释器。

用法

运行scheme会开始并给你一个REPL(Read-Eval-Print-Loop)环境。
调用load加载执行源文件:
(load "file1.scm")
执行源文件:
scheme file1.scm file2.scm
--e选项接收一个代码字符串以执行:
scheme --e "(define x 1) (+ x 2)"

例子

/scheme//scheme/tests/pcc32

特性

  • 变量引用

  • 局部变量: let

  • 常量引用: quote,'

  • 过程调用

  • 过程(函数): lambda

    • 可变参数
  • 第一级函数

  • 静态(词法)作用域

  • 闭包

  • 动态类型

  • 传值调用

  • 条件表达式: if,when,unless,and,or,cond,case

  • 递归

  • 尾递归

  • 顺序结构: begin

  • 迭代结构: let,do,while,for

  • 定义: define

  • 赋值: set!,inc!,dec!

  • 标准过程

    • 相等谓词
      eq?,equal?
    • 数值运算和数值输入/输出
      number?,=,<,<,>,<=,>=,+,*,-,/,
      zero?,positive?,negative?,odd?,even?,abs,remainder,modulo
      1. 整数: integer?
      2. 实数: real?
    • 布尔
      boolean?,not
    • 序对和表
      pair?,null?,list?,cons,car,cdr,set-car!,set-cdr!,
      caar,cadr ... cdddar,cddddr (carcdr的组合,默认定义到第四层),
      list,length,memq,memv,member,list-tail,list-ref,append,reverse
    • 符号
      symbol?
    • 字符
      char?,char=?,char<?,char>?,char<=?,char>=?,
      char-ci=?,char-ci<?,char-ci>?,char-ci<=?,char-ci>=?,
      char-alphabetic?,char-numeric?,char-whitespace?,char-upper-case?,char-lower-case?,
      char->integer,integer->char,
      char-upcase,char-downcase
    • 字符串
      string?,make-string,string,string-length,string-ref,string-set!,substring,string-append,
      string->list,list->string,string-copy,string-fill!
    • 向量
      vector?,make-vector,vector,vector-set!,vector-ref,vector-length,
      vector->list,list->vector,vector-fill!
    • 控制特征
      procedure?,apply,void,void?
    • 求值
      eval
    • 输入/输出
      read,write,newline,display
    • 系统接口
      load,time,clock,rand,?,exit,set
  • 注释
    单行注释: ; ...

  • 扩展

    • 中括号[], 大括号{}
    • 多行注释: #| ... |#
  • 内置库

    • Windows32 Console Control

Author

hulang1024

License

MIT