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

CapsLock Control

モディファイアキーの入れ替えってシステム環境設定→キーボード→修飾キーでできたのか!まさかデフォルトでできるようになっているとは…。しかも、Caps LockキーにCaps Lock以外の機能を割り当てると、Caps Lockキーを押してもCaps LockキーについてるLEDが…

CFUserTextEncoding

現象 Mac OS X 10.5.4での話。 pbcopy、pbpasteをTerminalからUTF-8で使う方法をぐぐると、.bash_profileで export __CF_USER_TEXT_ENCODING=${__CF_USER_TEXT_ENCODING/:*:/:0x08000100:/} するとできると書いてある。私の環境では、これはうまく行かず、相…

冪集合

Rubyで配列の冪集合を返すメソッド。 class Array def powerset power = [] bits = Array.new(self.length){|i| 2**i } (0..2**self.length-1).each do |i| s = [] bits.map{|j| j & i }.each_with_index do |item, index| s.push self[index] unless item =…

closure

d:id:syou6162:20080728で > hoge <- "hogehoge" > (function(){cat(hoge,fill=T)})() hogehoge が動くのが気持ち悪いと書いてある。lambdaも同じだからなぁ、私はこれ気にならないというか、慣れると便利というか、lambdaかわいいよlambdaというか(ぉ私も…

Tsukuba.R#1に行ってきた

R

id:syou6162主催のTsukuba.Rに参加してきました。詳細なレポートはid:tor_ozakiさんがなさっているのでそちらを参照するといいと思います。R覚えるとデータ解析楽しそうだし、統計の勉強自体も面白くできそうな感じがぷんぷんして非常によかった。豊富なサン…

ナベアツを作ってみた

(define (nabeatsu) (let ((continue 1) (return #f)) (letrec ((fb (lambda (n) (let ((divisible-by-3? (lambda () (zero? (modulo n 3)))) (has-3? (lambda () (let loop ((init n) (flag #f)) (let ((q (quotient init 10)) (r (modulo init 10))) (if (…

円を作ってみた

(define (make-circle radius) (let rows ((r 0) (row '())) (if (= r (+ (* 2 radius) 1)) (reverse row) (rows (+ r 1) (cons (let columns ((c 0) (col '())) (if (= c (+ (* 2 radius) 1)) (reverse col) (columns (+ c 1) (cons (if (> (magnitude (mak…

クラス作ってみた

;; クラス定義マクロ (define-syntax class-gen (syntax-rules () ((_ classname ((iv var) ...)) (define (classname) (let* ((iv var) ...) (let ((table `((iv . ,v) ...))) (lambda (m) (cdr (assq m table))))))))) ;; 例:カウンタクラスの作成 (class…

UTF8対応YaTeX

確か最近のCarbon Emacsはダウンロードしてくるとyatexが最初から入っていたと思うけど、そのyatexが実はutf-8対応だったことがC-h v YaTeX-kanji-codeしてみるとわかるのであった。同様にlatex-message-kanji-codeもutf-8対応しているので、いずれもsetqを…

ふしぎのapply

(apply map list '((1 2 3) (4 5 6))) ;=> ((1 4) (2 5) (3 6)) これをみて、行列の転置みたいなことができるのにまず目から鱗が落ちた。 (apply + 1 2 '(3 4 5)) ;=> 15 これはapplyの一般的な使い方だけども、普通に関数をlambdaで定義している時の「常識…

color-themeを設定する

.emacsで、かねてから少し気になっていた文字色などの設定をcolor-theme.elを用いてやってみた。 color-theme.elの概要 (require 'color-theme)する。 「color-theme-なんとか」という名前の関数を定義してその中にスタイルの定義を書く。 テーマを適用する…

tokyo-emacs行ってきたよ

id:hayamiz先生主催のtokyo-emacsに参加してきました。便利なemacs lispをたくさん知ることにより、またEmacsをすばらしく使いこなしてる方々のデモを拝見して刺激を受ける事によりEmacsの世界が開け、コピペ厨からは早く脱却しなければというモチベーション…

集中を要する作業のお供に

るびまをほぼパクって以下のようなものを作ってみました。 #!/usr/bin/ruby -Ku require 'webrick' require 'webrick/httpproxy' require 'uri' handler = Proc.new {|req,res| res.body.gsub!(/.*/m, '') } s = WEBrick::HTTPProxyServer.new(:BindAddress …

次の数列の規則性を見つけよ。

3 5 6 9 10 12 17 18 20 24こんな問題がいきなり出たらドン引き間違い無しですね。

組合せの生成

;;; combination.scm (define (getbits n int) (let loop((index 0) (bits '())) (if (= index n) (map (lambda (b) (if b 1 0)) bits) (loop (+ index 1) (cons (logbit? index int) bits))))) (define (next-combination current) (let ((sb (lambda (x) (…

お茶の時間

今日のは何の役にも立たないネタです。オチもありません。 (use srfi-1) (define -> lambda) (map (->(x) (* x x)) (iota 10)) ; (0 1 4 9 16 25 36 49 64 81) (ヒント:Ruby 1.9で->はlambda)lambdaを楽に書きたい人にはいいのかも。私は普段だったら…や…

pbcopy/pbpaste

今まで知らなかったのが不覚中の不覚だと思いますがMac OS XではTerminalで 入力された内容を(システム共通の)クリップボードにコピーするpbcopy クリップボードの内容を標準出力に吐き出すpbpaste というコマンドが存在するのだそうです。 How to use $ c…

N・K・F ! N・K・F !

Terminalウィンドウのエンコーディング設定はMac OS XならばUTF-8がデフォルト、というか他のエンコーディングだとlsが使えなくなったりするなど大変不便なのでこれ以外あり得ないと思うのですが、そうするとUTF-8でエンコードされていない日本語を含むテキ…

grepなめてましたすみません

早速ですが昨日のスクリプト(id:witchmakers:20080604)は不要になりました(クロウさんどうもありがとごじます)。なぜならば、 $ grep -n YaTeX-dvi2-command ./* ./yatex.new:27: 変数 YaTeX-dvi2-command-ext-alist 新設。Previewerコマンドと、そ ./yate…

テキストファイルの内容で検索。

引数1に指定したディレクトリの中のファイルの全部をテキストファイルと仮定して、その内容から引数2の内容をgrepしてマッチした場合はファイル名、行数を表示してくれるシェルスクリプト。 #!/bin/sh #このスクリプトはsearchcontentという名前だとします。…

Emacs Lispを少しだけ理解してみる

Emacs Lispもほんの少しだけ理解したのでそれをまとめてみる。 グローバル変数の束縛 (set 'my-var "hoge") と (setq my-var "hoge") は同じ意味。setのときはmy-varをそのまま書くとそれを評価してしまうようなので、クオートが必要らしい。setqのqはquote…

快適なYaTeXライフをあなたに。

id:syou6162のコメント elispを全く書けないんですが、C-c t jで、のやつをこっそり追記してもらえたりすると喜びますw を受けて。YaTeXではキーバインドC-c t jなどで起動できるタイプセット用のコマンド、プレビュー用のコマンドなどを編集することができ…

タブ区切りテキストをtabularに変換

こんなんあると便利かも、と思って作った自作ツールなのですが、実際に使用頻度も高いので試しに公開してみます。 タブでコラムを区切っている形式の表が記述されているテキストファイルのパスを引数にこのスクリプトを呼ぶと、その表をtexの表に変換し、標…

コンパイル、やがてプレビュー

Mac OS X限定。需要があるそうです。 #!/bin/sh platex $1 dvipdfmx ${1%tex}dvi open -a Preview.app ${1%tex}pdf というシェルスクリプトを例えばplatex2pdfという名前で保存したとして、パスを通した後コマンドラインから $ platex2pdf hoge.texとか呼び…