白鳥は 哀しからずや 空の青 海のあをにも 染まずただよふ 若山牧水のうた、亡き父が戦前、文学青年で愛国主義に染まらず 孤独だったためこの歌を好んだと教えてくれた。 満州と千島で戦争をしたが、栄養失調で部隊が本土に戻ったとき 玉音放送を病院で聞いた。
新しい Ubuntu に Gauche と Kahua をインストール する機会があったのでメモ Gauche と 必要なライブラリ をインストール $ sudo apt-get install gauche gauche-gdbm gauche-dev gauche-docgauche-gdbm がないと、後で Kahua の make check のときに怒られるので一緒に入れる gauche-dev に入っている、gauche-config gauche-package gauche-install gauche-cesconv とか必要なのでこれも一緒に入れる gauche-doc はどのみち入れる思うので入れておく makeinfo をインストールKahua のコンフィグ時に、無いよ、言われるので入れる $ sudo apt-get install texinfoここ、プログラム
研究所の山本君がSICP(Structure and Interpretation of Computer Programs)の両替問題がなんとかといっていたので, 両替問題をおさらいしよう. 英語ではchangeというので, Graham, Knuth, Patashnik著, 有澤他訳の「コンピュータの数学(Concrete Mathematics)」では, 「釣銭の問題」(299ページ)となっている. 正しくは, 空港のCHANGEの窓口と同じで, 外国のお金から, または高額のお金からの両替である. 数学の問題としては, 高額のお金の崩し方の話題である. この問題はいろいろなところに書いてある. 前述のSICPや, コンピュータの数学の他, G. PolyaのHow to Solve It(如何にして問題を解くか)にもあり, 私がたまたま持っている, PolyaとTarjanの19
プログラミング言語のインタプリタを実装するとき、構文木にあわせて再帰で書くほうが基本的に楽だ。しかし、多くの実装で再帰呼び出しは回数に制限があったり処理が遅かったりする。そこで、再帰呼び出し型のevalをループで記述する動機ができる。ただ、いきなりループで書こうとすると、インタプリタコードがわけわからなくなるし、バグも入りやすい。 そこでループを作る戦略として、 再帰呼び出しで実装 再帰呼び出しのContinuation Passing Style(CPS)化 CPS形式は末尾呼び出し形式でもある Continuationのde-functionalize、つまりContinuationの関数表現をデータオブジェクトであらわす クロージャを明示的なデータオブジェクトにする 末尾呼び出し関数のループ化 こうすれば、ループ形式インタプリタも素直に対応付けができる。クロージャも使わないので、Ja
一昨日ブログに書いたPicricというScheme処理系について、プログラミングしたときの方針とか、そのへんをまとめてみます。 Scheme(Lisp)の処理系は実装が簡単簡単と言われる割にその実装方法についてまとめられたサイトがほとんどなくて、僕自身調べるのにかなり苦労しました。もうこれ以上僕みたいな犠牲者を出したくありません。 とはいえいろいろ間違ってる箇所もあるかと思いますので気づいた方はコメントをおねがいします。 まずPicricについて。 実は昔々(今年春)NLispというものを作った。 Pythonで実装されたSchemeのサブセット。 継続が実装されていなかった。 今度こそは継続を!pythonからも脱脚して一人前になりたい! そんな動機で開発を始める。 名前の由来はピクリン酸。 ピクリン酸はそのやたら可愛い名前にも関わらず実はものすごい爆薬。 そういう「意外とすごい」インタ
Prologの入門文書に飽きた人に たけおか@AXE (竹岡尚三) Update: 2007/DEC/08 Update: 2007/AUG/18 初出: 2007/MAR/10 なんだか、Webの世界には、日本語では、純粋な論理型言語としてのProlog入門の 文書しかなく。 Prologは、実用言語(を目指しているはず)なので、ピュアな論理の話だけでは、 いけないと、思い… で、こういう雑文にて、恥をさらす。 1. 高階による後悔 実用プログラムが、あんまりに高階手続きを使っていると、それはそれで、困り そうなものなのだが… でも、やはり、高階な呼び出しは、必要だ。 aho(X,Z) :- A =.. [plus,1,X,Z], call(A),print(Z). という述語を定義し、 実行とその結果は次のとおり。 ?- aho(4,Z). 5 Z = 5 「call/1」 は、 引数
最近一部で盛り上がっている「末尾再帰」について自分の理解を確認するのも兼ねて書いてみます。 (そもそも自分がふったのがきっかけっぽいので)。 上級者の方は間違い等に厳しくつっこんでもらえると助かります:-) 背景 自分が末尾再帰を知ったのは多分Schemeの勉強を始めた頃だったと思います。 例えばSICPという本では20ページあたりにこっそりと出てきます。 そのころの理解はかなり浅いもので「ふーん。」程度でした。 さて後日Schemeの処理系を実装することになりR5RSというSchemeの仕様書を読んだところ Scheme の実装は真正に末尾再帰的(properly tail-recursive) であることが要求されている。これは,たとえ繰返し計算が 構文的に再帰的手続きで記述されているときでも,定数空間 でその繰返し計算を実行することを可能にする とあり末尾再帰のことを詳しく知る必要性
結局Chaton上のGaucheのチャットルームで質問したら、shiroさんにcallccのないプラットフォーム上で末尾再帰最適化する方法を教えて頂いた。
DB2 Express-C v9.7.2のWindows版で使えていたLIMIT/OFFSETが同Linux版で使えなくて、プラットフォームによって違うのかと思ってしまい、同等のことができる構文をいろいろと調べた挙句、インストール直後の設定が違っていただけという。 で、せっかくなので、調べたいろいろをまとめてみようということで。 ただDBごとに並べても面白くないので(謎)、構文ごとにまとめてみるというアプローチで(更謎)。 前提として、次のようなテーブルを作っておく。 CREATE TABLE hoge(str VARCHAR(8)) INSERT INTO hoge(str) VALUES('bbb') INSERT INTO hoge(str) VALUES('ddd') INSERT INTO hoge(str) VALUES('fff') INSERT INTO hoge(str)
GUIとSubversionの親和性の低さは異常だと思うんだ。 もうダメだねーこういう使い方する場合は。信頼性低すぎる。 …ということで。 Windows上でレポジトリをチェックアウトしてた場合に、 いたるフォルダに生成される.svnフォルダを再帰的に消す方法。 プロンプト上から、 for /f "tokens=*" %d in ('dir /b/s/a:dh *.svn') do rmdir /q/s "%d"でいいようです。 .svnフォルダを再帰的に削除するDOSコマンド - よねっと [ヨネテル テックメモ] http://www.musicstudio.jp/archives/2008/11/svn%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%82%92%E5%86%8D%E5%B8%B0%E7%9A%84%E3%81%AB%E5%89%8A%E
概要 SQL Server 2005 Express で DB を復元しようとしたとき、以下のようなエラーメッセージが表示される場合があります。 ((復元に失敗しました。 System.Data.SqlClient.SqlError: 'RestoreContainer::ValidateTargetForCreation' を試行中に、オペレーティング システムからエラー '5 (アクセスが拒否されました。)' が返されました。 (Microsoft.SqlServer.Express.Smo))) 解決法*1 解決手順は以下の通りです。 スタートメニューより「構成ツール」-「SQL Server Configuration Manager」を起動 SQL Server のインスタンスを選択し右クリック「プロパティ」 ビルトインアカウントを「ローカルシステム」に変更 念のため SQL S
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く