Everything should be made as simple as possible, but no simpler

Lisp.编译(Compilation)

Common Lisp 函数可以单独被编译,也可以通过编译一个文件的形式被编译。如果你仅仅是在toplevel中键入了一个defun表达式, [1]> (defun foo (x) (+ x 1)) FOO 很多实现都会创建一个解释的函数。你可以通过将一个函数作为参数传递给compil...

2012-10-31 21:51:06

阅读数 1659

评论数 0

Lisp.闭包

一个函数可以作为一个表达式的值返回,就像其它对象一样。这里有一个接受一个参数的函数,返回对应参数类型的合并函数: (defun combiner (x) (typecase x (number #'+) (list #'append) (t #'list))) 在这...

2012-10-25 11:55:11

阅读数 2093

评论数 0

Lisp.全局函数

之前的fboundp函数能够告诉我们一个给定的符号是不是已经是一个函数的名字。如果一个符号是一个函数的名字,symbol-function会返回这个函数: [1]> (fboundp '+) T [2]> (symbol-function '+) # 通过设置某些名字的symb...

2012-10-24 10:07:31

阅读数 1418

评论数 0

MoinMoin部署:Nginx+uwsgi

本文假设nginx,uwsgi都已经安装完毕! 1. 首先安装flup,不多说,easy_install flup 2. 下载moinmoin,我用的是1.9.5,解压到/data下,并做符号链接ln moin-1.9.5 moin -s 3. cd /data/moin/wiki;...

2012-10-23 17:12:21

阅读数 3101

评论数 0

Lisp.中止(Aborts)

你可以使用return从一个block中的任何一点退出。有事我们想要做更极端的事情,并且在几个函数调用之间转移控制。我们通过catch和throw来完成这样的事情。一个catch表达式接收一个标签(tag),这个标签可以是任意的种类的对象,之后跟着一个表达式的主体(body)。 【译注】:不由想...

2012-10-22 18:38:07

阅读数 942

评论数 0

Lisp.多值(Multiple values)

有人曾经说过,为了强调函数式编程语言的重要性,都要说每个Lisp表达式都返回一个值。现在事情没有那么简单了;在Common Lisp中,一个表达式可以返回0个或多个值。返回值的最大个数根据实现的不同而不同。 多值允许函数计算并返回几个东西,并且不需要建立一个结构来保存它们。比如,内置的函...

2012-10-22 16:05:49

阅读数 2398

评论数 0

Lisp.结构(Structure)

一个结构(structure)可以看成是一个加强版的向量(vector)。假设你需要写一个程序来跟踪许多长方体。你可能会考虑将它们表示成一个具有三个元素的向量:高,宽和长。如果你使用诸如如下的函数,而不是使用原始的svrefs,将使你的程序更加易读: [1]> (defun block...

2012-10-17 15:06:47

阅读数 2330

评论数 0

Fedora 17 下运行Kettle遇到"A fatal error has been detected by the Java Runtime Environment"

遇到此问题十分纠结,具体的报错信息如下: # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x0000000000000000, pid=6455, tid...

2012-10-16 22:59:22

阅读数 2371

评论数 0

Python使用mechanize模拟登录、抓取数据的代码

import mechanize import cookielib br = mechanize.Browser() cj = cookielib.LWPCookieJar() br.set_cookiejar(cj) br.set_handle_equiv(True) br.set_hand...

2012-10-16 11:54:26

阅读数 8996

评论数 2

Lisp.字符串和字符

字符串是字符的向量。我们把常量字符串看成是一系列被双引号包括的字符,一个单独的字符c被表示为#\c。 通常(但不是必须的),每个字符都会有一个相关的整数,这个整数就是ASCII码。在多数的实现中,函数char-code返回与一个字符相关的数字,code-char返回对应数字的字符。 ...

2012-10-15 21:51:09

阅读数 6452

评论数 0

Lisp.集合

列表是一种表示小集合的好方式。列表中的每一个元素是它所代表的集合中的一个成员: [1]> (member 'b '(a b c)) (B C) 当member返回真的时候,它不是简单地返回t,而是返回以它找的元素为首的列表的一部分。逻辑上,一个cons可以代表t,并且使用这种方式...

2012-10-14 23:18:37

阅读数 1132

评论数 0

Lisp.理解递归

学习递归的学生有时会被鼓励在纸上跟踪递归函数的所有调用。这种练习可能会有误导:程序员定义一个递归函数的时候,通常不会考虑因为调用它而产生的所有调用。如果有人非得以这一的方式来考虑程序,那么递归就是令人烦恼的,这可没有什么帮助。递归的好处是它的精确性,它让我们以从更加抽象的方式来观察算法。你可以不用...

2012-10-14 22:35:32

阅读数 1417

评论数 0

RabbitMQ一些基本的管理操作备忘

一些基本的管理命令: 一步启动Erlang node和Rabbit应用:./rabbitmq-server 在后台启动Rabbit node:./rabbitmq-server -detached 关闭整个节点(包括应用):./rabbitmqctl stop  ...

2012-10-09 11:59:09

阅读数 11644

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭