编程环境:DrRacket
define 定义
(define size 2)
使用 (* 5 size)
输出字符串(display "hello")
空出一行换行(newline)
求平方 (define (square x) (* x x))
(square (square21))
把square x 定义成 x*x
求平方和
(define (sum-of-squares x y) (+ (square x)(square y )))
使用(sum-of-squares2 4)
(define (qiu a) (sum-of-squares (+ a 1) (+a 2)))
(qiu 2)
输入一个数(define rad (read))
使用
(display "圆面积周长计算")
(newline)
(display "请输入半径长度")
(define rad (read))
(display "面积是")
(* pi (* rad rad))
(display "周长是")
(* 2 (* pi rad))
(display "输出完毕")
;(define (abs x)
; (cond ((> x 0) x) ;如果满足这个条件就执行这个
; ((< x 0) (- x)) ;相当于case语句或者ifesleif语句
; ((= x 0) 0))
; )
(define (abc c)
(cond ((< c 0) (- c)) ; 如果满足条件就执行 不满足就执行后面的
(else c)))
(define (acd x)
(if (< x 0) ;如果满足这个条件
(- x) ; 就执行这个
x ;否则执行这个
)
)
(define (hehe x)
(cond ((and (> x 5) (< x 10)) x)
(else (- x))
))
(define (>= x y)
(not (< x y)))
(define (dandan x)
(cond ((not (string=? x "张全蛋")) (display "赵铁柱是二货"))
(else (display "张全蛋是二货"))
))
(define (a-b-or-a+b a b)
((if (> a b) ;这里通过对ab大小的判断来决定符号
+
-) a b))
(define (p) (p)) ;(test 0 (p))如果是应用序则会卡在第一步
(define (test x y);正则序会0
(if (= x 0)
0
y)
)
开方
(define (sqrt-iter guess x)
(if(good-enough? guess x)
guess
(sqrt-iter (improve guess x)
x)
))
(define (improve guess x)
(average guess (/ x guess))
)
(define (average x y)
(/ (+ x y) 2))
(define (good-enough? guess x)
(< (abs (- (square guess) x)) 0.001))
(define (sqrt x)
(sqrt-iter 1.0 x))
开立方
(define (cube-root x)
(cube-root-iter 1.0 x))
(define (cube-root-iter guess x) ; 和 sqrt-iter 是一样的
(if (good-enough1? guess x) ; 改个名字,方便区别
guess
(cube-root-iter (improve1 guess x)
x)))
(define (good-enough1? guess x) ; 要用 cube 来检测是否足够好
(< (abs (- (cube guess) x))
0.001))
(define (improve1 guess x) ; 题目给出的公式
(/ (+ (/ x (square guess)) (* 2 guess))
3))
(define (cube x)
(* x x x))