2008-02-01から1ヶ月間の記事一覧
Lisperの後輩にそそのかされて薦められてPractical Common Lispを読んでいたら,count-if関数があることに気がつく.昨日のブラックジャックの問題を解くときに使った1の枚数を数える部分はこうやって書ける. (defun number-of-1 (lis) (count-if #'(lambda…
そういえば計算結果に分数が出て,どうやって小数にするんだろと思っていた.解決.分数から小数への変換はcoerce関数を用いる.1/3のような循環小数は適当なところで丸められてしまう. (coerce 3/5 'float) => 0.6 (coerce 1/3 'float) => 0.3333333 小数…
昨年GmailがIMAP対応したというので,やろうやろうと思っていてやっていなかった.ようやく手を出したものの,色々と躓いたのでメモ 自分のスペック stunnelやopensslは入っている Mewの基本的な設定はおk まず,.mew.elにこんな感じで書く. ; IMAP for Gm…
Lispには高階関数が沢山用意されている.map族でいえば,mapにはじまり,mapcar, mapcan, mapcon, maplist, map-intoなどがある.ほとんど知らんし,使えん.当然のことながら今までmapcarくらいしか使ったことがなかったのだが,そういやPerlにおけるgrepに…
日経ソフトウェア2008年4月号のパソコン甲子園の問題を解く連載.今回はブラックジャックの手札が与えられた際に点数を返すというもの. とても時間がかかりました.けれど,解法にはそれなりに満足. ブラックジャックルール説明 ブラックジャックは,1〜13…
今まで変数のリファレンスを取得するためには,わざわざリファレンス変数に代入してから使っていた. こうすれば変数宣言と同時にリファレンスを取得できるみたい. \ my %hash; 確認プログラム my $hoge_ref = \ my %hoge; %hoge = (yamada => 1, tanaka =>…
一度習得すると重宝するシェルスクリプトだが,慣れないうちはこれほど不便なものはないと思ってしまう.PerlやRubyなどのスクリプト言語の方が使う機会が多いので,そっちで書けばいいじゃん,と思っていた.自分の場合はコマンドラインスクリプトも全てPer…
昨日解決しなかった問題が解決しました.t_morita様ありがとうございます! hello.rbとhoge.rbを同じディレクトリに作成. # hello.rb puts "hello" # hoge.rb command = "ruby hello.rb" output = `#{command}` puts output 実行すると % ruby hoge.rb hell…
RubyでもPerlとほぼ同様にコマンドの呼び出しができる.こんな感じ. system("ruby ./hoge.rb") 出力を取得したい場合は``を使う.これもPerlと同じ output = `ruby ./hoge.rb` ここからが落とし穴.Perlでは``の中身に変数を使うことが出来た.Rubyはそうは…
他の言語でそうやるように,コマンドラインからLispプログラムを呼び出したい.軽く調べてみたところ,あまり情報がない.とりあえず知りえたことをメモ. 他の処理系ではわからないけれど,CLISPの場合,こんな感じのプログラムを書けば良い. ; test.lisp …
数理統計学の基礎―よくわかる予測と確率変数作者: 新納浩幸出版社/メーカー: 森北出版発売日: 2004/05メディア: 単行本 クリック: 2回この商品を含むブログ (2件) を見る (2008-02-20読了)学部2,3年生向けに書かれた統計解析の本.ただサブタイトルにある…
モバゲータウンがすごい理由 ~オジサンにはわからない、ケータイ・コンテンツ成功の秘けつ~ (マイコミ新書)作者: 石野純也出版社/メーカー: 毎日コミュニケーションズ発売日: 2007/06/19メディア: 新書購入: 5人 クリック: 243回この商品を含むブログ (86件)…
SLIMEの正しい終了の仕方を知らず,lispプロセスがみっつも残ってCPUを占拠してた. YABEEEEE!!!11と思ってkillしようとしたが殺せない.よくわからないのでrebootする羽目になった.rebootする前にuptimeしたら173daysだって.一斉停電以降ずっと稼動してた…
そういや今までLispで配列を使ったことがなかった.Lispのリストはデータ構造でいえば線形リストなので要素の追加や挿入が楽だけれど,規模が大きくなるとo(n)で時間がかかる.配列の場合は配列ポインタからのオフセットで表現されるのでランダムアクセスが…
事例で学ぶテキストマイニング作者: 渕上美喜,末吉正成,高山泰博,今村誠,小木しのぶ,村田真樹,上田太一郎出版社/メーカー: 共立出版発売日: 2008/01/09メディア: 単行本購入: 1人 クリック: 96回この商品を含むブログ (9件) を見る (2008-02-18読了)タイト…
前回:テキスト処理にWekaを使う(その1:文書のトークン化とTFIDF重みづけ) 昨日やらなかったことがとても簡単なことに気がついたので,メモ. Weka3.5.xからTextDirectoryToArffがTextDirectoryLoaderに変更になったので,注意.今後はそちらになると思…
チーム・バチスタの栄光(下) 「このミス」大賞シリーズ (宝島社文庫 600)作者: 海堂尊出版社/メーカー: 宝島社発売日: 2007/11/10メディア: 文庫購入: 7人 クリック: 55回この商品を含むブログ (439件) を見る (2008-02-17読了)「上巻読み終わる前に下巻を…
テキスト分類課題などでは,文書をTF-IDF重み付けしたbag-of-wordsで表現することが多い.これをベースラインにするため,さくっとこの処理をしたい.卒論やM1のときは,この処理をわざわざ手で書いたのだが,バグが出たら大変だし,なにより面倒くさい. 論…
チーム・バチスタの栄光(上) 「このミス」大賞シリーズ (宝島社文庫 599)作者: 海堂尊出版社/メーカー: 宝島社発売日: 2007/11/10メディア: 文庫購入: 9人 クリック: 132回この商品を含むブログ (565件) を見る (2008-02-16読了)感想その他は下巻に書きま…
Lispのメイン開発環境はxyzzyだったけれど,今後のことを考えてSLIME導入. インストールは簡単.FreeBSDなのでPortsから入れて.emacsをマニュアルどおりに変更.GCLが対応してないっぽいので,CLISPを使うことにする(って違いがわからんくらいの初心者です…
完全に寝ぼけていた.mapcarを 要素が値のふたつのリストの内積を取る場合,こんな感じで書ける (defun inner-product (xlis ylis) (apply '+ (mapcar '* xlis ylis))) mapcarは引数に複数リストを取ることもできる.その場合は,その数分のcarを第一引数の…
ようやく積読状態にあった数学ガールを読んでいる.これはすごい.テスト前に覚えて2時間後には忘却の彼方だったテイラー展開や絶対不等式からの相加相乗平均の証明など,秀逸なものばかり.これは高校生の頃に読みたかった! 実は部分的に理解していないも…
Common Lispにあるはずのstring-to-numberがxyzzyになくて困った.(Common Lispにもない.とあるxyzzy使いさんご指摘ありがとうございます!) 本来ならば (number-to-string 256) "256" (string-to-number "128") 128 で変換できる.できない. どうやらxy…
かっこつけてちょっと大規模なプログラムを書きたくなったので,機械学習の初歩的なプログラムを実装しようとLispでかりかりしている.距離関数などの記述は非常に楽だなぁと思う. データのインスタンスをどうやって書こうと思っていて構造体があれば楽だな…
数学ガール (数学ガールシリーズ 1)作者: 結城浩出版社/メーカー: SBクリエイティブ発売日: 2007/06/27メディア: 単行本購入: 58人 クリック: 1,055回この商品を含むブログ (967件) を見る (2008-02-15読了)ようやく読了.感動した. 自分が高校生の頃は,…
にあたるものがないっぽい.concatと高階関数を使えば実現できるかもしれないのだけれど,Lisp脳が出来ていないので無理. ゆとりらしく,自分にあったものを書くことにした. (defun join (delm lis) (do ((oldlis lis (cdr oldlis)) (str (car lis) (conca…
学部3年で情報工学科のLisp授業にもぐってから苦節3年(その間ほとんど触ってないけれど),ようやくLispでプログラムが書けるようになってとても楽しい. 今日やったことまとめ(時系列順) 距離関数をかりかり書きまくる 構造体の存在に気がつく.ちょっと…
LispでNaiveBayesを実装してみた.ハッシュの力に頼らざるを得なかったし,不必要なところでもハッシュを多用している.明らかにPerl病なコードが完成した. コメント空行込みで130行程度.勉強時間,ハマった時間を含めて3時間程度かかった. 書き終えて思…
Perlのようにexisitsを気にせずに使える関数を自作.既にあるだろうけれど,自分でやることに意義がある.おつかいと一緒.それにしてもネーミングセンスわろし. (defun hash++ (key hash) (if (null (gethash key hash)) (setf (gethash key hash) 1) (set…
前回の挫折ポイントであるハッシュから開始.めちゃくちゃ簡単なことに気がつく. 基本操作はこんな感じ ; ハッシュを作成 (setq myhash (make-hash-table) ; 値の代入 (setf (gethash 'hoge myhash) 1) (setf (gethash 'foo myhash) 2) ; 取得 (getf 'hoge …