跳转至内容

Lisp 编程/概述

来自维基教科书,开放给开放世界的开放书籍

概述?好吧,赶紧看看了解基本情况;

(defun ! (x)          ; Defines a factorial function denoted by the exclamation mark symbol. 
  (if (> x 0)
      (* x (! (- x 1)))
      1))

尾递归... 创建阶乘函数。

(setf this '(hello world opps goodbye))
(car this) => hello
(cdr this) => (world opps goodbye)
(cadr this) => world
(cdar this) => probably an error

列表,是 lisp 的名称由来,以及了解 lisp 的几个功能。

如必须的话,你也可以执行

(setf ... same...
(first this) => hello
...
(second this) => world

但是你不能组合它(例如做 car cdr 变为 cadr)

以及,宏...

(defmacro when (cond &body body)
   (if (cond)
      (progn ,@body)))

此时,我们已经开始深入了解它,但是,天哪!

(defun do-nothing (anargument :key akeywordargument :opt anoptionalargument :rest everythingelseinalist))

我无法想出一种方法,把所有四种函数参数都整合到一起(你不能这么做,而将其中两个以上结合起来通常是个馊主意。)

还有 CLOS(通用 lisp 对象系统)以及很多其他你可能应该了解的东西,但如果你真的想知道,你最好仔细学习一个好教程。

所以,嘿,这是 lisp 类似的大概的样子。祝你 lisping 愉快!

华夏公益教科书