Lisp
hellBaron
让代码说话Let the code speak to you
展开
-
common lisp中宏的理解
先看代码:1 (defmacro let1 (var val &body body) `(let ((,var ,val)) ,@body)定义一个宏。2(print (let1 foo (+ 2 3) (* foo foo)))使用这个宏。 如果不用到宏,那么效果类似一下代码:3(print (let ((foo (+ 2 3原创 2015-01-27 14:21:04 · 755 阅读 · 0 评论 -
clisp中的调试展开
看代码:(defmacro while (test &rest body) `(do () ((not ,test)) ,@body))(setq x 0)(trace while)(while (< x 10) (princ x) (incf x))输出为:;; Loading file lisp.lisp ...原创 2015-01-28 11:01:02 · 496 阅读 · 0 评论 -
common lisp初始化数组
1.首先构造一个一维数组:(setf foo (make-array 4))设置这个数组的第三个元素为(x,y,z)(setf (aref foo 2) '(x y z))设置第三个元素为hash 表(print foo)(setf (car (aref foo 2)) (make-hash-table)初始化hash 表 (setf (gethash 'zoink (c原创 2015-02-03 10:49:32 · 856 阅读 · 0 评论 -
common lisp中cond
看代码:(defvar *arch-enemy* nil)(print *arch-enemy*)(defun pudding-eater (person) (cond ((eq person 'henry) (setf *arch-enemy* 'stupid-lisp-alien) '(alien you ate my原创 2015-02-04 14:36:32 · 1411 阅读 · 0 评论 -
common lisp中获取当前文件路径
1,直接获取当前文件夹的路径:(print (probe-file ".") )2.或许打开文件的大小:(let ((file (open "hello.c" :if-does-not-exist nil))) (print (file-length file)) (close file) )3.获取打开文件中的内容(let ((in (open "hello.c原创 2015-02-05 16:06:52 · 5040 阅读 · 0 评论 -
Lisp SICP的一个程序
#lang racket(define (square x) (* x x))(define (good-enough? guess x) (< (abs (- (square guess) x)) 0.01))(good-enough? 0.11 0.01)(define (average x y) (/ (+ x y) 2))(define (improve guess x)翻译 2013-04-02 12:40:45 · 734 阅读 · 0 评论 -
LISP 3.1
蒙特卡洛方法:(define random-init 7)(define (rand-update x) (let ((a 27) (b 26) (m 127)) (modulo (+ (* a x) b) m)))(define rand (let ((x random-init)) (lambda () (set! x (rand-upda原创 2013-04-12 13:06:04 · 1032 阅读 · 0 评论 -
common lisp教程
http://acl.readthedocs.org/en/latest/index.html主要是lisp语言学习原创 2015-01-22 09:57:47 · 895 阅读 · 0 评论 -
lisp资源
ansi common lisp 资源地址原创 2016-02-27 21:19:08 · 366 阅读 · 0 评论