2008-01-01から1年間の記事一覧
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…
昔書いたコードを直したくなったので直してみました。>< 以前書いたコード 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_…
ruby -e 'str = `zenity --entry --hide-text`; puts str'
zenityというコマンドを知りました>< zenity? ダイアログウィンドウを表示するコマンド gnomeのパッケージのひとつ (kdeにもzenityに似たkdialogというコマンドがある) http://www.google.co.jp/search?q=zenity これとrubyを組み合わせると計算の進捗状…
今日初めて知りました><。>pbcopy、pbpaste (でも、mac固有のコマンドらしいです><) 機能 shellからclipboardに触れる。(詳しく) ubuntuで似たようなことをする。 xclipというものが近いそうです。 sudo aptitude install xclip aliasを加えてmacに近…
まずはふつうに 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 ')というところにカーソルを合わせてC-c C-fでファイルを開ける C-c C-aでcurrent-buffer内のすべてのrequireしているファイルからanythingで選択して開ける 実体がないものとかは無理です。*1 (require 'anything) (defun elisp-reading-search-fi…
同じように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などを修正しました。 scan-bufferよりreplace-bufferを使ったほうが楽 範囲を限定するときはsave-restrictionを使ってからnarrow-to-regionを使う。 コード ;;重複を省くためのマクロ (de…
elispはDynamicScopeなので以下のコードが動きます。 (defun bar () (+ x y)) (defun foo () (let ((x 3) (y 10)) (bar))) (foo) ; => 13 CommonLispとかSchemeはStaticScopeなので動きません。。 でも、CommonLispの場合declareを使うとDynamicScope的な振…
http://www.mumbles-project.org/
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つを書いてみました。 独学なので他の人がどこで詰まるとか良く分かりません><。なのでうまく説明できないです><分からないところがあったらコメントし…
urlへのlinkを貼っておきたいときには (shell-execute <url> t) としておくとC-x C-eでurlに飛べます。</url>
xyzzyにはcolor-moccurとかないので、anythingで選択できれば便利だと思いました><。 注意 anything.lが必要です。 機能 occur 渡した正規表現を含む行を表示 moccur 開いているすべてのバッファの中での渡した正規表現を含む行の表示 moccur-anything moc…
anythingのcandidate-trasraterが便利そうなので使ってみたかったのです><。 説明 emacsの現在の位置とバッファを保存することができます。 (C-x C-xでカーソルをregionの開始位置に戻る操作のようなものを繰り返すことができます) 使い方 save-current-p…
まだ完成していないけど、途中経過をUpしてみます。 長いので、別のところにupした方が良かったかもしれません。 使用方法 ファイルの冒頭にあるコメントの部分を.emacsに貼り付ける (好きなキーにbindする) anything-ocaml-reference-completionsが補完 an…
「interactive "a"」とかなどで関数の情報が見れるので、たぶんできると思うのですがその方法が分かりません><。誰か教えてくだしあ><
xyzzyはdescribe-functionで関数の説明を見ることができません><。 なので、結構webサイトにお世話になっています。 参考になるサイト http://xyzzy.s53.xrea.com/reference/is.cgi(関数のリファレンス) 後で追加していきます(たぶん)
.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…
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…
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…
occurが見つからないので作った。(同じ挙動じゃないけど) とりあえず、以下を満たせばいいことにした。 呼び出すときに正規表現を入力する 関数実行後bufferが2つに分割される。 片方のbufferには与えた正規表現を含む行の内容が出力されている。 カーソ…
必要なこと(あとでまとめる) download 環境変数の設定(XYZZYHOME) netinstallerのインストール caldixで解凍用のdllをインストール .xyzzyをいじる(あとでまとめる) とりあえず、現在の.xyzzy*1 (global-set-key #\F8 'lisp-mode) (global-set-key #\F12 …
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…
4.10 好きな制御構造の作成 dotimesを作ってみた。(何か大げさな様な気もするけど) ;;使用例 (let ((fact 1)) (dotimes (e 10 fact) (set! fact (* fact (+ 1 e))))) ;; gosh> 3628800 named-letを使った再帰に置き換えて定義する。 (define (run-dotimes …
合っているか自信無いです>< 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))) (…