scheme学习笔记1

编程环境: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))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值