ReZero's Utopia.

# SICP lec1a: # Lisp overview

Word count: 213Reading time: 1 min
2017/12/03 Share ## Black box(module)

`(* x (+ a b))` First scene: Every parentheses is a container called black box, we can take a and b as to varible, like number, electric signal, whatever, we add them, then mul or expand them x times.

### tips

primitive elements `+ : operator` `17.4 : number` means of combination `(+ 3 17.4 5)` means of abstration It’s a tree, but we write it as a plain text formation.

### define

#### varible:

``````(define a (* 5 5))
// the above a will be like 5 * 5(expression could be varible)``````

#### function:

``````(define (square x) (* x x))
(square (square (square 5)))``````

sweet:

``````(define square
(lambda (x) (* x x))
)``````

this seems like every define is a process.

#### condition:

``(if (< x 100) (display "lower than 100"))``

### Recursive defination (Heron square root)

Hreon : get the square root of x

1. make a guess

2. improve guess by get the average of guess and x/guess

3. good-enough? done : improve guess

tips: good-enough? how close between x/guess (< abs (- (square guess) x) .001)

Analyze as a tree: (root 2) (try 1 2) (try (improve 1 2) 2) (try 1.5 2) ### Important note:

``````(define a (* 5 5))
(define (d) (* 5 5))``````

output:

``````a -> 25
d -> d procedure
(d) -> 25
(a) -> error``````