2008-08-01から1ヶ月間の記事一覧

現在のカーソル位置の単語をdescribeで調べる

gaucheだと(describe 何か)で調べることができる。 こんなものを定義しておくとらくかもしれない。 (defun scheme-describe-current-word () (interactive) (let ((buf "*d*")) (with-output-to-temp-buffer buf (let ((target (substring-no-properties (cu…

schemeで例外処理ってどうするんだろう?

例えば、与えられたリストをすべてかけた値が欲しいときなどに、0を発見したら処理を中断して0を返すようにしたい。こういうときに、例外が使えると便利そう。 ocamlだとこんな感じ exception ZeroFound (* 例外の定義 *) let product l = try List.fold_lef…

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…