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

key-chord(っぽいもの)の修正

少しずつ微修正していたが、今回は面倒なエラーを発見してしまったので書いておく。 コマンドを入力したときの文字を(svref (get-recent-keys) (1- (length (get-recent-keys))))と取得していたのだが、これでは(get-recent-keys)が空だった場合に問題となる…

マルチタスクと脳

人間は複数のことを同時に出来るものである。しかし、必要な部位が被るようなものは同時に出来ない。車を運転しながら野球とかは無理だ。それと同じくらい、2つのことを同時に考えるのも難しい。考えるという行為に使う部位は、同時に1つのことしか行えな…

記憶

人の記憶には3種類あり、短期記憶、中期記憶、長期記憶に分けられる。知識としては知っていたけど、最近意識していたので、違いが感じられるようになってきた。面白いつまらないことを思いついて、しばらく考えを進めているうちに最初のことを忘れる、という…

コンプリーション

DOSプロンプトで→を押すと前の文字が出てくるのを再現したかったので書いてみた。 (defun dup-line () (interactive) (labels ((indent () (save-excursion (buffer-substring (progn (goto-bol) (point)) (progn (skip-chars-forward " \t$>") (point))))))…

1.5

IQテストでAIが高得点を取れてもあんまり嬉しくない。特化すれば、翻訳ソフトより簡単に出来そうだ! もちろん、IQテストで満点取れるAIよりも、教育を受けていない子供の方がずっと良く喋れるだろうね!

1.4

計算が困難な問題や、決定不能な問題があることはAIを不可能にする要素ではない。実際、人間だって割り切れない問題は数知れない。ここでは、あきらめたり、逃げたり、運に頼るといった選択肢も必要になる。もちろん、あきらめちゃいけない局面もあるから、…

1.3

2008年度のロブナー賞を受賞したのはConversational AI PlatformのElbot the Robotだ。うん、うずらの方が賢そうだよ? googleが本気を出したら毎年賞を取れる気がするね。

1.1

どちらかというとプログラムを考える方に時間を割きたいので、言葉の定義は現状の知識でサクサクやろう。 「知能」とは、 所望の状態を定義し その状態を得るための解決策を示し 解決策を解消するために努力が出来る ものを指す。多分後ろから解説した方が解…

エージェントアプローチ人工知能第2版日本語版

エージェントアプローチ人工知能第2版日本語版(ISBN:4320122151)が届いたので早速読んでいる。魔術書ではないと書いてあるけど、見た目はどう見てもToPのクラースさんが武器にしそうな本なので、家で少しずつ読み進めることにする。今作り始めているゲー…

quote

下では修正してしまったので、簡単な例を書いておく。 (dotimes (x 10) (let ((counter '(0))) (format t "~A " (setf (car counter) (1+ (car counter)))))) ループごとにデータを与えているから毎回同じ値を示す気がするけど、実際はカウンタは増える。こ…

戦闘モジュール2

(let ((tb (make-hash-table :size 7)) (t-t (list '(0 0) '(0 1) '(0 2))) (lim 100) (cur 0) (pl (list 0 1 2)) ms act (name 0)(tgh 1)(n 2)(x 3)(dur 4)(spd 5)(win 6)(lose 7)) (make-random-state) (setf (gethash 0 tb) (list "John" 20 1 18 1 3 "I'…

戦闘モジュール

(let* ((es (make-hash-table :size 11 :test 'equal)) (p1 "p1") (p2 "p2") (p3 "p3") (turn 0) (s "turn over....") (pl (list p1 p2 p3)) (bn "*simu*") (svvp (lambda (x) (<= (gethash x es) 0)))) (setf (gethash p1 es) 20) (setf (gethash p2 es) 22…

オワタ

(let ((q t) (wx 80) (wy 20) (x 20) (y 19) (yv 0) (xv 0) (buff (get-buffer-create "(^o^)")) (cl "└(^o^ )┐")(cr "┌( ^o^)┘") (cb "\(^o^)/")(c "\(^o^)/")) (save-excursion (with-output-to-buffer (buff) (set-buffer buff) (setup-temp-buffer b…

netinstallerに対応してみた。

netinstaller - 世界の仕組み研究所 - アットウィキにpackage.lを置いてみた。ううむ、やっぱり最初は面倒だ。 他にもpolyedit-modeとかxlisp-modeとかあるけど、使い物にならないのでもうちょっと手を加えてから投入したい次第。いつ手を加えるかは決めてな…

key-chord.l

仕様を見ててカクカクするのが解決したのでkey-chord - 世界の仕組み研究所 - アットウィキにソースを置いておいた。 カクカクすると使いづらいキーは同時押しに対応しなければいいわけで、だからコントロールキー押しながら〜が使えないらしい。というわけ…

key-chordを書いてみた。

emacsにはkey-chord.elなる便利なものがあるらしい。2キー同時押しでコマンドを起動できるとか。key-chord.lはまだ誰も書いてないのか、見つからないのでちょっと書いてみた。 (defvar *key-chord-map* nil) (defvar *key-chord-interval* 20) (defun key-c…

偽abbrev

xyzzyに文字列のコピーを貼り付ける方法が無駄にいくつもある。セレクションのコピー・貼り付けやリージョンのコピー・貼り付けはもちろん、モードによる定型文の貼り付け、dabbrevによる補完などもある。また、abbrevで補完したり、レジスタから挿入もでき…

Zune 30の閏年バグ

http://d.hatena.ne.jp/taizod/20090103/p2なんだけど、あんまりおかしいので再現してみた。 (defun hoge (days &optional (year 1980)) (while (> days 365) (if (is-leap-year year) (if (> days 366) (progn (decf days 366) (incf year))) (progn (decf …

インタプリタとテキストアドベンチャー

テキストアドベンチャーでは、コンソールにキーワードを入力して物語を進める。宣言型アドベンチャーとか。 - 象徴ヶ淵ではファイル入力も受け付ける。シナリオはもちろん、スクリプトファイルを読み込む。とすると、これはインタプリタと全く同じである*1。…

たまに使うコマンドをちゃんと利用するために

xyzzyはemacs風のキーバインドで、いくらでもショートカットキーを登録できる。とはいえ、そんなに入力方法を覚えられるわけじゃない。また、M-xから直接コマンド名を入力しても良い。しかし、これもコマンドの名前を覚えてないといけない。ちょっとコマンド…

新年の抱負

はてなを始めてから1年経ってないので、今年度はまだ終わってないよ! とは思うものの。 まずは単位を取らなくちゃどうしようもないので、それは大前提としよう。去年はxyzzy lispで細々としたものをいくつか作ったので、今年はSchemeを使えるようにしよう。…