SchemeRuntime 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
SchemeRuntime 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 MIT
开发语言 C/C++ 查看源码 »
操作系统 Windows
软件类型 开源软件
所属分类 程序开发代码练习
开发厂商
地区 不详
提 交 者 zoowii
适用人群 未知
收录时间 2012-11-11

软件简介

之前发布的 SchemeScript 的C++版,依然是学生习作,求找BUG

简介:

Simple Scheme Interpreter written in C++

开发环境:Win7 64bit + Visual Studio 2012 因为使用了#pragma once,所以g++直接编译会失败。Makefile因为暂时没有用到。所以如果要用g++或clang++,请自行把#pragma once改成#ifndef ...的形式,并重写Makefile。

是我另一个项目SchemeScript(运行在浏览器或node.js中的Scheme解释器)的C++版,不过因为对C++不熟,而且刚写,所以支持特性比较少。另外,性能似乎SchemeScript还低。纠结...不过内存泄漏应该很少或没有。以后可能会为无副作用的函数加上缓存。

支持变量定义,函数定义和调用,递归,柯里化,lambda表达式等

因为是第一版,所以只支持不超过int范围的整数,字符串,布尔值的字面量。

支持特性列表: 1. Int范围整数 2. 字符串 3. 布尔值 4. if, cond等流程控制函数 5. 函数定义,调用,递归等 6. lambda表达式,柯里化 7. display, define, +, -, *, <, >, <=, >=等函数

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表了博客
2013/09/21 22:59

scheme 初探

学习 Common Lisp 太累了,想换个心情,学学 Scheme, 据说这门语言极其精简,又是 Lisp 的一大分支,还是学院派所大力推崇的。 开始的几个特性确实不错, 1. 函数和变量使用一个命名空间。这个符合大多数语言的习惯。变量嘛,只有一个意思最好,二义性可不是什么好事。 2. 词法变量和闭包的支持,这体现了语言开发者的实...

2
4
发表了博客
2019/09/15 23:53

Rhyme scheme

31.43% 1000ms 65536K A rhyme scheme is the pattern of rhymes at the end of each line of a poem or song. It is usually referred to by using letters to indicate which lines rhyme; lines designated with the same letter all rhyme with each other. e.g., the following "poem'' of 44 lines has an associa...

0
0
发表了博客
2012/12/09 22:23

scheme的form

在c语言里,定义一个整数是这样的: int a = 2; 这个变量的名字是a,值是2; 定义一个函数(scheme里叫过程)是这样的: int add(int a, int b) { return a+b; } 上面的代码定义了一个过程,名字是add,值就是这个函数体; 再看scheme的做法, 定义一个整数: (define a 2) 定义一个过程: (define add (lambda (x y) (+...

0
0
发表了博客
2018/12/20 09:33

scheme 之门

scheme 之门 开始之前 这是一篇 Scheme 的介绍文章. Scheme 是一个 LISP 的方言, 相对于 Common LISP 或其他方言, 它更强调理论的完整和优美, 而不那么强调实用价值. 我在 学习 Scheme 的时候, 常想的不是 "这有什么用", 而是 "为什么" 和 "它 的本质是什么". 我觉得这样的思考对学习计算机是非常有益的. 我不知道 "Sch...

0
0
发表了博客
2019/10/11 22:45

Runtime Only和Runtime + Compiler

如果你需要在客户端编译模板 (比如传入一个字符串给 template 选项,或挂载到一个元素上并以其 DOM 内部的 HTML 作为模板),就将需要加上编译器,即完整版 当使用 vue-loader 或 vueify 的时候,*.vue 文件内部的模板会在构建时预编译成 JavaScript。你在最终打好的包里实际上是不需要编译器的,所以只用运行时版本即可—...

0
0
发表了博客
2018/11/15 19:45

探秘Runtime - Runtime的应用

该文章属于<简书 — 刘小壮>原创,转载请注明: <简书 — 刘小壮> https://www.jianshu.com/p/4a22a39b69c5 attribute __attribute__是一套编译器指令,被GNU和LLVM编译器所支持,允许对于__attribute__增加一些参...

0
0
发表了博客
2016/11/22 12:11

注册URL Scheme

我们都知道苹果手机中的APP都有一个沙盒,APP就是一个信息孤岛,相互是不可以进行通信的。但是iOS的APP可以注册自己的URL Scheme,URL Scheme是为方便app之间互相调用而设计的。我们可以通过系统的OpenURL来打开该app,并可以传递一些参数。 例如:你在Safari里输入www.alipay.com,就可以直接打开你的支付宝app,前提是...

0
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
3 收藏
分享
返回顶部
顶部