使用go实现的lisp】的更多相关文章

     大概不少programmer都看过<黑客与画家>,作者用了整整一章的篇幅讨论Lisp的强大.我自然就会手痒痒.      几个月前,几天内攻城略地搞定了Python,用的方法便是用Py重写之前开发的类库,这样就能很快熟悉语法,培养语感.喜上眉梢的我,也尝试将同样的策略用在Lisp上,我开始查看它的语法和函数,比如如何定义类和函数,如何赋值等等.      但我慢慢发现,Lisp几乎都不需要学语法,就是括号和几个基本过程,无非就是lambda, define, let,cons,car…
Ok, Go ahead. 1 (a) (b) (c) (d) 2 注:union 在 Common Lisp 中的作用就是求两个集合的并集.但是这有一个前提,即给的两个列表已经满足集合的属性了.具体的操作过程似乎是对第一个 list 中的每一个元素在第二个 list 中查找,如无则标记一下:待第一个 list 的所有元素在第二个 list 中查完以后将所有标记过的元素放入一个 list 中与第二个 list 进行合并.这意味着,如果刚开始给的两个 list 不完全满足集合的属性,则会有重复出现…
    Lisp语言是第二古老的高级编程语言.许多的黑客和开发者对Lisp推崇备至,Paul Graham甚至说"编程语言现在的发展,不过刚刚赶上1958年Lisp语言的水平".     然而这样先进的语言在现在使用的编程语言从来没有排到前20,听说它的人不少,用的人却非常少.     许多人对Lisp语言的第一印象就是一层层的括号,很老的关于苏联黑客偷到Lisp源码的最后一页全是括号的笑话就不用再说了. 造成Lisp程序如此多括号的原因就是S表达式.所谓S表达式,是指一种以人类可读的…
首先,在对 Lisp 有一丢丢的了解下读这篇文章会大大激发你学下去的欲望.之后可以看作者的著作<ANSI Common Lisp>. 想要体会一下 Lisp 的强大,本文是不二之选. Concept atom list Primitive Operators atom eq car cdr cons cond quote Other defun lambda Type 'a 'b ... "string" 1 2 3 ... () nil 't 就上面这些,作者搞了一个 e…
Handling Automation errors in Visual LISP 翻译自原文Kean's blog:http://through-the-interface.typepad.com/through_the_interface/2006/08/handling_automa.html 自从VLisp被推广,开发者便利用它的能力优势来引用COM自动化接口.这种使LISP平台增加许多新的扩展的功能,就像你能通过召唤ObjectARX 程序来实现定义LISP函数.但是,自动操作LISP…
1. Write a procedure count-list to count the number of elements in a list (defun count-list (numbers) ( (+ (count-list (rest numbers))))) (print (count-list '(1 2 3)))5 6 result: 3 2. Write a procedure reverse-list to reverse each word in a list of w…
第三方软件库: http://download1.rpmfusion.org/free/fedora/releases/25/Everything/x86_64/os/repoview/index.html 原帖http://www.linuxdown.net/install/soft/2016/0303/4903.html 安装vim sudo dnf -y update sudo dnf install vim-enhanced common lisp 原帖:http://www.progr…
1, 在emacs C-x C-W 文件另存为保存所有REPL过程 由于 (load "foo.lisp")时只有定义语句可以正确执行, 执行语句不可正确被 (load "foo.lisp")解析执行 所以脚本写成了这个样子, 脚本名 parse_lisp_code.sh #!/bin/bashif [ -n "$1" ]; then   sed 's/CL-USER>//' $1 | expand -t 8 | egrep '^ *\(d…
(defun rmapcar (fn &rest args) (if (some #'atom args) (apply fn args) (apply #'mapcar #'(lambda (&rest args) (apply #'rmapcar fn args)) args))) 这段代码第一眼看上去,怎么都像无限递归,不断的用&rest对参数做list,然后用mapcar做car,但是这段代码又是确确实实能运行的.仔细分析以后,可以肯定哪个函数的调用对参数多做了一次类似ca…
流水账而已,分享给需要的人. slimv的首页 http://kovisoft.bitbucket.org/tutorial.html里面介绍说slimv开箱即可用,可是老天总会给一些奇怪的问题给你,因为是vim新手,对教程给出的windows配置没有太在意,直接拷贝,修改了路径,但是发现vim无论如何都不能连接到SWANK,每次就是弹出个SBCL的交互环境. 于是仔细看了windows配置的命令行,是给ccl用的,而我这里是想用sbcl(因为这个支援更多),当看到"-l"参数时,猜测…