Skip to content

Instantly share code, notes, and snippets.

@miyamuko
miyamuko / gist:487310
Created July 23, 2010 11:22
パッケージと同じ prefix を持つ関数を export するコードを生成する。
;; パッケージと同じ prefix を持つ関数を export するコードを生成する。
(defun insert-export-functions ()
(interactive "*")
(let* ((prefixs (cons (package-name *buffer-package*)
(package-nicknames *buffer-package*)))
(prefix-re (format nil "^\\(~{~A~^\\|~}\\)-" prefixs)))
(insert "(export '())")
(backward-char 2)
(dolist (func (mapcar #'cadr (ed::lisp-build-summary-of-functions)))
(when (string-match prefix-re func)
@miyamuko
miyamuko / htmlfile-xpath.rb
Created July 29, 2010 07:25
Ruby + htmlfile(WIN32OLE) + JavaScript-XPath で XPath
# Ruby + htmlfile + JavaScript-XPath で XPath
#
# Example:
#
# > ruby htmlfile-xpath.rb http://gist.github.com/gists "//div[@class='info']/span/a"
# gist: 497491
# gist: 497481
# gist: 497469
# :
#
@miyamuko
miyamuko / gist:497543
Created July 29, 2010 07:48
xyzzy + htmlfile + JavaScript-XPath で XPath
;; xyzzy + htmlfile + JavaScript-XPath で XPath
;;
;; See:
;; http://d.hatena.ne.jp/amachang/20071112/1194856493
;; http://d.hatena.ne.jp/mobitan/20090829/1251542456#20090829f10
(require "xml-http-request")
(defparameter *javascript-xpath-uri*
"http://svn.coderepos.org/share/lang/javascript/javascript-xpath/trunk/release/javascript-xpath-latest-cmp.js")
@miyamuko
miyamuko / gist:507687
Created August 4, 2010 05:20
xl-json: バイトコンパイルあり・なしでのjsonのベンチマーク
;; バイトコンパイルあり・なしでのjsonのベンチマーク
(require "json")
(require "xml-http-request")
(defmacro benchmark (&body body)
`(let (times result)
(dotimes (i 4)
(gc t)
(message "~[Warm up~:;Round ~:*~A~]" i)
@miyamuko
miyamuko / gist:507771
Created August 4, 2010 07:02
StackStockBooks のもう読み終えた本のリストを取得して ChangeLog 形式で生成する
;; StackStockBooks のもう読み終えた本のリストを取得して ChangeLog 形式で生成する
;; http://stack.nayutaya.jp/
(defpackage :stack-stock-books
(:nicknames :ssb)
(:use :lisp :editor))
(in-package :stack-stock-books)
(export '(StackStockBooksの読み終えたリストをChangeLog形式で生成
@miyamuko
miyamuko / gist:509541
Created August 5, 2010 10:44
xyzzy Lisp から現在のアプリケーションのデバッガに文字列を送信
;; xyzzy Lisp から現在のアプリケーションのデバッガに文字列を送信
;;
;; == 送信した文字列を見る方法 ==
;;
;; * 方法1:
;; VisualStudio から xyzzy をデバッグ実行すると
;; VisualStudio のウィンドウ内で見れるとおもう(たぶん)
;;
;; * 方法2:
;; Sysinternals Suite に含まれる DebugView.exe を起動
@miyamuko
miyamuko / gist:511005
Created August 6, 2010 07:47
xyzzy の cmu_loop.l の改造箇所
以下の 2 つのファイルの diff
* http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/code/iter/loop/cmu/cmu_loop.cl
* http://github.com/southly/xyzzy.src/blob/0.2.2.235/lisp/cmu_loop.l
--- cmu_loop.cl 2010-08-06 16:46:20.171500000 +0900
+++ cmu_loop.l 2007-03-10 14:33:22.000000000 +0900
@@ -119,7 +119,8 @@
;;; did put in a comment at the use of string=.
@miyamuko
miyamuko / gist:511132
Created August 6, 2010 10:14
CMUCL の loop.lisp を xyzzy に移植
xyzzy に標準でついてくる cmu_loop.l は it に対応していないので、
CMUCL の loop マクロを xyzzy に移植してみた。
ext:valid-function-name-p はサポっている。
http://common-lisp.net/cgi-bin/viewcvs.cgi/src/code/loop.lisp?root=cmucl&view=markup
Index: loop.lisp
===================================================================
RCS file: /project/cmucl/cvsroot/src/code/loop.lisp,v
retrieving revision 1.34
@miyamuko
miyamuko / gist:511137
Created August 6, 2010 10:17
CMUCL の loop マクロを xyzzy に移植したもので実践 Common Lisp のサンプルを動かして結果
;; CMUCL の loop マクロを xyzzy に移植したもので実践 Common Lisp のサンプルを動かして結果。
;; collect it を含めて一応全部動いているみたい。
;; http://gist.github.com/511132
(loop for i upto 10 collect i)
(0 1 2 3 4 5 6 7 8 9 10)
(loop for i from 0 downto -10 collect i)
(0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10)
@miyamuko
miyamuko / gist:511247
Created August 6, 2010 12:31
「名前が衝突するためexportできません: hoge」を解消する
;; 「名前が衝突するためexportできません: hoge」を解消する
;; 衝突しているシンボルを unintern して回る
(defun find-conflict-symbols (sym)
(let ((name (symbol-name sym))
r)
(dolist (pkg (list-all-packages))
(multiple-value-bind (found table)
(find-symbol name pkg)
(when (and found (eql table :internal)