随笔分类 - lisp
摘要:移动C-f forword-char 光标向前移动一个字符C-b backword-char 光标向后移动一个字符C-M-f paredit-forward 光标移动到括号后(foo |(bar baz) quux)(foo (bar baz)| quux)(foo (bar)|)(foo (bar))|C-M-b paredit-backword 光标一定到括号前(foo (bar baz)| quux)(foo |(bar baz) quux)(| (foo) bar)|((foo) bar)C-a 移动至行首C-e 移动至行尾编辑C-M-Space mark-sexp 选中光标所在的..
阅读全文
摘要:在lisp中“*”除了乘法的作用外,还被用来保存REPL(read-eval-print-loop)中的返回值。其中 * -> 保存最后一次返回值。 ** -> *的上一次值。 *** -> **的上一次值。例子如下:而且 * == (car /) ** == (car //) *** == (car ///)
阅读全文
摘要:<实用Common.Lisp编程> 第8章 如何自定义宏1.宏的展开期和运行期 理解宏的关键在于必须清楚地知道那些生成代码的代码(宏)和那些最终构成程序的代码(所有其他内容)之间的区别。当编写宏时,你是在编写那些将被编译器用来生成代码并随后编译的程序。只有当所有的宏都被完全展开并且产生的代码被编译后,程序才可以实际运行。宏运行的时期被称为宏展开期(macro expansion time),这和运行期(runtime)是不同的,后者是正常的代码(包括那些有宏生成的代码)实际运行的阶段。 牢记这一区别很重要,因为运行在宏展开期的代码与那些运行在运行期的代码相比,它们的运行环境不同。也
阅读全文
摘要:<实用Common.Lisp编程> 第22章 高阶loop1.loop的组成部分 你可以在一个loop中做下列事情:以数值或多种数据结构为步长来做循环;在循环的过程中收集、计数、求和以及求最大值或最小值;执行任意Lisp表达式;决定何时终止循环;条件执行上述内容。 另外,loop还提供了用于下列事务的语法:创建用于循环内部的变量;指定任意Lisp表达式在循环开始前和结束后运行。2.迭代控制 大多数所谓的迭代控制子句都以循环关键字for或是它的同义词as开始,后接一个变量的名字。变量名后面的内容取决于for子句的类型。 1.计数型循环 (loop for i upto 10 co..
阅读全文
浙公网安备 33010602011771号