Skip to content

Instantly share code, notes, and snippets.

View tetsu-miyagawa's full-sized avatar

Tetsu Miyagawa tetsu-miyagawa

View GitHub Profile
@tetsu-miyagawa
tetsu-miyagawa / 練習問題 1.1.1.hs
Last active August 29, 2015 14:23
関数プログラミング入門 練習問題1.1.1
square :: Integer -> Integer
square x = x * x
quad :: Integer -> Integer
quad x = square (square x)
@tetsu-miyagawa
tetsu-miyagawa / 練習問題1.1.2.hs
Last active August 29, 2015 14:23
関数プログラミング入門 練習問題1.1.2
greater :: (Integer, Integer) -> Integer
greater (a, b) = if a > b then a else b
@tetsu-miyagawa
tetsu-miyagawa / 練習問題1.1.3.hs
Last active August 29, 2015 14:23
関数プログラミング入門 練習問題1.1.3
square :: Float -> Float
square x = x * x
areaOfCircle :: Float -> Float
areaOfCircle r = (22 / 7) * square r
@tetsu-miyagawa
tetsu-miyagawa / SICP Exercise 1.3.scm
Last active August 29, 2015 14:23
SICP Exercise 1.3
(define (sum-square-of-larger-two x y z)
(cond ((and (< x y) (< x z)) (+ (* y y) (* z z)))
((and (< y x) (< y z)) (+ (* x x) (* z z)))
(else (+ (* x x) (* y y)))))
(define (a-plus-abs-b a b)
((if (> b 0) + -) a b))
(/ (+ 5 4 (- 2 (- 3 (+ 6 (/ 4 3))))
(* 3 (- 6 2) (- 2 7)))
(define (square-root2 x)
(sqrt-iter2 1.0 x x))
(define (sqrt-iter2 prev-guess guess x)
(if (good-enough?2 prev-guess guess)
guess
(sqrt-iter2 guess (improve guess x) x)))
(define (good-enough?2 prev-guess guess)
(< (abs (/ (- prev-guess guess) prev-guess)) 0.001))
(define (cube-root x)
(cube-root-iter x x 1.0))
(define (cube-root-iter x prev-guess guess)
(if (good-enough?2 prev-guess guess) guess
(cube-root-iter x guess (improve3 x guess))))
(define (improve3 x guess)
(/ (+ (/ x (square guess)) guess guess) 3))
(define (square-root x)
(define (good-enough? guess x)
(< (abs (- (square guess) x)) 0.001))
(define (improve guess x)
(average guess (/ x guess)))
(define (sqrt-iter guess x)
(if (good-enough? guess x)
guess
(sqrt-iter (improve guess x) x)))
(sqrt-iter 1.0 x))
(define (square-root x)
(define (good-enough? guess)
(< (abs (- (square guess) x)) 0.001))
(define (improve guess)
(average guess (/ x guess)))
(define (sqrt-iter guess)
(if (good-enough? guess)
guess
(sqrt-iter (improve guess))))
(sqrt-iter 1.0))