SICP lec1a: # Lisp overview

本文介绍Scheme语言的基本概念,包括变量定义、函数定义、条件判断及递归等核心特性,并通过求平方根的例子展示其强大功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

origin link sicp 1

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)


recursive

Important note:

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

output:

a -> 25
d -> d procedure
(d) -> 25
(a) -> error
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值