Lisp

语言入门

Lisp

是一门历史悠久的语言,全名叫

LISt Processor

,也就是“表处理语言”,它是由

John

McCarthy

1958

年就开始设计的一门语言。和

Lisp

同时期甚至更晚出现的许多语言如

Algo

等如今大

多已经消亡,又或者仅仅在一些特定的场合有一些微不足道的用途,到现在还广为人知的恐怕只剩下了

Fortran

COBOL

。但唯独

Lisp

,不但没有随着时间而衰退,反倒是一次又一次的焕发出了青春,从

Lisp

分支出来的

Scheme

ML

等语言在很多场合的火爆程度甚至超过了许多老牌明星。那么这颗常青树

永葆青春的奥秘究竟在哪里呢?

如果你只接触过

C/C++

Pascal

这些“过程式语言”的话,

Lisp

可能会让你觉得十分不同寻常,首先吸

引你眼球(或者说让你觉得混乱的)一定是

Lisp

程序中异常多的括号,当然从现在的角度来讲,这种设计

的确对程序员不大友好,不过考虑到五六十年代的计算机处理能力,简化语言本身的设计在那时算得上是当

务之急了。

Lisp

的基本语法很简单,它甚至没有保留字(有些语言学家可能对这一点有异议,别怕,我听你们的),它

只有两种基本的数据,仅有一种基本的语法结构就是表达式,而这些表达式同时也就是程序结构,但是正如

规则最简单的围棋却有着最为复杂的变化一样,

Lisp

使用最基本的语言结构定义却可以完成其它语言

现的、最复杂的

能。

说,现在我们就来

看看

Lisp

语言中的基本

元素

Lisp

的表达式是一

个原子

(

atom

)

或表

(

list

)

原子

(

atom

)

是一

,如

a

b

c

表是由

零个

或多

达式

成的序

,表达式之间用

空格

开,

入一对括号中,如

a

b

c

()

(

a

b

c

x

y

z)

(

a

b

(

c

)

d)

表是由

四个元素

构成的,其中

第三个元素

本身也是一

表。

正如算数表达式

1+1

2

一样,

Lisp

中的表达式也有

,如果表达式

e

得出

v

,我们说

e

返回

v

。如

果一

表达式是一

表,那么我们

表中的

个元素

做操作符

,其

元素

做自

lisp语言cond和if套用_lisp语言入门相关推荐

  1. lisp语言cond和if套用_LISP语言入门(CLISP)

    曾经翻译整理的一篇LISP语言的入门文章,与大家分享. (请勿转载) ---------------------------------------------------------------- ...

  2. lisp语言cond和if套用_LISP - 决策

    决策结构需要程序员指定一个或多个条件由程序进行评估或测试,以及要执行的语句或语句如果条件被确定为true,如果条件被确定为false那么选择要执行其他语句. 下面是在大多数编程语言中一个典型的决策结构 ...

  3. lisp语言cond和if套用_方案 – if和cond之间的区别?

    but when running, cause error: procedure application: expected > procedure, given: #; arguments w ...

  4. lisp语言cond和if套用_AutoCAD LISP 循环选择语句cond

    (defun c:test() (initget "A0 A1 A2 A3 A4") (setq size (getkword "请输入图纸大小A0,A1,A2,A3,A ...

  5. lisp语言cond和if套用_在'if'语句中设置多行条件的样式?

    Harley Holco.. 679 您不需要在第二个条件行上使用4个空格.也许用: if (cond1 == 'val1' and cond2 == 'val2' and cond3 == 'val ...

  6. lisp 批量文字求差值_lisp语言对立体测量数据进行高程处理的实现

    摘要:本文结合航测工作实际生产案例,利用lisp程序语言,编写程序,实现对Z坐标进行整提调整功能. 关键词:lisp程序 Z坐标 调整 中图分类号: O4-34文献标识码:A 文章编号: 0 前言 与 ...

  7. lisp语言怎么获取简码_Lisp语言到底神奇在哪里?

    前言 在浏览各种技术文章的过程中,经常会看到Lisp这门程序语言. 不过,我一直都不是很在意. 我热爱编程,我的目标是"有能力完成一款游戏的所有程序开发工作". 在我追求这个目标而 ...

  8. Lisp 家族迎来新成员,函数式语言 Lux 是什么?

    代码世界即将加入一门新成员:Lux.你没看错,它不是洗发水,而是古老的 Lisp 家族中新诞生的函数式语言. 目前 Lux 还在研发之中,最新版本是 0.5.0.它可被用来编写一系列在 JVM (Ja ...

  9. 小语种-lisp-凡利于语言设计者的,也利于语言使用者

    "在编程的时候你可能会想 'Lisp 要是有这样或者那样的操作符就好了.' 那你就可以直接去实现它.之后,你会意识到使用新的操作符也可以简化程序中另一部分的设计,如此种种.语言和程序一同演进 ...

最新文章

  1. Java堆和栈的基本理解
  2. MyBatis的架构和其运行流程
  3. php json 不转义,php json_encode中文不转义
  4. id3决策树 鸢尾花 python_机器学习之分类回归树(python实现CART)
  5. 江苏自考计算机组成原理多少分及格,自考《计算机组成原理》基本概念第七章...
  6. 异步 JavaScript 之理解 macrotask 和 microtask(转)
  7. Nginx学习笔记(三) Nginx基本数据结构
  8. hadoop 笔记(hive)
  9. c语言加密字母向右移两位,C语言二进制除法用左右移位来表示
  10. Julia : 如何一行实现99乘法表?
  11. Android Studio- 把SVN项目下载到 本地的 操作方法
  12. [转] 你没看过的囧人囧事大集合
  13. 惠普m227fdw引擎通信错误_惠普打印机HPM227提示耗材余量错误怎么办?
  14. 美国国债收益率回复2021年年初水平 黄金同时趋向上走势
  15. 记一次git pull 错误
  16. js中===和==的区别
  17. java mysql 表关系分析_数据库表的关系
  18. 《给研究生的学术建议》14——答辩
  19. Stream.count
  20. Netty框架-IO模型(Linux五大网络IO模型)

热门文章

  1. postgre导入dmp文件
  2. 基于Layui自定义内容轮播插件
  3. 2018领航杯awd简单复现
  4. 上海各IT培训机构深度比较
  5. Zigbee,esp8266(wifi),蓝牙协议三种通信方式
  6. 论文研读——n个物体相互间的碰撞避免
  7. 游戏运营相关名词及解释
  8. 3D建模师的需求到底有多大?以前想都不敢想
  9. 11、Altiris cms 7.0 系统监控
  10. oracle冷备修改数据文件位置,Oracle冷备迁移脚本(文件系统)