Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

hulang1024/Scheme

Open more actions menu

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

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  
Morty Proxy This is a proxified and sanitized view of the page, visit original site.