手続きの定義

calc-square を定義

1辺の長さが a(cm)の正方形の面積を返す手続きを calc-squareというシンボルにバインドせよ
(define calc-square (lambda (a) (* a a)))

calc-cube-surface を定義

1辺の長さが a(cm)の立方体の表面積を求める例を実行例として示せ
ただし calc-square を使うこと
(define calc-cube-surface (lambda (a) (* (calc-square a) 6)))

一辺の長さ1cm、3cm, 15cm の立方体の表面積を求める例を実行例として示せ

(calc-cube-surface 1)
(calc-cube-surface 3)
(calc-cube-surface 15)

calc-rectangular-area を定義

2辺の長さが a,b (cm)の長方形の面積を返す手続きを calc-rectangular-area として定義せよ
(define calc-rectangular-area (lambda (a b) (* a b)))

calc-rectangular-solid-surface-area を定義

3辺の長さが a,b,c (cm)の直方体の表面積を返す手続きを
calc-rectangular-solid-surface-area として定義せよ
calc-rectangular-area を使うこと
(define calc-rectangular-solid-surface-area (lambda (a b c) 
    (* 2 (+ (calc-rectangular-area a b) 
            (calc-rectangular-area b c) 
            (calc-rectangular-area a c)))))

calc-rectangular-solid-surface-area を定義

3辺の長さが a,b,c (cm)の直方体の表面積を返す手続きを
calc-rectangular-solid-surface-areaとして定義せよ
calc-rectangular-area を使うこと

前問と同じだけれど、注目する長方形が違う
(define calc-rectangular-solid-surface-area (lambda (a b c) 
    (+ (calc-rectangular-area (* a 2)  b)
       (calc-rectangular-area c (* 2 (+ a b))))))

他にもいろいろ考えられる

\[\pi\ を使って\]

半径 r (cm) の 円の周の長さを返す手続き

(use math.const) ;シンボル pi に値がバインドされる
(define calc-circle-perimeter (lambda (r)
    (* 2 pi r))) ; なので 使える

; 他にも e とかバインドされているはず、gauche リファレンスで調べられる

\[\pi\ を使って\]

半径 r (cm) の 円の面積を返す手続き

(use math.const) 
(define calc-circle-ara (lambda (r)
    (* pi r r)))

\[\pi\ を使って\]

半径 r (cm) の 球の体積を返す手続き

(use math.const) 
(define calc-sphere-volume (lambda (r)
    (* 4/3 pi r r r)))

\[\pi\ を使って\]

半径 r (cm) の 球の表面積を返す手続き

(use math.const) 
(define calc-sphere-surface-area (lambda (r)
    (* 4 pi r r)))