全民Scheme(1):数字游戏
刚刚看到两句话,感觉不错,分享给大家:
1.用户的问题。就是我们的问题
2.做一些用户想要的东西
(define add1
(lambda (x)
(+ 1 x))) (define sub1
(lambda (x)
(- x 1))) (add1 67)
(sub1 5)
(sub1 0) (zero? 22) (define addup
(lambda (tup)
(cond
((null? tup) 0)
(else (+ (car tup) (addup (cdr tup))))))) (addup '(3 4 5)) (define *
(lambda (x y)
(cond
((eq? 1 x) y)
(else (+ y (* (sub1 x) y)))))) (* 3 9) (define tup+
(lambda (tup1 tup2)
(cond
((null? tup1) '())
(else (cons (+ (car tup1) (car tup2)) (tup+ (cdr tup1) (cdr tup2))))))) (tup+ '(2 3 4 5) '(5 4 3 2)) (define >
(lambda (x y)
(cond
((zero? x) #f)
((zero? y) #t)
(else (> (sub1 x) (sub1 y)))))) (> 4 3)
(> 3 3)
(> 3 4) (define <
(lambda (x y)
(cond
((zero? y) #f)
((zero? x) #t)
(else (< (sub1 x) (sub1 y))))))
(< 3 3)
(< 4 3)
(< 3 4) (define =
(lambda (x y)
(cond
((> x y) #f)
((< x y) #f)
(else #t))))
(= 3 4)
(= 3 3)
(= 4 3) (define expt
(lambda (x y)
(cond
((zero? y) 1)
(else (* x (expt x (sub1 y))))))) (expt 5 3) (define /
(lambda (x y)
(cond
((< x y) 0)
(else (add1 (/ (- x y) y))))))
(/ 10 2) (define length
(lambda (lat)
(cond
((null? lat) 0)
(else (add1 (length (cdr lat)))))))
(length '(good hello)) (define pick
(lambda (n lat)
(cond
((eq? n 1) (car lat))
(else (pick (sub1 n) (cdr lat)))))) (pick 3 '(hotdogs with hot mustard)) (define no-nums
(lambda (list)
(cond
((null? list) '())
((number? (car list)) (no-nums (cdr list)))
(else (cons (car list) (no-nums (cdr list))))))) (no-nums '(5 pears 6 prunes 9 dates)) (define all-nums
(lambda (lat)
(cond
((null? lat) '())
((number? (car lat)) (cons (car lat) (all-nums (cdr lat))))
(else (all-nums (cdr lat))))))
(all-nums '(99 abc 33 mm 9 gg fuck)) (define eqlat?
(lambda (a1 a2)
(cond
((and (null? a1) (null? a2)) #t)
((and (number? (car a1)) (number? (car a2)))
(cond
((= (car a1) (car a2)) (eqlat? (cdr a1) (cdr a2)))
(else #f)))
((eq? (car a1) (car a2)) (eqlat? (cdr a1) (cdr a2)))
(else #f)))) (eqlat? '(a b c 33) '(a b c 33)) (define occur
(lambda (a lat)
(cond
((null? lat) 0)
((number? a)
(cond
((and (number? (car lat)) (= (car lat) a)) (add1 (occur a (cdr lat))))
(else (occur a (cdr lat)))))
((number? (car lat)) (occur a (cdr lat)))
((eq? a (car lat)) (add1 (occur a (cdr lat))))
(else (occur a (cdr lat))))))
(occur 'a '(a b c d e a 3 4 a))
(occur 3 '(b cd e 3 4 3 ed 3)) (define one?
(lambda (n)
(= n 1))) (one? 3)
全民Scheme(1):数字游戏的更多相关文章
- C语言猜数字游戏
猜数字游戏,各式各样的实现方式,我这边提供一个实现方式,希望可以帮到新手. 老程序猿就不要看了,黑呵呵 源代码1 include stdio.h include stdlib.h include ti ...
- 不一样的猜数字游戏 — leetcode 375. Guess Number Higher or Lower II
好久没切 leetcode 的题了,静下心来切了道,这道题比较有意思,和大家分享下. 我把它叫做 "不一样的猜数字游戏",我们先来看看传统的猜数字游戏,Guess Number H ...
- java 猜数字游戏
作用:猜数字游戏.随机产生1个数字(1~10),大了.小了或者成功后给出提示. 语言:java 工具:eclipse 作者:潇洒鸿图 时间:2016.11.10 >>>>> ...
- 【原创Android游戏】--猜数字游戏Version 0.1
想当年高中时经常和小伙伴在纸上或者黑板上或者学习机上玩猜数字的游戏,在当年那个手机等娱乐设备在我们那还不是很普遍的时候是很好的一个消遣的游戏,去年的时候便写了一个Android版的猜数字游戏,只是当时 ...
- 【原创Android游戏】--猜数字游戏V1.1 --数据存储,Intent,SimpleAdapter的学习与应用
--------------------------------------------------------------- V0.1版本 上次做完第一个版本后,发现还有一些漏洞,并且还有一些可以添 ...
- NOIP2003pj数字游戏[环形DP]
题目描述 丁丁最近沉迷于一个数字游戏之中.这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易.游戏是这样的,在你面前有一圈整数(一共n个),你要按顺序将其分 ...
- Codevs 1229 数字游戏
1229 数字游戏 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description Lele 最近上课的时候都很无聊,所以他发明了 ...
- codevs 1229 数字游戏(可重集的全排列)
传送门 Description Lele 最近上课的时候都很无聊,所以他发明了一个数字游戏来打发时间. 这个游戏是这样的,首先,他拿出几张纸片,分别写上0到9之间的任意数字(可重复写某个数字),然后 ...
- XDU 1161 - 科协的数字游戏II
Problem 1161 - 科协的数字游戏II Time Limit: 1000MS Memory Limit: 65536KB Difficulty: Total Submit: 112 ...
- XDU 1160 - 科协的数字游戏I
Problem 1160 - 科协的数字游戏I Time Limit: 1000MS Memory Limit: 65536KB Difficulty: Total Submit: 184 ...
随机推荐
- vue-cli脚手架的.babelrc文件
虽然es6还没被浏览器全部支持,但是使用es6是大势所趋,所以babel应运而生将es6代码转换成浏览器能够识别的代码 什么是.babelrc文件呢? 熟悉linux的同学一定知道,rc结尾的文件通常 ...
- ubuntu14 简单安装ffmpeg
1.简单安装 sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next sudo apt-get update sudo apt ...
- WebApi初探之基本操作(CRUD)
public class ProductsController : ApiController { static List<Product> products = new List< ...
- R语言绘制相对性关系图
准备 第一步就是安装R语言环境以及RStudio 图绘制准备 首先安装库文件,敲入指令,回车 install.packages('corrplot') 然后安装excel导入的插件,点击右上角impo ...
- vue学习之环境配置
最近在学习vue,就顺手记录一下... 1. 安装 nodejs https://nodejs.org -->注:安装LTS的(LTS为长期稳定版本) 在cmd中输入 node -v 如果显 ...
- 【linux高级程序设计】(第十五章)UDP网络编程应用 1
UDP网络通信流程 UDP没有connect的过程,故发送数据时需要指明目的地址,不能使用read/write/send/recv. 采用sendto()和recvfrom() ssize_t sen ...
- tkinter 表格
import tkinter from tkinter import ttk root = tkinter.Tk() tree = ttk.Treeview(root, show="head ...
- 计蒜客 28449.算个欧拉函数给大家助助兴-大数的因子个数 (HDU5649.DZY Loves Sorting) ( ACM训练联盟周赛 G)
ACM训练联盟周赛 这一场有几个数据结构的题,但是自己太菜,不会树套树,带插入的区间第K小-替罪羊套函数式线段树, 先立个flag,BZOJ3065: 带插入区间K小值 计蒜客 Zeratul与Xor ...
- Beginning iOS 8 Programming with Swift-TableView
UITableView控件使用 使用UITableView,在控件库中,拖拽一个Table View到ViewController中,在Controller的后台代码中需要继承UITableViewD ...
- AtCoder 2376 Black and White Tree
D - Black and White Tree Time limit : 2sec / Memory limit : 256MB Score : 900 points Problem Stateme ...