码迷,mamicode.com
首页 > 其他好文 > 详细

Start From Lisp

时间:2020-09-11 15:57:14      阅读:35      评论:0      收藏:0      [点我收藏+]

标签:事物   code   规则   构造   lam   对象   直接   nat   cti   

学习新语言的重点

关注的内容 作用
Primitive Element 语言中最简单的个体
Means of Combination 从较简单的东西出发构造出复合的元素
Means of Abstraction 可以为复合对象命名,并将其作为单一个体进行操作

程序设计中需要处理两大类要素(尽管这二者并没有明确的界线)

  • 数据 —— 即我们希望去操作的事物
  • 过程 —— 即有关操作这些数据的规则的描述

define 语句

define 是 Lisp 里最简单的抽象方法,通过该方法可以用一个简单的名字取引用一个组合运算的结果。

括号在 Lisp 中的作用是,将其包含的内容作为一个组合计算式,并得到其计算结果。因此以下两句语句有很大不同

(define A 25)
(define (B) 25)

测试以上两个对象,可以得到

> A
25

> B
#<procedure:B>

> (B)
25
  • A 直接绑定 25
  • 对 B 运算的结果绑定了 25,即对 B 求值的结果为 25

B 可以用以下的写法进行表示。因此可以得出,B 实质上是一个无参数的过程,对其计算后返回值 25

(define B (lambda () 25))

define 的语法糖

define 语句在绑定一个过程时实质上表现了语法糖特征。比如定义一个计算平方值的过程

(define (square x)
  (* x x))

实质上是以下代码的简写方式

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

Start From Lisp

标签:事物   code   规则   构造   lam   对象   直接   nat   cti   

原文地址:https://www.cnblogs.com/stO-Orz/p/13587400.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!