LISP - 基本语法

  • LISP中的基本构建块

    LISP程序由三个基本构建块组成 −
    • atom
    • list
    • string
    atom 是一个连续字符的数字或字符串。它包括数字和特殊字符
    以下是一些有效原子的例子−
    
    hello-from-tutorials-point
    name
    123008907
    *hello*
    Block#221
    abc123
    
    list 是一个原子序列和/或括号中的其他列表。
    以下是一些有效列表的示例 −
    
    ( i am a list)
    (a ( a b c) d e fgh)
    (father tom ( susan bill joe))
    (sun mon tue wed thur fri sat)
    ( )
    
    string 是一组用双引号括起来的字符。
    以下是一些有效字符串的示例 −
    
    " I am a string"
    "a ba c d efg #$%^&!"
    "Please enter the following details :"
    "Hello from 'JC2182'! "
    
  • 添加注释

    分号符号(;)用于指示注释行。
    例如,
    
    (write-line "Hello World") ; greet the world
    ; tell them your whereabouts
    (write-line "I am at 'JC2182'! Learning LISP")
    
    当您单击“执行”按钮或键入Ctrl+E时,LISP会立即执行它,返回的结果是 −
    
    Hello World
    I am at 'JC2182'! Learning LISP
    
  • 进入下一步之前的一些注意事项

    以下是需要注意的一些要点 −
    • LISP中的基本数字运算是+、-、*和/
    • LISP 将函数调用 f(x) 表示为 (fx),例如 cos(45) 写为 cos 45
    • LISP 表达式不区分大小写,cos 45 或 COS 45 相同。
    • LISP 试图评估一切,包括函数的参数。只有三种类型的元素是常量,总是返回自己的值
      • 数字
      • 这封信t,那代表逻辑真。
      • 价值nil,这代表逻辑错误,以及一个空列表。
  • 关于 LISP 表格的更多信息

    在上一章中,我们提到了 LISP 代码的评估过程有以下几个步骤。
    • 阅读器将字符串翻译成 LISP 对象或s-expressions.
    • 求值器定义 Lisp 的语法forms是从 s 表达式构建的。第二级评估定义了一种语法,用于确定哪些 s 表达式是 LISP 形式。
    现在,一个 LISP 表格就可以了。
    • 一个原子
    • 一个空的或非列表
    • 任何以符号作为第一个元素的列表
    评估器作为一个函数工作,它将有效的 LISP 形式作为参数并返回一个值。这就是为什么我们把LISP expression in parenthesis,因为我们将整个表达式/表单作为参数发送给评估器。
  • LISP 中的命名约定

    名称或符号可以由除空格、左括号和右括号、双引号和单引号、反斜杠、逗号、冒号、分号和竖线之外的任意数量的字母数字字符组成。要在名称中使用这些字符,您需要使用转义字符 (\)。
    名称可以有数字,但不能完全由数字组成,因为那样的话它会被读作数字。同样,名称可以有句点,但不能完全由句点组成。
  • 单引号的使用

    LISP 评估一切,包括函数参数和列表成员。
    有时,我们需要按字面意思理解原子或列表,而不希望它们被评估或视为函数调用。
    为此,我们需要在原子或列表前加上单引号。
    以下示例演示了这一点。
    创建一个名为 main.lisp 的文件并在其中键入以下代码。
    
    (write-line "single quote used, it inhibits evaluation")
    (write '(* 2 3))
    (write-line " ")
    (write-line "single quote not used, so expression evaluated")
    (write (* 2 3))
    
    当您单击执行按钮或键入 Ctrl+E 时,LISP 会立即执行它,返回的结果是 -
    
    single quote used, it inhibits evaluation
    (* 2 3) 
    single quote not used, so expression evaluated
    6