Scheme

プログラミングGauche

我慢できずに予約注文したら、思いの他早く来た。まだ触りしか読んでへんが、27章構成の結構なボリュームだ。基礎知識はそこそこにEmacsの設定やテストのやりかたなんかを紹介しつつライブラリをなめていって、実用スクリプトを作りつつ最終的にはWebアプリ…

WiLiKiでAJAXな感じの編集

WiLiKiを普段メモ書きに使ってるんやが、ちょっと席を立つ前に保存…とかやるとページ遷移があってウザい。この記法使えたっけ…?と思って表示を確認したいときもページ遷移があってウザい。というわけで、プレビューとコミットをページ遷移なしでやれるよう…

WiLiKiにカレンダー

なんだかそろそろカレンダーを付けたくなってきた。まー普通にそのへんにあるかなぁ、とも思ったんやが、さしあたり現在公開されてるのがなさげやったんで作った。Gauche:CGI:スケジュール予定表とか参考にしつつ。 [[$$calendar hogehoge]] でhogehogeとい…

R6RSが出てた

http://www.r6rs.org/ なんか知らん間に正式に出てた。記事としては/.Jとか参照。総論賛成、各論反対な感じで揉めてるらしく、R5RSを拡張する形で、納得できる部分だけ取り入れるという動きもあるとかなんとか。わかりやすい日本語のまとめとかがWilikiのほ…

Wilikiで見出し検索

大学で作業してるメモは大体Wilikiに突っこんでいってるんやが、毎日書くメモをいちいち分類しながら書くのもアホらしいんで日付毎にページを作って適当に書く、というスタイルになってしまっている。これだと「前にあんなこと考えてたよなぁ…」と思って探す…

WiLikiでコメント欄

なんかネタを書きとめとくのに一々編集するのも面倒になってきたんで、コメント欄を付けてみることにする。

作業記録にWiLiKi

大学で作業するときはテキスト形式でメモを残してた*1んやが、この休講中に作業したメモをまとめて持ってくのとか面倒いなぁ、と思って自由に弄れるWikiを立てることにした。これぞWikiの本来の使い方。 で、折角の自分専用なんでWiLiKiにした。CVSから最新…

xyzzy 偽scheme-mode

今迄WindowsでSchemeプログラム書くときは、普段使ってるxyzzyでは前に拾ったscheme-mode*1やとインデントが上手くいかんのでDr.Schemeを使ってた。が、いい加減我慢できなくなってきたんで、なんとかならんもんかと思ってちょっと探ってみた。 *1:なんか今…

プロジェクト: EMアルゴリズム稼働

先生にML(Google Groups)で質問したら、等価ではないが、単語出力確率を遷移に依存して出力するのではなく、状態に依存して出力するようにして場合を減らすのが効果的かつ一般的らしいので、その方向で実装したら、ちゃんと動いてかつ速くなった。精度に関し…

プロジェクト: あかんわ…

0になるというのは、一つの文毎に再計算してたのが間違いらしい。各文毎に計算したものを足し合わせて、最後に再計算という手順のようなのでそれで実装。 これでなんとかいけるかな、とか思ってたが、遂に最初にぶつかった問題に戻ってきた。単語出力確率を…

プロジェクト: プログラムの高速化

現状だと初期化とかがありえない位遅いんで、とりあえず0になるところを小さい値で無理矢理ごまかして動くようにしておいて、高速化を図ることにした。 まず初期化が死ぬ程遅いんやが、何でかと思ったらstring-tokenizeしてたのが遅かった。読み込みファイル…

プロジェクト: ランダム文生成 n-gramに一般化

なんか日中はすこぶるやる気が出んかったんやが、夕方から再び作業開始。 リストを使って2-gram専用からn-gram用へ改造したら、ちょっと遅くなったものの割にすんなりいけた。コードも500byteくらいしか増えてない。n-gramのnを増やしていったとき、重複しな…

プロジェクト 昨日の続き

結局昨日やったリスト形式では登録時のコストで死ねる*1んで、結局ハッシュリストで2-gramのカウントまでやってしまうことにした。よくわからんが、make-hash-tableをしようと思ったらmzschemeではsrfi-69と組み込み両方入っててよくわからん(なんか扱うクラ…

プロジェクト

ようやく今日、プログラムを組み始めた。処理系は、最初はGaucheでやろうかと思ってたけど、とりあえず学校のMacでも動く(PLT)DrSchemeでやってみる。これなら一応どこでも同じ環境になる筈…*1。昨日の晩資料を読んでおいて、設計を考えてきていたので割とス…

風水CGI AJAX版作った

姓名判断はXMLをバカ正直に使ってたが、今回は昨日書いたJSONを使って通信することにした。いやぁ、楽やわこれ。DOMでガリガリ掘っていく必要がないからコードが2/3くらいに縮んだ。 今回は3ページに表示を分けてみたが、2ページ目がちょっと分量多いんよな……

GaucheでJSONを送信したい

と思ったので、SchemeでJSONの実装がないか適当に検索したら、なんかPackratとかいう構文解析ライブラリを利用したややこしい実装が出てきたが、Gaucheのモジュールとかないし、解析機能要らんし、ちょっとJSON作って送信したいだけなのにソース読むとか面倒…

風水CGI実装(?)日記

さしあたりめっちゃ適当に相性判断を付けて、メッセージ入力に勤しんだ。 パターンは10個から2個選ぶ組合せなんで、45通りか。割と打ったな。 結局今のところ、相性判断のインターフェイスは一人目を判断した結果ページから、相手の生年月日を入力させて次の…

風水CGI実装(?)日記

昨日中途半端で終わってた星毎の運勢メッセージを入力*1し、金運とかの運勢を強化する方法を出すメッセージを入力し、適当に表示できるところまで。あと細かいエラー処理とかしたけど、まぁどうでもよろしい。 大体システムと中身は見せられるくらいになった…

黒門風水CGI実装開始

だらだら開始。結局Gaucheで実装。まぁ、姓名判断で培ったノウハウを生かしてやってるんで、とりあえず基本の五行を出す為に風水歴のDBを作って、あとは適当なテーブルでルーチンを組んで自分の星とかを出すところまで出来た。今、メッセージを入力するあた…

やっぱり

風水CGIやが、やっぱりGaucheでDBはgdbmで実装するか。占いのデータにいちいちSQL使っても良いことないしなぁ…。うん、そうしよう。

どうしようか

JAVAの自作HTTPサーバで占いを実装しよう、とか言ってたが、やっぱりそんな汎用性の無いことは止めにして、折角使いさしているPHPを使って実装しようかと思案中。あぁ、でもそれやとSchemeでもええなぁ…。GaucheでMySQLか。リハビリも兼ねてやろうかな。 暇…

高速フィボナッチ

http://oss.timedia.co.jp/index.fcgi/kahua-web/show/ossz/oneline/2004-11-29 古い記事やけど、なんか最近知った。フィボナッチ数をO(log n)で計算するアルゴリズム。考えてみればフィボナッチ数の一般項とかでもn乗が入ってるから、あれをm^nの要領でO(lo…

ajaxっぽいことをしてみる昨日の続き

去年の六甲祭用に作った姓名判断CGIを適当にAjaxっぽくした。この程度でAjaxやっても全く有難味がわからんというか殆ど非同期に処理する部分が無いんで普通のDHTMLみたいになってるんやが*1、JavascriptとSchemeでXMLを扱う練習にはなったかも。一応手元のIE…

SXMLでajaxっぽいことをしてみる

AJAXは非同期通信によるUI改善アプローチの一つやってーのは知ってたが、実は詳しくは知らんかったんでちょっとやってみる。

久しぶりにSICPとか開いたり

リハビリに某所の基本問題を解く。流石に基本なんでさくさく進むが、整数の分割数を求める問題の反復プロセス化を考えて詰まった。*1 何かSICPで似たような問題を見た気がしたんで引っぱり出して探してみると、P22のcount-changeが近かった。テーブル化とか…

Schemeでのマージソートの実装を考えていたらそのまま昼寝に突入する。どう考えてもスマートにいかないんで、結局Gaucheに載ってるstable-sort!のソースを見た。あー、なんか偉い人が考えた方法があるんね…。set-cdr!とclosureをうまく使ってるわ。俺では絶…

Scheme入門記事

部のWikiに書いてたやつを書き直し中。前に書いてたときは相当苦しみながら仕様書から引っぱってきたりしながら書いてただけあって、結構酷い。自分でもわかりにくい。頑張って既存記事のリファインくらいはやっておきたいな。

Gauche-sdlその後

なんとか使い方を理解して、移植したのが動くところまでいった。set!というワードが目立つ無茶苦茶泥臭いコードやけど…。んで適当にアクションっぽい雰囲気に拡張して、何故かCにコーディングし直してから纏めて部のwikiにup。 まぁ、実質プログラミング言語…

Gauche-sdl

GaucheのライブラリでSDLが使えるっぽいので試してみた。おおーちゃんと動く。素晴しい。SDLの構造体がどういう扱いになってるのか調べて、結果builtin classになってたんやが、これのインスタンス生成の方法で暫し悩む。結局ソース見て、make-sdl-rectとか…

インストール

微妙にした…?ユーザ作成あたりで面倒になって中断中ここらへんのサンプルを読むと、継続を手で記述してHTMLのリンク部分に埋め込めるらしい。成程、実装がどうなっとるんかは全く知らんが、発想としては自然やなぁ。そういう意味でCPS*1なわけね。やっと具…