[lisp] scheme环境搭建与编译运行
搭建环境参考这篇
http://leochin.com/mac-scheme-install/
用文本编辑器写代码 保存文件格式为 .scm
在终端中cd到scm文件所在文件夹,
执行 (cf "scm_name")编译文件
然后执行 (load "scm_name.scm")加载文件,加载过程中会把文件执行一遍,就像Python一样,或者应该反过来说。
下面是几个lisp程序,参考书籍 SICP
求余:
- (define (remainder m n)(
- if (< (- m n) n)
- (- m n)
- (remainder (- m n) n)
- )
- )
牛顿法求开方:
- (define (sqrt x)
- (define (sqrt_iter guess x)
- (if (good_enough? guess x)
- guess
- (sqrt_iter (improve_guess guess x)
- x )))
- (define (improve_guess guess x)
- (average guess (/ x guess)))
- (define (average a b)
- (/ (+ a b) 2))
- (define (good_enough? guess x)
- (< (abs (- (square guess) x)) 0.001))
- (define (square x) (* x x))
- (define (abs x)
- (if (< x 0)
- (- x)
- x)
- )
- (sqrt_iter 1.0 x)
- )
阶乘:
- (define (factorial n)
- (fact_iter 1 1 n))
- (define (fact_iter res count n)
- (if (> count n)
- res
- (fact_iter (* res count) (+ count 1) n)))
求幂:
- (define (expt x n)(
- expt_iter x 1 n)
- )
- (define (expt_iter x res n)(
- if (= n 0)
- res
- (expt_iter x (* x res) (- n 1))
- )
- )
最大公约数:
- (define (gcd m n)(
- if (= n 0)
- m
- (gcd n (remainder m n))
- ))
fibonacci:
- (define (fib n)
- (fib_iter 1 0 n) )
- (define (fib_iter next pre count)(
- if (= count 0)
- pre
- (fib_iter (+ pre next) next (- count 1))
- ))
- (define (fib n)
- (if (< n 2)
- 1
- (+ (fib (- n 1))
- (fib (- n 2)))))
[lisp] scheme环境搭建与编译运行的更多相关文章
- ionic —— 开发环境搭建并编译运行第一个APP
其实类似的环境已经玩了很多次了,最开始玩还是微信刚刚出来,那会儿没有智能机.只好安装一个模拟器,却只是为了注册一个微信.想想也就是够了~ 前前后后折腾了很多次,可是每一次都给人不一样的感觉,也许是这个 ...
- FFMPEG在嵌入式硬件上应用之 —— 基本环境搭建及编译
前段时间在翻看电脑里面资料时,发现了以前做的在嵌入式硬件上面运行以ffmepg为基础,以嵌入式硬件解码的多媒体播放工作,发现都快忘记完了.今日得闲整理温习了一下ffmpeg在嵌入式上的运用,这里给大家 ...
- OSG+VS2010+win7环境搭建---OsgEarth编译
OSG+VS2010+win7环境搭建---OsgEarth编译 转:http://www.cnblogs.com/hnfxs/p/3161261.html Win7下 osg+vs2010环境搭建 ...
- FFMPEG高级编程第一篇:环境搭建及编译
前段时间在翻看电脑里面资料时,发现了以前做的在嵌入式硬件上面运行以ffmepg为基础,以嵌入式硬件解码的多媒体播放工作,发现都快忘记完了.今日得闲整理温习了一下ffmpeg在嵌入式上的运用,这里给大家 ...
- S2X环境搭建与示例运行
S2X环境搭建与示例运行 http://dbis.informatik.uni-freiburg.de/forschung/projekte/DiPoS/S2X.html 环境 Maven proje ...
- 基于vlc sdk的二次开发--环境搭建、编译
前言 关于 搭建.编译VLC,不同的平台有不同的方法,可以参考wiki. 其中在windows下编译VLC有两种方式,MSYS+MinGW和CygWin.通过测试,最后决定采用MSYS+MinGW搭建 ...
- HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客
HHvm Apache 2.4 Nginx建站环境搭建方法安装运行WordPress博客 VPS主机 2014年06月02日 17:20 评论» 文章目录 Debian上安装 Ce ...
- 【转】Linux(ubuntu14.04)上编译Android4.4源码的环境搭建及编译全过程
原文网址:http://jileniao.net/linux-android-building.html sublime text让我伤心.本来很信任sublime text的自动保存功能,之前使用一 ...
- Tesseract环境搭建及编译安装
Tesseract环境搭建及编译安装 Tesseract源码都是C++源码:对于不咋会C++的人来说,这真是...虽然说语言有相通性,但是...哎!!!!! 分享出来,也希望对大家有所帮助. 环境:w ...
随机推荐
- C# 基于MySQL的数据层基类(MySQLHelper)
这里介绍下比较简单的方式,引用MySql.Data.dll然后添加一个MySqlHelper类来对MySql数据库进行访问和操作. 1.将MySql.Data.dll引用到你的项目中 下载地址:MyS ...
- SQL Server优化的方法
SQL Server优化的方法<一> 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了 ...
- python 爬虫 scrapy1_官网教程
Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...
- CSS变量试玩儿
CSS很美妙,能够为您的页面穿上衣裳,各种各样五彩斑斓的衣裳,但是对于开发者来说,他又不够灵动,于是乎有了各种各样的预处理器Sass.LESS.Stylus(笔者建议Sass的SCSS语法),这些预处 ...
- MySQL记录异常实体类设计
public class LogInfo { /// <summary> /// 应用名 /// </summary> public string AppName { get; ...
- 第9月第5天 AVVideoAverageBitRateKey
1. https://stackoverflow.com/questions/11751883/how-can-i-reduce-the-file-size-of-a-video-created-wi ...
- Burp-Suit之Interder
登陆页面:http://localhost/pentest/brute/login.php 设置代理,使用Burp截断: 发送到Intruder进行爆破,这里我先说明一下Intruder页面 Inte ...
- mysql8.0 在window环境下的部署与配置
今天在阿里云window服务器上配置mysql环境,踩了一些坑,分享出来.需要的朋友可以看看.额,或许有人要吐槽我为什么不在linux上去配置,额,因为我window的那台服务器配置相对高些.本人技术 ...
- linux远程windows执行命令
Linux下远程连接windows,执行命令 - Feng______的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/feng______/article/deta ...
- 如何计算 App 的启动时间
应用启动场景 事实上 Android 中一个 App 的启动时间可以准确计算的.但是要分场景.也就是说要分开游戏和应用. 大家都知道,在Android中,游戏开发和应用开发是两码事.所以我们需要分开来 ...