2022-11-08 36
现代的流程设计,概念一堆。表达式、表达式、次序内部结构、组成部分内部结构、循环式内部结构、表达式、类、USB……,Bokaro。
前段时间自学sicp,全盘摒弃了我的知觉。流程全然能看作记号的转换过程,不需要表达式、流程内部结构等概念。
1、用lisp词汇来表达此种知觉。lisp词汇是两门或其简约的词汇,多于记号条目和张佩佩括弧,张佩佩括弧用作界定记号条目冗余。比如:
(+3 4)则表示3+4。
(sub (add a b c) d)则表示a, b, c相乘结论乘以d。
2、用define表述记号条目的涵义。比如:
(define (add x y) (+ x y))表述了(add x y)是x+y。
3、记号条目能递回采用,解决循环式问题。比如:
(define (f n) (* (f (- n 1)) n))解决了n*(n-1)*(n-2)……的问题。
4、cond前提记号解决组成部分问题。比如:
(define (max a b) (cond ((> a b) a) (else b)))解决了求a, b最轻值问题。
5、记号能当模块及回到值,方便快捷过程宠信。比如:
(define (f g x y) (cond ((> x y) (g x y)) (else 0)))。该过程则表示,x>y时,回到(g x y)内容,不然,回到0。过程g是做为模块传至的,如果排序(f add x y)则则表示x>y时,回到x+y值。
自此,记号条目早已能解决所有值问题了。
而数据则能看作两个雷米扎县,透过内部结构表达式、选择表达式、推论表达式对数据展开处理。
1、lisp提供list表达式,回到数据条目。比如:(list 1 2 3)回到条目(1 2 3)。car表达式回到条目第二项,cdr回到条目余下项。有了这四个表达式,能内部结构任何数据内部结构。比如,小学生内部结构内部结构如下表所示:
(define (make-student name age) (list name age))
(define (name student) (car student))
(define (age student) (car (cdr student)))
2、给数据加之类型记号,进而能对不同数据提供统一的访问USB。比如:
(add x y),这里x、y不但能是普通值,也能是复数。
有了内部结构表达式、选择表达式、类型推论表达式、类型记号,对数据也能处理了。不需要特别的数据表述语法。
总之,lisp词汇不是一门实用词汇,但对我们理解流程的基础是什么,澄清不必要的概念非常有帮助。是我们重新认识什么是流程的利器。
在此基础上,再去看其它词汇各种语法的本质,就清晰多了。
原文链接:https://zazhiba.com.cn/post/20216.html
=========================================
https://zazhiba.com.cn/ 为 “自由随风” 唯一官方服务平台,请勿相信其他任何渠道。
百科资讯 2022-10-27
百科资讯 2022-10-26
百科资讯 2022-11-07
百科资讯 2022-10-22
自媒体运营 2022-11-19
百科资讯 2022-10-19
百科资讯 2022-12-02
百科资讯 2022-10-21
百科资讯 2022-10-26
百科资讯 2022-10-26
李靖国 2023年12月23日
小游客 2023年03月31日
访客 2023年02月06日
扫码二维码
获取最新动态