2008-01-01から1年間の記事一覧

anythingでfileをrequireする作業をサポート

rubyでライブラリを読み込むときに、「require""」の内容を覚えるのが大変でした><C-c C-uでrequireするファイルを選択したいです。>< その前に anythingの候補を作るrubyのコードを書きました tocandidate.rb ~/.emacs.d/tocandidate.rbという感じで保…

速度の比較用のコードを書いた

以前書いたコードを書き直したときに、hpricotを使った方が早いかどうかしらべました。そのためにこんな感じのコードを書きました。 if RUBY_VERSION < "1.9" #1.8だとMethod#nameが存在しない class Method def name self.to_s end end end class Bench def…

昔書いたコードを書き直す。(Simpson係数を求める)

昔書いたコードを直したくなったので直してみました。>< 以前書いたコード http://d.hatena.ne.jp/trotr/20071008#1191852704 そういえばこの頃は"if __FILE__ == $0"の意味を理解していなかった><。 問題点 何回もpubmedに読みに行っている。 変に複雑 …

カレンダー的なものの作成

最近あまりコードを書いていなかったので、とりあえず簡単なものでも。 require 'date' t = Date.today t.wday # => 0 def days_of_month m, y=Date.today.year Date.new(y,m+1,1) - Date.new(y,m,1) end def days_list m,y=Date.today.year days = days_of_…

zenityを使うと入力した文字列を隠しながらの入力とかも簡単にできる

ruby -e 'str = `zenity --entry --hide-text`; puts str'

zenityで進捗状況の可視化が手軽にできる。

zenityというコマンドを知りました>< zenity? ダイアログウィンドウを表示するコマンド gnomeのパッケージのひとつ (kdeにもzenityに似たkdialogというコマンドがある) http://www.google.co.jp/search?q=zenity これとrubyを組み合わせると計算の進捗状…

macのpbcopy,pbpasteをubuntuでも

今日初めて知りました><。>pbcopy、pbpaste (でも、mac固有のコマンドらしいです><) 機能 shellからclipboardに触れる。(詳しく) ubuntuで似たようなことをする。 xclipというものが近いそうです。 sudo aptitude install xclip aliasを加えてmacに近…

久しぶりにOcaml(pascalの三角形)

まずはふつうに let rec pascal = function 1 -> [1] | n -> let prev = pascal (n-1) in let right = 0 :: prev in let left = List.rev right in List.map2 (+) left right memo化したい let pascal2 n = let mem = Array.init n (fun x -> []) in let rec…

requireしているファイルの場所に飛ぶelisp

(require ')というところにカーソルを合わせてC-c C-fでファイルを開ける C-c C-aでcurrent-buffer内のすべてのrequireしているファイルからanythingで選択して開ける 実体がないものとかは無理です。*1 (require 'anything) (defun elisp-reading-search-fi…

replace-regionなども修正

同じようにreplace-regionも修正 コード (defmacro replace-region-maker (name &optional op) `(defun ,name (beg end from to) (interactive "r\nstarget:\nswith:" :default1 replace-region-last-from :default2 replace-region-last-to) (setf replace-…

comment-regionとかを修正

コメントをもらったので、その内容をもとに前に作ったcomment-regionなどを修正しました。 scan-bufferよりreplace-bufferを使ったほうが楽 範囲を限定するときはsave-restrictionを使ってからnarrow-to-regionを使う。 コード ;;重複を省くためのマクロ (de…

declareとかdynamic scopeとか

elispはDynamicScopeなので以下のコードが動きます。 (defun bar () (+ x y)) (defun foo () (let ((x 3) (y 10)) (bar))) (foo) ; => 13 CommonLispとかSchemeはStaticScopeなので動きません。。 でも、CommonLispの場合declareを使うとDynamicScope的な振…

growlの代わりはmumbles

http://www.mumbles-project.org/

ruby1.9用のrcodetoolsの導入

rcodetoolsが1.9に対応したらしいです。*1 1.8と1.9を使い分けたいですね><。 そんなわけで、このような設定を加えました。 ;(require 'rcodetools)の後あたりにでも (defun make-cycle (l) ;循環リストを作成 (let ((tmp l)) (while (not (null (cdr tmp)…

九九スクリプト書いてみたよ

http://d.hatena.ne.jp/hrkt0115311/20080805/1217928310 クラスにしないものとクラスにしたものの2つを書いてみました。 独学なので他の人がどこで詰まるとか良く分かりません><。なのでうまく説明できないです><分からないところがあったらコメントし…

xyzzyのshell-executeは便利そうです。

urlへのlinkを貼っておきたいときには (shell-execute <url> t) としておくとC-x C-eでurlに飛べます。</url>

xyzzyのoccurの結果をanythingで選択できるようにした

xyzzyにはcolor-moccurとかないので、anythingで選択できれば便利だと思いました><。 注意 anything.lが必要です。 機能 occur 渡した正規表現を含む行を表示 moccur 開いているすべてのバッファの中での渡した正規表現を含む行の表示 moccur-anything moc…

emacsにsave-pointを作った。

anythingのcandidate-trasraterが便利そうなので使ってみたかったのです><。 説明 emacsの現在の位置とバッファを保存することができます。 (C-x C-xでカーソルをregionの開始位置に戻る操作のようなものを繰り返すことができます) 使い方 save-current-p…

zshのcompctlはobsolete

ocamlの関数の補完をするelisp

まだ完成していないけど、途中経過をUpしてみます。 長いので、別のところにupした方が良かったかもしれません。 使用方法 ファイルの冒頭にあるコメントの部分を.emacsに貼り付ける (好きなキーにbindする) anything-ocaml-reference-completionsが補完 an…

xyzzyでobarrayにアクセスする方法

「interactive "a"」とかなどで関数の情報が見れるので、たぶんできると思うのですがその方法が分かりません><。誰か教えてくだしあ><

xyzzylispを書くときに参考になるところ

xyzzyはdescribe-functionで関数の説明を見ることができません><。 なので、結構webサイトにお世話になっています。 参考になるサイト http://xyzzy.s53.xrea.com/reference/is.cgi(関数のリファレンス) 後で追加していきます(たぶん)

xyzzyのkill-bufferとclipboardを共有する

.xyzzyなどに以下を追加 ;;kill-bufferとclipboardを共有させる(selectionは使わない) (defmacro sort-beg-end (beg end) `(when (> ,beg ,end) (let ((tmp ,beg)) (setf ,beg ,end) (setf ,end tmp)))) (defmacro compound-selection-and-killbuffer (name…

emacsとxyzzyの違い

http://d.hatena.ne.jp/trotr/20080728の続き 今思いついたのは以下の3つです。 (defun (beg end) (interactive "r")の挙動 listの要素の比較の方法 replace-(string|regexp)-region (defun (beg end) (interactive "r")の挙動 emacsはpointの値がbeg xyzzy…

そのほかxyzzyで追加したもの

interactive "r"を補助するマクロ (defmacro sort-beg-end (beg end) `(when (> ,beg ,end) (let ((tmp ,beg)) (setf ,beg ,end) (setf ,end tmp)))) 一番近くの関数を実行 (defun eval-last-defun () (interactive) (save-excursion (end-of-defun) (call-i…

xyzzy用のoccurを作った。

occurが見つからないので作った。(同じ挙動じゃないけど) とりあえず、以下を満たせばいいことにした。 呼び出すときに正規表現を入力する 関数実行後bufferが2つに分割される。 片方のbufferには与えた正規表現を含む行の内容が出力されている。 カーソ…

meadowを止めてxyzzyにした

必要なこと(あとでまとめる) download 環境変数の設定(XYZZYHOME) netinstallerのインストール caldixで解凍用のdllをインストール .xyzzyをいじる(あとでまとめる) とりあえず、現在の.xyzzy*1 (global-set-key #\F8 'lisp-mode) (global-set-key #\F12 …

1.7の機能を使ったら、素数generatorが簡単に作れたよ

js

spidermonkeyでしか試してません><。 function primes(){ let [n, box] = [2, []]; for(;;){ let a = box.filter(function(e) {return n%e == 0;}); if(a.length==0){ yield(n); box.push(n); } n++; } } var p = primes(); for (let i=0; i < 10; i++){ a…

(sicp50)m4.9のdoの修正と4.10

4.10 好きな制御構造の作成 dotimesを作ってみた。(何か大げさな様な気もするけど) ;;使用例 (let ((fact 1)) (dotimes (e 10 fact) (set! fact (* fact (+ 1 e))))) ;; gosh> 3628800 named-letを使った再帰に置き換えて定義する。 (define (run-dotimes …

(sicp49)m4.8,m4.9

合っているか自信無いです>< 4.8named-letを作る (define (named-let->definition exp) ;(letを外した式をもらう。 (let ((name (car exp)) (arguments (cadr exp)) (body (caddr exp))) (let ((vars (map car arguments)) (exps (map cadr arguments))) (…