« クアッドコア、すげぇ。(笑) | トップページ | ウイイレとウクレレ »

すいません、敗北しました。orz

イマサラながらuimを使ってみる、のコメントの方に書いたんですが、schemeを見てまして、cametanさんの提示してくれたソースを追っかけてたんですが、大体の構造は解りまして、まあ、こんな感じで構築するのだな、ってのは理解したんですが、問題点の修正方法が解りませんでした。orz

ワタクシ、schemeに敗北しました。(爆)

せめてpythonなら、なんとかなったと思うんですが。(^^;

へるぷみ〜>cametanさん
#たぶん、記事が彼方に行ってしまったので、エントリにしとかないと気が付かないと。

|

« クアッドコア、すげぇ。(笑) | トップページ | ウイイレとウクレレ »

Ubuntu」カテゴリの記事

パソコン・インターネット」カテゴリの記事

コメント

回答案提示しました。

投稿: cametan | 2009年10月 3日 (土) 19時36分

回答案側にお礼(笑)を記載しています。

でも、uimに組み込んだ場合に期待する動作にならないんですよね。
なんとなく、uim側の問題というか、仕様に何かが抵触しているのかも知れません。
とはいえ、プログラムその物は、仕様通りに、期待するリストを返しているので、cametanさんのプログラムの問題ではありません。
全件の組み合わせだと問題が発生するのかな…。

投稿: かおりん | 2009年10月 3日 (土) 22時39分

uimも使ってませんし、SigSchemeって処理系も触った事無かったんですが、Synapticで検索かけてみると、SigSchemeがあるんで、ちょっと動作見てみますよ。
ひょっとしたら、何か使ってる関数が(僕はR5RSで動く可搬性のあるコードを書いたつもりなんですが)SigSchemeで欠けてるのかもしれませんし。
見てみます。

投稿: cametan | 2009年10月 3日 (土) 23時29分

ふうむ。
SigSchemeで試してみたんですが、動作に問題ねえなあ。

SigScheme入ってますよね?
どうやら、SynapticでuimをインストールするだけじゃSigSchemeが(依存関係がある筈なのに)自動では入らないみたいで、ひょっとしたらSchemeインタプリタが欠けてるだけ、の可能性もあります。
(ソースからビルドしたのなら、これはあり得ない仮定ですけど)

じゃなかったら、uimの提供側にバグ報告してみても良いかもしれません。

投稿: cametan | 2009年10月 3日 (土) 23時36分

SigSchemeはインストールしてないんで、アレなんですが、恐らくですが、関数の問題じゃなくて、生成されるリストがuimの想定している組み合わせと異なるって話なんじゃないかな、と。

なので、プログラム(関数)の問題ではなく、生成された結果が、uimとなんからの齟齬を生んでいるんじゃないか、と。
元ネタで、全件組み合わせしてないじゃないですか。
それは、その辺が理由だったりするのかなぁ、と思ってます。

投稿: かおりん | 2009年10月 4日 (日) 00時39分

>SigSchemeはインストールしてないんで、アレなんですが

ああ、じゃあ、取りあえずSigSchemeインストールしてみた方が良いですよ。
恐らくGoogle Codeで配布されているtarball見る限り、SigScheme「込み」でuimは「完全になる」んじゃないか、って思います。
評価してくれるエンジンが無かったら、恐らく.uimファイルがベタな(力技の)書き方しないと認識してもらえないのでは、と。

たまにDeb系のパッケージの配布方法ってイマイチ意味が分かんないんですよね。
以前、日本語フォーラムの方に、数値演算ソフトOctaveの「追加パッケージが入れられません」ってネタが上がっていて、確かにマニュアル読む限り、「追加パッケージはOctave経由で専用レポジトリからインストールされる」ってな事書いてあるんですよ。でもUbuntuじゃ上手く行かん、と。
で、Synapticで調べてみると、Octave本体以外に「Octave専用のヘッダーファイル」ってのが別パッケージになってたんです(苦笑)。そのヘッダーが無いと、レポジトリからソース入手してOctaveで使えるようにコンパイルしてくれない。それが原因だったんです。
んで、それ入れると上手く行ったんですが、要するに「アプリケーション作成側」が全て一体で動くように設計してるんですが、Debian系の判断により、たまに「パーツ別」でパッケージ分けてたりするんです。それがおかしい、と言うか何故そんな余計な事するんか、と言うか、これじゃあ初心者に分かり辛いだろ、と言うか(笑)。たまに困るんですよね。
そんなわけで、一回SigSchemeインストールしてみてやってみてください。そもそもSigSchemeは調べてみると、「uimに組み込む用途の為"だけに"」設計された処理系の模様なんで。明らかにuimの「一部」なんです。

投稿: cametan | 2009年10月 4日 (日) 00時51分

インストールして、ご提供コードのrequireの部分を削除し、結果をdisplayするように書き換えてsscmで実行して見たんですが、下記のエラーがでてますね。

Error: in define: bad definition form: (define *data*   (quote ("b" "c" "d" "f" "g" "h" "j" "k" "l" "m" "n" "p" "q" "r" "s" "t" "v" "w" "x" "y" "z"   "B" "C" "D" "F" "G" "H" "J" "K" "L" "M" "N" "P" "Q" "R" "S" "T" "V" "W" "X" "Y" "Z")))

なんか、大域変数の定義の仕方が違うんでしょうか。
なぞだ。

投稿: かおりん | 2009年10月 4日 (日) 01時14分

>結果をdisplayするように書き換えてsscmで実行して見た

ちょっとその「改造」を提示してもらえますか?

端末でsscmで見る限り、こっちでは特に問題出てないんですよ。
んで、Cの人は結構勘違いするんですが、Schemeとかの関数型言語、かつインタプリタってそんなに表示命令(例えばdiaplay)とか使わないんです。Cなんかの「手続き型言語」だと入出力が極めて大事なんですが、その辺Lisp系だとちょっと違うんですよね。あんま重要じゃない。

コメントアウトはセミコロン(;)で行末まで有効なんで、「削除」するよりはコメントアウトが有効です。
require辺りはコメントアウトした方が良いですね。
んで、ファイルのロードは

(load "文字列")

で指定します。このケースだと、(load ".uim")か何かでしょう(ファイル名に依りますが)。
んで、例えば端末のプロンプト辺りで

sscm>ja-rk-rule

とか入力してみます。どうなりますか?

投稿: cametan | 2009年10月 4日 (日) 01時26分

こんな感じ。

結果確認のために、display使ってたんですけどね。

(define *data*
 '("b" "c" "d" "f" "g" "h" "j" "k" "l" "m" "n" "p" "q" "r" "s" "t" "v" "w" "x" "y" "z"
  "B" "C" "D" "F" "G" "H" "J" "K" "L" "M" "N" "P" "Q" "R" "S" "T" "V" "W" "X" "Y" "Z"))

(define (foo data)
(map (lambda (c)
`(((,c)) (,c ,c ,c)))
data))

(define (combination k data)
 (and (positive? k)
   (<= k (length data))
    (cond
     ((= k 1)
      (map (lambda (c) (list c)) data))
     ((= k (length data))
      (list data))
     (else
      (let ((x (car data))
         (y (cdr data)))
       (let ((z (combination (- k 1) y))
          (w (combination k y)))
        (append (map (lambda (c) (cons x c)) z) w)))))))

(define (bar data)
 (map (lambda (c)
     (let ((x (car c))
        (y (cadr c)))
       `((,c) ((,x ,x ,x) (,y ,y ,y)))))
    data))

(define (baz data)
 (map (lambda (c)
     (let ((x (car c))
        (y (cadr c))
        (z (reverse c)))
       `((,z) ((,y ,y ,y) (,x ,x ,x)))))
   data))

(display (foo *data*))
(display (bar (combination 2 *data*)))
(display (baz (combination 2 *data*)))

例のサイトでは、正しく結果が表示されてるみたいなんで、構文違うのかな、とも思ったんですが、削除時にミスしてますか?

投稿: かおりん | 2009年10月 4日 (日) 01時44分

ああなるほど。

>削除時にミスしてますか?

いや、してないと思います。

ええと、何故displayが必要ない、って言ったのかと言うと、(load "ほにゃらら")でSigSchemeにファイルを読み込んだあと、プロンプトで、例えば

sscm> *data*
("b" "c" "d" "f" "g" "h" "j" "k" "l" "m" "n" "p" "q" "r" "s" "t" "v" "w" "x" "y" "z" "B" "C" "D" "F" "G" "H" "J" "K" "L" "M" "N" "P" "Q" "R" "S" "T" "V" "W" "X" "Y" "Z")
sscm>

ってすぐ見れるから、なんですよ。現時点、*data*と言うシンボルはデータ構造を表す「リスト」に束縛(バインド)されてるんで、シンボル*data*をインタプリタで入力した時点で、結果をすぐ確かめる事が出来るんです。だからdisplay命令はCのような「コンパイラ型」と違って、テスト段階では使わないんです。使う必要が無い、と言うか。
他も同じなんですよね。単に端末のインタプリタから

sscm> (bar (combination 2 *data*))

とすればdisplayを介さないでも、結果はすぐ表示されるんです(結果が長いんで、貼り付けませんが)。

今これ読んでたんです。

変換用テーブルのカスタマイズ:
http://anthy.sourceforge.jp/cgi-bin/hikija/hiki.cgi?CustomizeUim

これって例のコードの元ネタですよね。多分これ読んで作ったのか・・・・・・。
.uimの「基本書式」見てみたんですが、特に問題無いんですよね。
唯一引っかかるとすれば、ひょっとして関数定義を.uimでは認めてない、のか・・・・・・?
だとすれば、ホント力技しかねえなあ(苦笑)。Schemeを介してファイルを自動生成させるか(笑)?こっちで書かなくて済むように(笑)。

投稿: cametan | 2009年10月 4日 (日) 01時55分

ああ、もしかして。

ブログからコードコピペしました?
僕、ブログのコードってインデント効かないんで、全角スペースで揃えてるんですよ。
ひょっとしたらそれでおかしな事になってんのかもしれません。大域変数の設定方法、なんて違うとは思えませんから。
それで無視されてんのかな?余計な事したかも。
(可能性ありますか?)

あと、

文字コード:
http://anthy.sourceforge.jp/cgi-bin/hikija/hiki.cgi?CustomizeUim#l4

も見てたんですが、UTF-8記述のファイルで大丈夫なのか、って問題もありますよね。

一旦、僕が書いたソースそのままのヤツ(ファイル名はuim.scmにしてますが)送りますよ。インデントでバカな事なってたとしたら申し訳無いですし。
んで、可能だったらiconv辺りで一旦EUC-JPにファイル変換してみれば良いかも。
それで問題点洗い出しましょう。

投稿: cametan | 2009年10月 4日 (日) 02時06分

出ました。(笑)
全角空白だったんですね。気がつきませんでした。
ってことは、やっぱりロジックには問題ないんですよ。
でもuimでは喰えないってことになるんじゃないかな、と。

以前に試したエントリに記載のものも関数化されてると思うんで、関数不可ってことはないように思うんですが、いずれにせよ、コピペで試していたので、半角空白に変換して、もう一度やってみます。
#うまく行きそうですけどね。

投稿: かおりん | 2009年10月 4日 (日) 02時20分

あ、ちなみに、設定ファイルはutf-8で保存されているんで、そんな問題ないと思うんですけどね。
日本語入ってるならともかく。

投稿: かおりん | 2009年10月 4日 (日) 02時21分

たった今、動作確認しました。
完璧です。
これで、力技じゃない子音に関しての設定が可能になるので、大変使い易くなると思われます。

いや、ありがとうございました。
#まさか全角空白とは。(^^;
#気がつけよ。>ワタクシ

投稿: かおりん | 2009年10月 4日 (日) 02時25分

いちおう、メールでコード送付しました。

>全角空白だったんですね。気がつきませんでした。

いや、ごめんなさい。僕が「見やすさ」優先して余計な事しちゃいましたね。
HTMLだったらpreタグ咬ますトコなんですけど、この辺掲示板関連ってちょっと不便ですよね。
(でもLisp系コードはインデント噛まさないと読めない・苦笑)

>以前に試したエントリに記載のものも関数化されてる

いや、ところがされていないんです。あれって大域変数を「ベタに」設定してるだけ、なんですよ。

Schemeってちょっと変わっていて、大域変数宣言も関数の設定もdefineでやっちゃうんです。何でもシンプリシティを追求したそうで。
そしてこの辺がCommon Lispと大きく違うんです。

単純に言うと、Schemeではhogeってシンボルと「何か」を結びつける場合defineを用いるんですよ。
例えば

(define かおりん '1番!)

みたいな。これでシンボル「かおりん」を評価すると「1番」が返される。
んで、この「何か」が任意なんですね。つまりここが「無名関数」(ラムダ式)でも構わない、ってのがポイントなんです。

(define かおりん (lambda (x) (if (eqv? x '女) '結婚しよう '帰れよ!)))

みたいな。

> (かおりん '女)
結婚しよう
> (かおりん '男)
帰れよ!
>

これが実行結果なんですけど(笑)。
この定義方法がSchemeでの「関数定義」なんです。シンボルを無名関数(ラムダ式)と結びつけちゃう。
ただ、ラムダ式はlambdaってのが長ったらしいんで、要するに構文糖衣として

(define 実行形式 本体)

が準備されているに過ぎないんです。
これで書くと、上の関数「かおりん」は

(define (かおりん x) (if (eqv? x '女) '結婚しよう '帰れよ!))

になるわけです。

つまり、

丘の道を登り:
http://vagus.seesaa.net/article/108510198.html

のSchemeコードは「関数appendを用いてデータを作ってシンボルと束縛してる」んですが、結果、定義してるのは「大域変数」ですね。関数自体は全然設計してないんです。

投稿: cametan | 2009年10月 4日 (日) 02時39分

>たった今、動作確認しました。
>完璧です。

ああ、よかったです。

>いや、ありがとうございました。

いやいや。いつもお世話になっていますし。
また、「理論的言語」のSchemeが思わぬトコで役立ってよかったです。
こう言うのって楽しいですよね(笑)。

投稿: cametan | 2009年10月 4日 (日) 02時43分

だいぶ感覚的には理解してきましたので、あとは制御文と、組み込み関数を知れば、どうにかなりそうな気がしてきました。(笑)
まあ、慣れてないと、どうしても力技的解決が手っ取り早く見えそうな言語体系ですね。
綺麗に書くために信念が必要そうというか。(笑)

たぶん、「解ってる」ひとが書くと、かなり綺麗にコンパクトになるんでしょう、この手の構文だと。
GUIを含む全てを、これで書くのは、ちょっと厳しい気がしますが、今回のような自然言語相手にする場合には、むしろ感覚的に関数と変数定義を混ぜて考えられるので、便利かもしれません。
特に配列というか、リストの構成に自由度があるので、言語関連処理はラクでしょうね。
#だからコンパイラが書けるのか。

投稿: かおりん | 2009年10月 4日 (日) 02時46分

>だいぶ感覚的には理解してきましたので、あとは制御文と、組み込み関数を知れば、どうにかなりそうな気がしてきました。(笑)

どうにかなりますよ(笑)。
ある種、至極「単純過ぎる」言語なのは事実なんで。ネックは「カッコだけ」なんですよね(苦笑)。

>まあ、慣れてないと、どうしても力技的解決が手っ取り早く見えそうな言語体系ですね。

そうですね。
まあ、Lisp一般に於いては、SchemeよりCommon Lispの方が「力技的解決」には向いてますね。
他にも、以前書いたと思いますが、Emacs Lispなんかもコード的には「力技解決」やってる人が多い言語です(笑)。

>綺麗に書くために信念が必要そうというか。(笑)
>たぶん、「解ってる」ひとが書くと、かなり綺麗にコンパクトになるんでしょう、この手の構文だと。

そうですねえ。手続き型言語やってるのが長い人だと「ちょっとした」コツが分かるまで違和感感じつづけるかもしれません。
ただ、慣れると圧倒的に、例えばCで「同様な問題を解け」って言われると、データ構造設計から始まってかなり長いコード書かなきゃなんなかったりするんですけど、Schemeだったら一瞬で短く、ってのは「あり得ます」。そのくらいポテンシャルは高いですね。
いつも引き合いに出すGoogleの高林哲さん(この人は元々Ruby使いだったようですが)も次のような事を書いてますね。

横着プログラミング 第10回:
http://0xcc.net/unimag/10/

>Scheme を学んで からは、他の言語でプログラムを書くときの切れ味もずいぶん変わっ た気がする。

ちなみに、Ubuntu Magazine Japanに高林哲さんの名前がチラっと出てきて(p.61)いてビックリしました(笑)。

>GUIを含む全てを、これで書くのは、ちょっと厳しい気がします

現状ではライブラリが足りない、ですからね。
ところが、最初のGUIって殆ど「コレ」で組み立てられたようです(笑)。
一つ目は70年代後半にMITで実験的開発が成されていたLispマシン。また、Xerox辺りで開発されていた「GUI」ってのもルーツは殆どLispなんですよ。
(そもそも、Macの元ネタとなったとされるパロアルトのSmalltalkってのは内部的にはかなりLispに影響を受けてたらしい、です)
Xeroxも後にLispマシンとか出してて、「凄い開発環境」だったらしいですよ。GUIバリバリで。単価が高いんで「売れなかった」んで消えちゃったんですけどね(笑)。
いずれにせよ、初期のGUIにLispはかなり貢献してたんです。
(と言うか、Lispは「探索的プログラミング向け」で、当初はGUIが「どーなるのか」全く分からなかったんで、手続き型言語で「計画して」「設計して」「書く」とは行かなかったし、リスクが高かったのです)

>特に配列というか、リストの構成に自由度があるので、言語関連処理はラクでしょうね。

そうなんです(笑)。もうCの配列とか使うの辛くて辛くて(笑)。何で伸びないんじゃ、とか(笑)。

投稿: cametan | 2009年10月 4日 (日) 03時10分

単なる思いつきですが、これ(SchemeとかLispとか)で、オブジェクト指向系のDBMS書くと面白いかも知れませんね。
従来のレコード定義型のDBMSでは性能的な限界が来ているところもあり、設計時には決められなかった検索パターンなどの追加が困難であったりするので、これから流行りそうな体系なんですが。
手続き型言語での実装では、どう考えても速くなりそうになかったんですが、今回のこの件で、もしかしたら、この手の言語なら、と思えてきました。
まあ、慣れがないので具体的な実装イメージまではついていないんですが、リストを格納して、速くアクセス出来るストレージのライブラリがあれば、小規模なオブジェクト指向型DBMSは開発出来そうですね。
#こんなところに言語の壁があるとは思わなかったけど。

投稿: かおりん | 2009年10月 4日 (日) 03時22分

>単なる思いつきですが、これ(SchemeとかLispとか)で、オブジェクト指向系のDBMS書くと面白いかも知れませんね。

あ、実例あります。
PostgreSQLって知ってますか?MySQLのライバルですけど。
初版はLispで書かれたデータベースだったんですよ。後にCで書き直されたんですが、そもそもこれも「リレーショナルデータベース」ってどうなるんだか「丸っきり分からなかった」時に作られたんで、試作はやっぱりLispだったんです。んで、ある程度ノウハウ溜まってから「Cで書き直し」ってパターンですよね。
つまり「何がどうなるか分からん」って場合、要するに「仕様書決めるにも決められない」場合に特にLispによる「見切り発車」が効力がある模様です(笑)。あとは、どーにでもなる、と(笑)。
これは歴史的には良くあるパターンなんです。「Lispで開発されて」ノウハウ溜まってから他言語でやる、と。

ちなみに「オブジェクト指向」ってのもそうなんですよ、実は。
もちろん、最初はsimulaなんですけど、結果残ってないでしょ?殆ど使われていない。
一方、LispはLispマシンの設計の際、「オブジェクト指向」っぽいのが必要になった。んで、当然「言語を変える」必要が無いのが「マクロ」なんですよね。マクロでバンバン「オブジェクト指向」を実装しちゃって凌いだ、と言う逸話があります。
このノウハウがその後、ANSI Common Lispに含まれるCLOS(Common Lisp Object System)の元になります。
この「オブジェクト指向」は、実はC++よりも標準化が早かったんです。世界で一番最初に「公式仕様を持った」オブジェクト指向言語(込み・笑)は実はANSI Common Lispなんです。

>従来のレコード定義型のDBMSでは性能的な限界が来ているところもあり、設計時には決められなかった検索パターンなどの追加が困難であったりするので、これから流行りそうな体系なんですが。
>手続き型言語での実装では、どう考えても速くなりそうになかったんですが、今回のこの件で、もしかしたら、この手の言語なら、と思えてきました。

ああ、パターン追加はLispは得意そうですね。多分勘は正しいかも。
他にも、リレーショナルデータベースじゃない、ネットワーク型データベースってのがあって、これは廃れちゃったんですけど、実装にはLispが暗躍してたんです(笑)。
これでSQL代わりに用いられてたのがPrologなんですが、このProlog実装、ってのは古典的なLispの教科書に「良く見られる」ネタですね。データベース系は元々Lispが得意な分野なんだと思います。

投稿: cametan | 2009年10月 4日 (日) 03時40分

あ、そうだ。

「データベース」設計とか、ホント実用考えるんだったらやっぱりANSI Common Lispの方が向いてます。
かつ、Schemeは「理論に走りやすい」んですよね。よって、入門書は敷居が高くなる傾向があります。
んで、ANSI Common Lispがある程度分かれば、Schemeも分かります。この二つはある意味C++とCみたいな関係ですよね(違うかも・笑)。

何か一冊薦める、としたらこの本です。比較的出版が新しんで、「最初に読む」にはいいでしょう。かつ「理論理論の話なんて聞きたくねえ」でしょ(笑)?

実践Common Lisp:
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=978-4-274-06721-1

この作者はいわゆる「コンピュータサイエンス側」の人じゃないんですよ。元々Perlやってて、次にJavaやって、って人なんで(しかも、大学での専攻は実は「英文学」)、「Common Lisp」って言語のとらえ方が他のLisp本の作者とかなり違います。
恐らくこれ1冊読めば「なるほどな。俺もLispで何か書いてみっか。」とか思う確率が高いです。
あるいは、作者が前書きで書いてる通り、「だから俺はLispが嫌いなんだ」って言える可能性もありますよね。
お試しあれ。

投稿: cametan | 2009年10月 4日 (日) 03時54分

ちょっと面白そうですよね。(笑)

まあ、実際には仕事でもない限り、DBMSを組むなんてことはないので、実践はないと思うんですけど。
いい機会なので、読んで見るのもいいかな。

投稿: かおりん | 2009年10月 4日 (日) 06時59分

>いい機会なので、読んで見るのもいいかな。

だと思いますよ。
まあ、プロの人に向かって趣味でプログラムやってる人間が言うのもおかしな話なんですが(大学でもComputer Scienceには基本的には関わってませんし)、ここ数年、「ANSI Common Lisp」関係の出版が多いんです。長い間「死んでる言語」と思われていたプログラミング言語の本が定期的に出版される、ってのは「異常」なんですよ。ある意味。
(例えば、今更ISO Pascal準拠の書籍が発刊される程「異常」です)
結局これが何を指しているのか、と言うと、例えばErlangとかの新興の関数型言語の登場とか色々あるんですが、その手の括りでは「一番取っつきやすい」ってのが一つ。もう一つは「実用的アプリケーションが書かれた事がある」と言う実績ですね。数は少ないけど、例えばYahoo! Storeの元になったViawebと言うベンチャー企業とか、ITA Softwareの航空運賃計算/チケット販売システムQPAとか、成功例がある、って事ですね。他の関数型言語では取りあえずEriksonのErlangくらいしか対抗馬が存在しない、んです。
んで、「ちょっと先端の言語を見てみたい」って人は大体Lispを経由するんですよ。そう言う潜在市場が「今はある」って事なんでしょうね。
そして、そう言う要求は、コンピュータ科学側じゃなくって「とにかく早くプログラムを書き上げたい」と言う現場層からの声、が殆どなんだと思います。従ってつまらない「理論的な話」を誰もCommon Lispには求めていない、って事なんですよ。

近年では

実践Common Lisp(アメリカ:2005年出版。ジョルト賞受賞。日本:2008年出版。)
Let Over Lambda(アメリカ:2008年(自費)出版。日本:2009年出版。Common Lispの「マクロ」に付いての本。)

が両横綱で、ホントこの数年で上梓されたものです。特に日本では2年連続の「ANSI Common Lisp新刊本」ですね。Let Over Lambdaなんてホンの数ヶ月前に出版されたばかりです。
それくらい、今「Common Lispが熱い」んですよ。

投稿: cametan | 2009年10月 4日 (日) 07時20分

てことは、ワタクシの勤務先でも、あの辺の部隊、が使ってる可能性あるな。

ま、全然無関係ではないけど、そっちから仕事降ってくることはないか。(笑)

仕事云々は置いといて、結構これから趣味の分野で必要になりそうな気がしているので、ちょっと見てみますよ。
実践云々は、ちょこっとでも知識付けてからじゃないと厳しいので。
どんな場面で、どんな風に言語を当てはめて考えるか、ってのが書いてあるんですよね、きっと。
#実践謳ってるんだから、たぶん、そんな感じだろう、と。

基本、ワタクシなんぞは、システム考える場合には、まずコードとAPIで考えますから。(笑)
なので、ある程度言語依存の考え方しか出来ないんですが、新しい言語の知識が増えれば引き出しも増えますからね。

とはいえ。
書籍に4,000円台は厳しいかも。(^^;
いろいろとすでにご紹介頂いているWebから見てみようかな、と思ってますけどね。

投稿: かおりん | 2009年10月 4日 (日) 07時27分

>てことは、ワタクシの勤務先でも、あの辺の部隊、が使ってる可能性あるな。

どの辺か分からないんですが(笑)。
でも開発力がある会社なら、少なくとも「注目してる」って事はありえますね。

余談なんですが。
例のネット上の知人で「ホームページ製作代行請負業」に勤めた人の話。
やっぱ会社がかなりアブないみたいで(笑)。
結局、PHPやPerl駆使して、「WordPressやXOOPSカスタマイズして売り込もう」って会社、かなり状況危ういみたいなんです(笑)。
こう言う会社は決してCommon Lispなんかに注目してませんし、ここまで「無料レンタルブログ」が広まった世の中ですと、苦しいみたいですね。マジで。
営業「だけ」が頼りなんで、ひいひい言ってるみたい。
本当に会社が「Common Lisp」に注目している人が多いような会社だったら幸せですよね。

>書籍に4,000円台は厳しいかも。

たっかいんですよね(苦笑)。
やっぱ書籍代が安くなんない、っての「だけ」は僕も痛いと思います(苦笑)。
ソフトバンク系だったら2,000円代から、だからなあ。

>いろいろとすでにご紹介頂いているWebから見てみようかな、と思ってますけどね。

そうですね。それでも結構楽しめるとは思いますよ。
他に、これはSchemeなんですけど、日本で一番人気があるScheme実装を作成した川合史朗さん(元々SQUAREにいたみたいです)の文書が結構参考になるやもしれません。

OOエンジニアの輪!:
http://www.ogis-ri.co.jp/otc/hiroba/others/OORing/interview21.html

なんでもλ:
http://practical-scheme.net/docs/lambda-j.html

なんでも再帰:
http://practical-scheme.net/docs/tailcall-j.html

わりにCプログラマの人向けに(と言うか川合さんもCバリバリなんでしょうが)分かりやすく噛み砕いて「Lispの真髄」を語ろう、としている辺りが凄く良い文章だと思います。

投稿: cametan | 2009年10月 4日 (日) 07時55分

ありがとうございます。
見てみます。

開発力のある会社って言えばそうなんでしょうけどね。(^^;
ま、わりとあちこちに顔だしてたりするので。(笑)

投稿: かおりん | 2009年10月 4日 (日) 08時01分

>開発力のある会社って言えばそうなんでしょうけどね。(^^;
>ま、わりとあちこちに顔だしてたりするので。(笑)

おおすごい。
高給取りだ(笑)。

もう二つだけ、川合史朗さんの面白い文章を紹介しておきます。

Schemer's way:
http://practical-scheme.net/docs/schemersway-j.html

なぜSchemeにはreturnが無いのか:
http://practical-scheme.net/wiliki/wiliki.cgi?Scheme:なぜSchemeにはreturnが無いのか

投稿: cametan | 2009年10月 4日 (日) 08時17分

いや、メインで開発しているものが、社内ツールとか製品開発部隊に関係しているものなので、文句言いに行ってるだけです。(笑)>顔だしている
まあ、嫌われものですな。
なので、開発に「あちこち顔出している」わけではないので、とてもとても高給には。orz

投稿: かおりん | 2009年10月 4日 (日) 08時35分

てか、高給取りなら、書籍の4,000円は惜しみませんよ。(爆)
#Webのない頃なら、確実に買っただろうなぁ。

投稿: かおりん | 2009年10月 4日 (日) 08時36分

>メインで開発しているものが、社内ツールとか製品開発部隊に関係しているものなので、文句言いに行ってるだけです。

でもその話聞く限り、相当大きな会社ですよね。

>てか、高給取りなら、書籍の4,000円は惜しみませんよ。(爆)
>#Webのない頃なら、確実に買っただろうなぁ。

英語で構わないのなら、実は原書はWebで無料公開してるんですよ。

Practical Common Lisp:
http://gigamonkeys.com/book/

英語なら全編タダで読めますね。
日本と違って、向こうじゃこう言う事があるんで、ホント羨ましいです。

投稿: cametan | 2009年10月 4日 (日) 08時42分

専門書全編英語か…。
英語習うのと、日本語訳買うのでは、どっちが安上がりかな…。

英会話よりは、専門書の英語の方がラクな気もしますけど、ま、難しいとこですよね。
若い頃に勉強していればっ!(^^;

投稿: かおりん | 2009年10月 4日 (日) 08時59分

>英会話よりは、専門書の英語の方がラクな気もしますけど、ま、難しいとこですよね。

まあそうですよね。
僕だったら、やっぱ「日本語での書籍の方が嬉しい」クチです(笑)。
洋書読むのメンド臭くって(笑)。

まあ、向こうのWeb公開、って本当は「本が売れないから」って事もあるんですよ。
実は「活字離れ」現象って日本人よりも遥に酷くって(笑)。
ですから、著作者の方も「このまま絶版になるなら」どーせだったら全部公開しちゃえ、ってのはある意味ヤケクソでありますよね(笑)。
せっかく労力かけて書いたわけですし。いや、ホントです(笑)。

どこぞの東大卒業のバカな先生が

「一般の日本人は英語が読めなくてダメ」

的な事言ってて(笑)。僕はそれ聞いてすっげえ頭来たんですよね(笑)。
しかも、そいつ、そう宣った時、「一回も海外出た事ねえ」ってんでバカ言うにも程があるだろ、とか思って(笑)。
大体、一般の日本人が英語にすっげえ堪能だったら、そーゆーバカ言う先生を全員クビ切ってアメリカから先生連れてくるだろ、と(笑)。
公費使ってバカ言って生活出来てるのは誰のお陰じゃい、とかキレかけましたから(笑)。一番ダメなのはこーゆー「アホな事言う東大卒」じゃねえのか(笑)。常識で考えろ、と言う(笑)。

んで、向こうの大学なんかでも教科書「でさえ」売れないんですよ。実態は。
学生は大体中古の教科書買っちゃって(笑)、学期終われば売り払っちゃうんです(笑)。だから版が変わらん限り、延々と本は売れない、と言う。
従って、売れないから本の単価って向こうは高いんですよ。日本の本の方が比較的安いんですよね。
しかも、「本を買って読む」習慣が付いてる分だけ、日本の一般人の方が出版業界に対しては「結構ありがたい」んです。

まあ、そう言う現状を知らない「舶来をありがたがる」東大卒のセンセがいる、って事です。
また、これも絡めば、ある程度部数さばければ「Webで無料公開」って文化が出来るのもある意味当たり前、ですよね。

投稿: cametan | 2009年10月 4日 (日) 12時10分

まあ、日本人の方が本は読んでるでしょうね。マンガも含めて。(笑)
向こうじゃコミックは子供の読むものって文化でしたからねぇ。
#今は解りませんけど。

本を読まないってことは、もしかしたら新聞なんかも絶滅の危機なんですかね。
ニュースなんて、それこそWebで事足りそうな。
まあ、通信インフラの問題があるから、都会だけか。

技術書が売れなくなったのは、Webの賜物かもしれません。
結果、書く人が減るのは如何なものか、ですけど。
Web出版とか、書いた人にお金が入る仕組みって、技術書は特に必要かも知れませんね。
まあ、大学とかが先生とかにもっとお金払って、Webでのページビューに応じて版権っぽくお金払うような仕組みとかあれば、書籍その物は減っても、情報が枯渇することがないので良いような気もしますけど。
難しいでしょうけどね。(笑)

投稿: かおりん | 2009年10月 4日 (日) 13時54分

>まあ、日本人の方が本は読んでるでしょうね。マンガも含めて。(笑)
>向こうじゃコミックは子供の読むものって文化でしたからねぇ。

マンガってアレだけ叩かれていたのに、最近の研究では

「本を読む習慣付ける為には導入としてマンガは多大な効果アリ」

とか言ってんでしょ(笑)?
ふざけるのも大概にしろ、とか思いますよ(笑)。アレだけ「楽しいメディア」が叩かれてたのに。
今では「マンガは読書の一部」になっちゃってますからね。いや、研究なんかせんでも「初めから分かってた事」だ(笑)。
クダらんイメージに振り回されてたのは一体誰なんだ、って事ですよね。

最近では「マンガ読むのも難しくて苦痛」って層が現れているみたいなんですが。
でも「メディア変遷」が人間の行動様式変える、ってのはあり得るんですよね。
テレビ画面でRPGとかでたくさん文章を(結果として)読んでる奴等が

「本は読みづらい。パソコンでWebページ読むのは読みやすい。」

的な意識変換が出てくる可能性もありますし。
僕は正直言うと、パソコンで文章を読むのが読みづらくって、本がやっぱより便利だよな、って思うクチなんですが、そう思わない層も出るかもしれません。いやすでに出てるかも。
全て認めたいと思います。それは「あり得る」し、あって良い事だろ、と。
あとはケータイが読みやすい、とかね(笑)。メディアの進化によって行動様式は変わって当然だ、と信じたいです。

>本を読まないってことは、もしかしたら新聞なんかも絶滅の危機なんですかね。
>ニュースなんて、それこそWebで事足りそうな。

いや、そもそも向こうでは新聞の宅配自体が基本的には無いですからね。いや、あるかもしれませんが、やってるヤツ見たことないです。
例えばテレビ観てて「面白いニュースがある」って時、もっと読みたいな、となればいわゆるニューススタンド(あるいはヘナチョコな新聞自動販売機)行ってそこで新聞を買う、とか。そう言う形が普遍ですよね。
そもそも、一次情報源がテレビに取って代わられている国なんですよ。「新聞の価値」ってのは日本人が「神聖視してる」って程じゃあないです。
他に「タブロイド版」ってのがあって、こっちの方がクダラなくって一般には人気があるかも。日本で言うと「東スポ」です(笑)。

>まあ、大学とかが先生とかにもっとお金払って、Webでのページビューに応じて版権っぽくお金払うような仕組みとかあれば、書籍その物は減っても、情報が枯渇することがないので良いような気もしますけど。
>難しいでしょうけどね。(笑)

そうですね。難しいと思います。
そもそも、日本の大学ってそんなに「Webを重要視」してないんですよ。欧米の大学がやってるから、右へ倣え、程度で(笑)。
寄付金集めに奔走するような大学システムじゃないんで、向こうみたいに「広告塔の役割」を真剣に考えてる、って程じゃあないんですよ。基本「ぬるま湯」ですから(笑)。

例の知人に

「大学への営業のかけ方」

相談されたんですが、そもそも国公立大学相手じゃ難しいだろ、ってのを直感的に感じたくらいです。

投稿: cametan | 2009年10月 4日 (日) 20時26分

>「本は読みづらい。パソコンでWebページ読むのは読みやすい。」
>的な意識変換が出てくる可能性もありますし。

ワタクシは、最近ではそんな傾向ですね。
年のせいもあるかも知れませんが(笑)、文庫本とかの文字が見辛くなってます。
#とかいいつつ、ネットブックの高解像度を欲しがってるんだから、矛盾もいいとこで。


>僕は正直言うと、パソコンで文章を読むのが読みづらくって、本がやっぱより便利だよな、って思うクチなんですが、そう思わない層も出るかもしれません。いやすでに出てるかも。

本というか、書籍の特に技術書のよいところは「一冊にまとめてある」ことなんですよね。
検索性とかは、Webやファイルにはかなわないし、それでも本の良さって、編纂した人間が意図した章立て通りに読み進めていくと、少なくとも編纂者の想定レベルでは理解し易いってことでしょうか。
なので、リファレンスとか、逆引き辞典の類はWeb化がよいと思ってますけど、ご紹介頂いた実践CommonLispのようなHowTo本とか、入門書の類は書籍である意味も価値もあると思ってます。


>いや、そもそも向こうでは新聞の宅配自体が基本的には無いですからね。

ないんだ。知らなかった。普通に新聞って宅配されるもんだと。
映画なんかでは、自転車に乗った少年が庭に新聞ぶん投げてくシーンとかあるんで、一般的なもんかと。


>「大学への営業のかけ方」
相談されたんですが、そもそも国公立大学相手じゃ難しいだろ、ってのを直感的に感じたくらいです。

大学への営業か。
狙うとしたら、学生向けのシステムで、大学の事務担当者がラクになるような方向ですかね。
いわゆるWebアプリの方がウケがいいと思いますが、大抵は大手が入り込んでるから難しい
かな?
あとは、携帯へメール送信するシステムと、携帯から参照可能なゼミ等の掲示板ですかね。
例えば、教授のスケジュールが参照できて、いつ休講になるとかが解る、そんな「便利になるシステム」でしょうか。
まあ、そういう便利さで何をアピールするかというと、事務方の、作業効率化による大学運用コストの削減、ってことになるのかな。

あとは学生集めないと仕方ないので、大学の宣伝用サイトの構築とか。
こっちは、何がウリで、何をアピールしたいのか、によって内容が変わるし、それこそWebデザイナの独壇場なので、ワタクシが語れることは何もないんですけどね。(笑)


投稿: かおりん | 2009年10月 4日 (日) 20時47分

>#とかいいつつ、ネットブックの高解像度を欲しがってるんだから、矛盾もいいとこで。

う~ん。
でも確かに「コンパクトな画面」と解像度って関係無いですよね。むしろコンパクトな画面程解像度が必要なんじゃないか、とか。
結局単位面積辺りにいくつピクセルが詰め込めるのか。限界があるのか。まあ、ある、って考えた方が自然ですけど、多分勘で言うと、コンパクトな画面でも解像度が高ければ高いほど「字の認識」ってラクになるんだろうな、とは思います。情報圧縮して表示出きるし。
まあ、dpiで考えるとヘンなんですが、そう言う意味では実は「印刷物」ってさほど解像度が高くないですし、高くもなんねえんだろうな、とは思います。だから字が小さいと読みづらくなる(笑)。
そうですね。ネットブック程「大画面」が必要なんじゃなくって「高解像度」が必要なのかもしれません。

>編纂した人間が意図した章立て通りに読み進めていくと、少なくとも編纂者の想定レベルでは理解し易いってことでしょうか。

そうですね。シーケンシャルアクセスを前提とした媒体と言うか。
確かにランダムアクセスっぽく考えるとネットの「やり方」の方が有用かも。
ロラン・バルト的ですよね、ネットって(笑)。構造主義的に「テキストの流れ」とか分断してて構わない、的な(笑)。ポスト・モダンだ(笑)。

>映画なんかでは、自転車に乗った少年が庭に新聞ぶん投げてくシーンとかあるんで、一般的なもんかと。

いや、マジで「無い」んですよ。基本「新聞は買うものだ」的ですよね。KIOSKで買っていく、的な(笑)。

>大学への営業

そうなんですよね。
まあ、実際、「上から押し付けられた」営業プラン聞いてぶったまげたんですが(笑)。
何か工学部に売り込みに行け、とか。そんなの情報工学科のお膝元じゃない、と(笑)。おかしなプランだよな、的な。
基本的に研究室単位だと、学生にやらせるんですよね。一つ実習絡みにもなりますし。そんなトコに「営業に行かせよう」とか狂ってるとしか思えん(笑)。

あと、国公立大学ってトップページ「だけ」なんですよね。力入れてるのって。
全体的にはまだ私立の方が見込みあるだろう、とか思ったんですが。どーしても国公立、って何考えてんだろ、その上司は、とか(笑)。まあ、そんな事を感じていたわけです。

投稿: cametan | 2009年10月 4日 (日) 22時23分

>コンパクトな画面でも解像度が高ければ高いほど「字の認識」ってラクになるんだろうな、とは思います。

これが、まさしく小さい画面だと重要で。
ジャギが出てる(アンチエイリアスかかるから出ないんですが)ようなピクセルサイズだと見にくいんですよ。
なので、高解像度の方が見易いんじゃないか、と。
まあ、画面操作の都合もあってWXGAが欲しいと思ってるんですけどね。


>そうですね。シーケンシャルアクセスを前提とした媒体と言うか。

紙媒体は昔からそうですね。
ポストモダンってのは、そうなのかも。(笑)


>いや、マジで「無い」んですよ。基本「新聞は買うものだ」的ですよね。KIOSKで買っていく、的な(笑)。

映画でも都会のシーンはそうですよね。そういうもんなのか。


>何か工学部に売り込みに行け、とか。

何を売り込みに行くか、次第ですけど、現場からの声では、実際に動き始めるまで時間掛かりますよ。
事務方から攻めないと。(笑)

投稿: かおりん | 2009年10月 4日 (日) 23時22分

あ、関係無いんですけど。

夏のあらし、第2シーズンはじまりました。
今放映始まったばっかです。
テレ東系です。

投稿: cametan | 2009年10月 5日 (月) 01時32分

お、始まりましたか。
こっちじゃやってない見たいですけど。(^^;
ま、どうにかして見ます。

投稿: かおりん | 2009年10月 5日 (月) 06時13分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/500703/46381797

この記事へのトラックバック一覧です: すいません、敗北しました。orz:

« クアッドコア、すげぇ。(笑) | トップページ | ウイイレとウクレレ »