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

cygwin上のemacs22のschemeモードでC-cC-l時に自動でwindowを分割する

/usr/local/emacs/22.1/lispに以下のパッチをあてる。 強制保存と*scheme*バッファは3/10のウインドウが割り当てられる。 ファイル名を問い合わせるところはカレントバッファに固定。 $ diff -u cmuscheme.el.orig cmuscheme.el --- cmuscheme.el.orig 2007-…

swi-prologに.proの拡張子を読み込ませ、述語mainを自動実行させる

コマンドラインでは .proを読んでもらえないので -sオプションをつけてファイルを指定。 qオプションでメッセージを抑制、tオプションで実行する述語を指定。 $ cat test2.pro main :- time((permutation([1, 2, 3, 4, 5, 6, 7, 8, 9], [A, B, C, D, E, F, G…

cygwin環境下のemacs22でswi-prologに.proを関連づけしC-cC-lで述語mainを実行するようにする

あとprologモードはswiplを探すらしいのだがplを指定してやる。 (setq auto-mode-alist (append '(("\\.pro" . prolog-mode)) auto-mode-alist)) (setq prolog-program-name "pl")plが探せないみたいなので.bashrcに以下を追加 PATH=/lib/pl-5.6.36/bin/i686…

emacsでどの拡張子がどのモードにひもづけられているか調べる

prologモードに割り当てられている拡張子がわからなかった。 .plはperlに取られているらしい。 rassqを使う。 (rassq 'prolog-mode auto-mode-alist) ("\\.prolog\\'" . prolog-mode) (assoc "\\.prolog\\'" auto-mode-alist) ("\\.prolog\\'" . prolog-mode)

windowsにおいてsendtoからcygwin emacs22を起動する

以下を emacs.vbsとして C:\Documents and Settings\ユーザ名\SendTo\ に保存すると右クリック送るに登録することが出来る。 Set objShell = WScript.CreateObject("WScript.Shell") Set objExec = objShell.Exec("C:\cygwin\bin\cygpath """+WScript.Argume…

emacsでemacsclientを使う

http://flex.ee.uec.ac.jp/texi/faq-jp/faq-jp_63.html なるほど、.emacsに(server-start)と書いてサーバーモードでemacsを立ち上げておけばemacsclientで起動が速くなるのね。 ただしし終了はC-x#

cygwin上のemacs22でデフォルトの文字コードをutf8・改行コードをLFにする

http://d.hatena.ne.jp/x68kace/20071103/ を参考にさせてもらった。 emacs22の設定じゃなさそうな気もしたがこれで取りあえずwindows上のデフォルトがLFになったので良しとしよう。 (set-language-environment "Japanese") (prefer-coding-system 'utf-8-un…

ファイルの文字コードと改行コードを調べる

文字コードと改行コードを調べるときにはnkf --guess を使う。いつもhdかodで見てたんだがこりゃ便利だ。 $ cat a.txt a b c $ nkf --guess a.txt ASCII (LF) $ cat b.txt あ い う $ nkf --guess b.txt UTF-8 (LF) $

すごいぞprolog!魔方陣がワンライナーでかける!(swi-prologで魔方陣を計算その2)

prologはこれがワンライナーでかけるのか。すごすぎる。しかも2秒。あり得ない。 ?- time((permutation([1, 2, 3, 4, 5, 6, 7, 8, 9], [A, B, C, D, E, F, G, H, I]),X is A+B+C,X is D+E+F,X is G+H+I,X is A+D+G,X is B+E+H,X is C+F+I,X is A+E+I,X is C…

cygwin環境下でのemacs22でデフォルトプリンタをPostScriptプリンタにして印刷アイコンもPSのものにする

cygwin環境下ではlpr.exeで直接psプリンタに送れる。 ついでにヘッダや行番号の設定も書いておく。 (require 'printing) (setq ps-multibyte-buffer 'non-latin-printer ps-line-number t ps-line-number-start 5 ps-line-number-step 5 ps-paper-type 'a4 p…

emacsのschemeモードでC-cC-l時に自動的にGaucheを実行する

M-x run-schemeを予めやっておかないとC-cC-lが有効じゃなかったので以下を書いておく。 (setq scheme-program-name "gosh -i") (autoload 'scheme-mode "cmuscheme" "Major mode for Scheme." t) (autoload 'run-scheme "cmuscheme" "Run an inferior Schem…

emacsのhaskellモードでC-cC-lで自動的にmainを評価し、更にカーソルを編集バッファにとどまらせる

追記 2008/02/21 14:00:28: このページでのhaskellmodeはバージョンが旧いので emacs22でhaskell-mode2.4を動かす - 計算機と戯れる日々を参照のことemacsのhaskell-modeの2.3を導入した。 schemeモードのC-cC-lではカレントファイルをロードした後、評価し…

Gaucheでマクロの練習

うーん、取りあえず作ってみた。 (define-syntax mymacro (syntax-rules () ((mymacro a1) (begin (print "last one.") (print a1))) ((mymacro a1 a2 ...) (begin (print a1) (mymacro a2 ...))))) (mymacro 1) (mymacro 1 2 3)実行結果は以下。 last one. …

swi-prologで魔方陣を計算する

もらいもの。 prologってこういうのは美しくかけるんだな。 magic_square(L):-magic_square([1,2,3,4,5,6,7,8,9],L). magic_square(Elements,[A,B,C,D,E,F,G,H,I]):- permutation(Elements,[A,B,C,D,E,F,G,H,I]), sumlist([A,B,C],15), sumlist([D,E,F],15),…

PSPがPS2の互換機なら良いのに…

媒体:メモリスティックを含む媒体も消してしまう。 ゲームの購入:ダウンロードのみ。こども用におもちゃ屋で権利だけ買えるってのが必要なのかも。 この2点をみたすだけでリメイクしないでソフトの再販できるのに。まあ単に最近またotostazを遊び直してい…

Gaucheで魔方陣に挑戦

なんかこんな感じで解きたかったのだがzip(list)が期待する動きと違った >>(use gauche.sequence) =>#<undef> >>(use util.combinations) =>#<undef> >>(filter (lambda (x) (eq? 9 (length (map car (group-sequence (sort (fold append () x))))))) (combinations (filte</undef></undef>…

squeakをコンパイルしてみる。

どうもdebianをutf8運用しているとsqueakland.jpのイメージはキーボードを押した瞬間に落ちてしまう。 http://ftp.squeak.org/3.9/unix-linux/Squeak-3.9-8.src.tar.gz ここからソースファイルをダウンロード XIMのパッチを以下より入手 http://www.nabble.c…

debian/etchにemacs22を入れる

http://hype.sourceforge.jp/f/dists/etch/backports/ のを利用させてもらうことにする。 /etc/apt/sources.listに deb http://hype.sourceforge.jp/f etch backports を追加した後 # wget http://hype.sourceforge.jp/f/A7F20B7E.gpg -O- | sudo apt-key ad…

イチョウ

もすこしかな

いまいち

vmwareゲストOSがwindows、ホストOSがlinuxであるときの共有フォルダの設定方法

.vmxに以下を記述 ##### Shared Folders ##### sharedFolder0.enabled = "TRUE" sharedFolder0.present = "TRUE" sharedFolder0.writeAccess = "TRUE" sharedFolder0.readAccess = "TRUE" sharedFolder0.hostPath = "/tmp" sharedFolder0.hostName = "host" …

haskellで漸化式

等差数列 初項3項差4の等差数列 Prelude> let a=3:(map (+ 4) a) Prelude> take 10 a [3,7,11,15,19,23,27,31,35,39] 等比数列 初項3項比4の等比数列 Prelude> let a=3:(map (* 4) a) Prelude> take 10 a [3,12,48,192,768,3072,12288,49152,196608,786432] …

haskellって多重代入できたんだ(笑

初めて気がついた let句 where句では 以下のような定義が可能。 タプルの場合、schemeの多値を扱うreceive句にそっくり Prelude> let a:b = [1,2,3] Prelude> a 1 Prelude> b [2,3] Prelude> let (l,r)=splitAt 2 [1,2,3,4] Prelude> l [1,2] Prelude> r [3,…

Gaucheでバブルソート?

よし、今までの研究成果を結集するのだ。 なんか (lambda (y) `(,(car y) ,@(bsort (cdr y)))) で呼び出しているbsortはクラインの壺みたいなイメージを持った。 すごくおもしろい。 >>(define bsort (lambda (x) (if (null? x) () ((lambda (y) `(,(car y) …

(続)haskellでバブルソート

タプルの利用により少し先に進んだ。 Prelude> let bsort [] = []; bsort x = (\x->fst x ++ (bsort $ snd x)) $ splitAt 1 $ foldr (\x y->if y==[] then [x] else if x < (head y) then x:y else (head y):x:(tail y)) [] x Prelude> bsort [3,5,2,4,1] [1…

haskellでバブルソート

こ、こんなに辛いとは思いもよらなかった。 しかし、内部で利用している関数bを2回呼び出しているあたりが今の限界。しかも関数bはちょっと変則的に作ってるしな。リスト構造は後ろからたどるのが辛い。foldrかなぁ。 この点で変数って素晴らしいとおもって…

debian lennyでcompiz fusionを使ってみる

http://shame.tuxfamily.org/repo/?cat=11 を参考にいくまず /etc/apt/sources.listに以下を書く deb http://download.tuxfamily.org/shames/debian-lenny/desktopfx/stable/ ./次に以下を実行 # wget http://download.tuxfamily.org/shames/A42A6CF5.gpg -O…

イチョウ