とにかくアップだ。
;------------------------------
; 1.1
10
;;-> 10
(+ 5 3 4)
;; -> 12
(- 9 1)
;;-> 8
(/ 6 2)
;;-> 8
(+ (* 2 4) (- 4 6))
;;-> 6
(define a 3)
;;-> a
(define b (+ a 1))
;;-> b
(+ a b (* a b))
;;-> 19
(= a b)
;;-> #f
(if (and (> b a) (< b (* a b)))
b
a)
;;-> 4
(cond ((= a 4) 6)
((= b 4) (+ 6 7 a))
(else 25))
;;-> 16
(+ 2 (if (> b a) b a))
;;-> 6
(* (cond ((> a b) a)
((< a b) b)
(else -1))
(+ a 1))
;;-> 16
;------------------------------
; 1.2
; 5 + 4 + (2 - (3 - (6 + 4/5)))
;ーーーーーーーーーーーーーーーーー
; 3(6 - 2)(2 - 7)
(/ (+ 5 4 (- 2 (- 3 (+ 6 (/ 4 5) )))) (* 3 (- 6 2) (- 2 7)))
;------------------------------
; 1.3
(define (squre x)
(* x x))
(define (larger2-squre-sum . values)
(let ((lis (reverse (sort values))))
(+ (squre (car lis)) (squre (cadr lis)))))
;------------------------------
; 1.4
(define (a-plus-abs-b a b)
((if (> b 0) + -) a b))
;-> if で、手続き「+」または「-」を返却している。
;------------------------------
; 1.5
(define (p)
(p))
(define (test x y)
(if (= x 0)
0
y))
;-> (test 0 (p))を評価すると、まず第2引数の(p)が評価される。
; pは内部で再帰的にpを呼び出すが停止条件がないため、処理が戻ってこなくなる。
今んとこ、得に疑問点とか問題点はない。と思う。
−
0 件のコメント:
コメントを投稿