トップページ⇒tech
1001コメント285KB

Lisp Scheme Part21

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2008/04/04(金) 18:18:17
□過去スレ□
Part20: ttp://pc11.2ch.net/test/read.cgi/tech/1205021786/
Part19: ttp://pc11.2ch.net/test/read.cgi/tech/1200237296/
Part18: ttp://pc11.2ch.net/test/read.cgi/tech/1186922295/
Part17: ttp://pc11.2ch.net/test/read.cgi/tech/1177065699/
Part16: ttp://pc11.2ch.net/test/read.cgi/tech/1172404795/
Part15: ttp://pc10.2ch.net/test/read.cgi/tech/1151025773/
Part14: ttp://pc8.2ch.net/test/read.cgi/tech/1132275726/
Part13: ttp://pc8.2ch.net/test/read.cgi/tech/1115901841/
Part12: ttp://pc8.2ch.net/test/read.cgi/tech/1100229366/
Part11: ttp://pc5.2ch.net/test/read.cgi/tech/1091456033/
Part10: ttp://pc5.2ch.net/test/read.cgi/tech/1075630259/
Part9: ttp://pc2.2ch.net/test/read.cgi/tech/1069594582/
Part8: ttp://pc5.2ch.net/tech/kako/1058/10582/1058263391.html
Part7: ttp://pc5.2ch.net/tech/kako/1042/10421/1042167213.html
Part6: ttp://pc3.2ch.net/tech/kako/1031/10315/1031560687.html
Part5: ttp://pc3.2ch.net/tech/kako/1023/10230/1023091882.html
Part4: ttp://pc.2ch.net/tech/kako/1016/10162/1016211619.html
Part3: ttp://pc.2ch.net/tech/kako/1008/10082/1008220265.html
Part2: ttp://pc.2ch.net/tech/kako/1002/10025/1002584344.html
Part1: ttp://piza2.2ch.net/tech/kako/987/987169286.html
0153デフォルトの名無しさん2008/04/13(日) 16:35:45
>>151
ttp://mitpress.mit.edu/catalog/item/default.asp?ttype=2&tid=4048

今売ってるのはコッチ。目に痛い赤の表紙w
0154デフォルトの名無しさん2008/04/13(日) 16:37:23
同じ本ではないでしょうか><
0155デフォルトの名無しさん2008/04/13(日) 16:40:06
>>152
完全な関数になっていないという意味でpartial(部分的な)と呼んでいる。
引数を使うかどうかは呼称に重要ではない。関数が計算を終了するかどうかでpartialと区別する。
0156デフォルトの名無しさん2008/04/13(日) 16:41:41
>>155
ええ。それはわかりました。
永遠にリスト内を探し続けるが、見つけるべき文字列が見つからないとか、、
そんな例がありましたね。
0157デフォルトの名無しさん2008/04/13(日) 16:42:57
>>154
>>151は526ページだけど、>>153は534ページある。中身は少し違う。
0158デフォルトの名無しさん2008/04/13(日) 16:44:06
ISBNが同じなんです><
0159デフォルトの名無しさん2008/04/13(日) 16:44:08
>>152
解説もあったよ
ttp://en.wikipedia.org/wiki/Partial_function

Little Schemerは謎解き本だと思うので
いま九章読んでる人は読まないほうがいいかも
0160デフォルトの名無しさん2008/04/13(日) 16:46:43
>>158
古いと灰色や金色の表紙のものがある。amazon.co.jpは古い表紙のpicを使いまわしてると思われ
0161デフォルトの名無しさん2008/04/13(日) 16:48:15
>>160
実際は赤なんだけど灰色の画像使ってるだけかと思ってました。
0162デフォルトの名無しさん2008/04/13(日) 16:51:26
ISBNが古いのと同じなのかぁ。出版社のHPで確認するのって大事だな。
amazon.co.jp見ただけじゃそんなことわからないYO!
0163デフォルトの名無しさん2008/04/13(日) 16:56:34
SICMオンライン
http://mitpress.mit.edu/SICM/
0164デフォルトの名無しさん2008/04/13(日) 16:57:04
>>159
そのページの対応する言語を見ると日本語がないw
0165デフォルトの名無しさん2008/04/13(日) 17:00:19
SICM 持ってる。けど、自分はラグランジュアンがよくわかってないので
宝の持ち腐れだ。先に数学、勉強するよ。
0166デフォルトの名無しさん2008/04/13(日) 17:00:30
和田訳のSICPがあれだけグダグダなのを考えるとSICMを翻訳できるとは思えんなw
0167デフォルトの名無しさん2008/04/13(日) 17:07:18
>>164
これじゃ違うかな。
http://ja.wikipedia.org/wiki/%E5%86%99%E5%83%8F
0168デフォルトの名無しさん2008/04/13(日) 17:10:16
>>167
�d。部分写像(partial mapping)がpartial functionに近い。
0169デフォルトの名無しさん2008/04/13(日) 17:23:20
いいなあ、学生は暇があって
0170デフォルトの名無しさん2008/04/13(日) 17:25:01
SICMのユーティリティープログラムのページ (Linux用)

ttp://www-swiss.ai.mit.edu/~gjs/6946/linux-install.htm
0171デフォルトの名無しさん2008/04/13(日) 17:26:16
学生じゃないし暇じゃないけど、ゴロゴロしてる。
0172デフォルトの名無しさん2008/04/13(日) 17:27:32
>169

先週から仕事中の現実逃避に>163読み始めたよ
出来れば日本語訳が( ゚Д゚)ホスィ・・・
0173デフォルトの名無しさん2008/04/13(日) 17:38:30
さーてそろそろLittle Schemer読んじゃわないと````````````y
0174デフォルトの名無しさん2008/04/13(日) 17:42:20
8章くらいから難しくなって涙目
0175デフォルトの名無しさん2008/04/13(日) 17:44:33
もれも8章涙目だったけど、何度も読み返して何とか理解した。
まだちょっともやもや残ってるけど、、、、

今9章だお。
0176デフォルトの名無しさん2008/04/13(日) 17:45:57
>>138
HtDPより同じ著者のEOPLの方がいい。
Little Schemerシリーズもいいけど、SICPとEOPLは体系的な知識が得られる。
0177デフォルトの名無しさん2008/04/13(日) 17:46:34
Simply Schemeは?
0178デフォルトの名無しさん2008/04/13(日) 17:48:01
EOPLってナーヌ?
0179デフォルトの名無しさん2008/04/13(日) 17:48:55
しばらく英語に触れてなかったので、Littleで一杯一杯なんだ。
Simply→SICPという意図で書かれているらしいけど、英語読めるか心配。

>>178
おそらくEssential Of Programing Languageかと。
0180デフォルトの名無しさん2008/04/13(日) 17:53:22
Simply SchemeはLittle Schemerに近い内容をもっとページ数をかけて説明してる。
表計算プログラムを作る演習などのfinger practiceが充実してるけど理論的には浅い。
Haskellで言えばCraftみたいな内容。
HtDPも理論的なレベルは同程度。こっちはプログラミング作法にページを費やしている。
0181デフォルトの名無しさん2008/04/13(日) 17:54:16
>>179�d
0182デフォルトの名無しさん2008/04/13(日) 17:57:20
>>180
ありがとう。
退屈させないように色々やってみて、プログラミングに馴染んで来たら、
さてそこから深くするには何が困難か?と考えさせて
SICPにつなげる感じなんですかね。
0183デフォルトの名無しさん2008/04/13(日) 18:04:13
>>182
そんな感じ。Littleの8章で困るのも演習でなれることが出来ないからじゃないかい?
SICPに取り組むには、他の言語経験があればLittleぐらい難しくても短期間に十分なレベルに達するけど、
全くの初心者には大量のfinger practiceで経験を積ませないと理論の良さが実感できないから壁を感じるんだと思う。
0184デフォルトの名無しさん2008/04/13(日) 18:05:35
>>183
まさにそんな感じです。Simplyいっといたほうが良かったかな・・・・
プログラミングGaucheで代わりになります?
0185デフォルトの名無しさん2008/04/13(日) 18:21:41
>>184
Gauche本もってるかな?リファレンス的でfinger practiceはあまりないよ。
SimplyはSICPの前に必要な知識をうまく選んで入れてると思う。
でも Little Schemer ⇒ Seasoned Schemer と読んで、ネット上の他人のプログラムを読むのも面白い。
楽しんで継続できるのが一番いい方法だと思う。
0186デフォルトの名無しさん2008/04/13(日) 18:25:27
これ行った人、報告よろ

Continuation Fest 2008
http://logic.cs.tsukuba.ac.jp/Continuation/abstract.html
0187デフォルトの名無しさん2008/04/13(日) 18:29:36
>>185
持ってないです。ネットの立ち読み版は眺めましたけど。
折角Little読み終わりそうだから続けてSeasoned読んじゃおう。
どうもありがとう。
0188デフォルトの名無しさん2008/04/13(日) 18:44:45
>>186
おれも内容知りたいなぁ>>継続フェスタ。
0189デフォルトの名無しさん2008/04/13(日) 19:02:27
>>187
Seasonedをしっかり理解するとSICPの山場といえる3・4章が簡単になるからガンガレ。
特に継続(callcc)がSICP3.5ストリームで利用されるのは面白い。
これがわかるとSICMの入門準備も完了。runge-kutta4(つまり微分方程式)とか出来るとシミュレーションの幅がちょっと広がるし。
ストリームで無限リストが作れるのも目からうろこの体験だった。
これ位はできないとHaskellerに馬鹿にされるしw
0190デフォルトの名無しさん2008/04/13(日) 19:03:30
xyzzyの独自機能をcommon lispで読み代えるmacroみたいなのないでしょうか?
0191デフォルトの名無しさん2008/04/13(日) 19:12:15
Little Schemerな連中は、はてなとかで、グループ作って
活動すれば良いんじゃないかと思った。
0192デフォルトの名無しさん2008/04/13(日) 19:22:24
まああれだ
コンパイラといえばyacc
OSといえばブートローダー
SchemeといえばLittle Schemer
0193デフォルトの名無しさん2008/04/13(日) 19:33:26
Little Schemer 何度でも読んでいいですか?
0194デフォルトの名無しさん2008/04/13(日) 19:37:18
いいですよ
0195デフォルトの名無しさん2008/04/13(日) 19:43:04
何度も読むと理解がさらに深まりますか?
0196デフォルトの名無しさん2008/04/13(日) 19:44:33
少なくとも浅くなることは無いから安心して読め
0197デフォルトの名無しさん2008/04/13(日) 19:50:30
じゃあ毎日音読する。
0198デフォルトの名無しさん2008/04/13(日) 20:04:50
>>190
どういうものをイメージしてるのかよく分からないよ……
0199デフォルトの名無しさん2008/04/13(日) 20:33:16
何と言ってもSICPだ。俺はあれを読んで人生が変わった気分だよ。

プログラマは皆SICP必須だな。あれを読めば、場当たり的なコーディングから
完全に開放されるよ。
0200デフォルトの名無しさん2008/04/13(日) 20:34:24
読むなら、やっぱり英語版?
0201デフォルトの名無しさん2008/04/13(日) 20:49:26
>>200
俺は英語版を読んだ。最初翻訳本買おうかと思ってAmazon見たらあのコメントの
群れを見て引いちゃったよw。「超循環評価機」とかのタイトル見ても???だったしね。

英語は教科書だからか、受験英語やってりゃ普通に読める英文だよ。ネイティブ風な
言い回しは一切無い。多少英語が読めるんだったら、タダでネットで見れるんだし、
原語でいいんじゃないか。

ちなみに俺はあまりの感動にハードカバーの洋書を買ってしまった。9000円ぐらい
したかな。ただ、持ち運びにはペーパーバックのほうがいいし、値段も半額以下なので
これについては激しく後悔しているw
0202デフォルトの名無しさん2008/04/13(日) 21:06:57
昔のマグロウヒル日本語版から比べたら、現行日本語版なんて天国みたいなもんだよ。
0203デフォルトの名無しさん2008/04/13(日) 21:10:17
別に悪い訳じゃないと思うけどなぁ。
超循環評価機をメタサーキュラ〜とかカタカナで書かれたら死ぬ。
0204デフォルトの名無しさん2008/04/13(日) 21:12:16
Amazonの書評は異常だね。攻撃的な人って居るんだなと感心する。
0205デフォルトの名無しさん2008/04/13(日) 21:21:20
ニヤニヤ
0206デフォルトの名無しさん2008/04/13(日) 22:46:13
>204
あれは読んでない奴の戯言だ
Amazonのあの手の書き込みは鵜呑みにしない事にしている
0207デフォルトの名無しさん2008/04/13(日) 23:14:33
単語まで全て逐語訳にしないで
->計算機(computer)
みたいな感じで元の英単語も書けば良かったんだよな。
0208デフォルトの名無しさん2008/04/13(日) 23:17:09
字幕の最初の方が出来上がったてるみたいだ。
0209デフォルトの名無しさん2008/04/13(日) 23:28:31
>>207
英語版はLaTeXだけど、日本語版は組版でやってるからちょっとした修正が出来ない。
もとの単語を書くと文字数が増えるからページ数を抑えるためにポイント数を抑えざるを得ない。
でもそれは技術的に難しい。かといってページ数を増やすと\5,000以上になってしまう。
つまりピアソンがコストダウンできる技術力を持っていないことにもそういう工夫を出来ない原因がある。
かといってムリをすればマグロウヒルみたいに倒産して書物が入手できなくなってしまう。
良い本なら買い支えるというのも消費者の選択なんジャマイカ?
0210デフォルトの名無しさん2008/04/14(月) 00:28:47
>>152
total functionは、全ての実引数に対して値が定義されている関数。
partial functoinは、値の定義されてない実引数のある関数。

具体例は、
(define (f x)
 (if (= x 1) 1
   (f (- x 1))))

定義域を自然数だとするとtotal function。
整数だとするとpartial function。
負の数の時に停らないあるいは値が未定義だから。

(define (f x) (/ 1 x))もxが0だと駄目だからpartial function。
0211デフォルトの名無しさん2008/04/14(月) 01:22:42
それじゃ数学関数の定義で駄目。152はそこは判ってるようだ。これを関数型での関数の引数でイパーン的に説明汁
0212デフォルトの名無しさん2008/04/14(月) 01:25:17
>>152
>>155が説明して>>156で納得して終了済。
0213デフォルトの名無しさん2008/04/14(月) 01:44:48
>>210の方が合ってるぞ。
http://foldoc.org/?partial+function

> 関数が計算を終了するかどうかでpartialと区別する。

これは間違い。例えばSMLのような例外のある計算系では、
関数の値が未定義の場合も停止する。Liftされているから。
表示的意味論の本を読めばちゃんと書いてあるよ。
0214デフォルトの名無しさん2008/04/14(月) 01:56:14
Dを意味関数だとしたら、
∃x (x≠⊥ & D[f(x)] = ⊥) なら、fはpartial functionってことだよな。
0215デフォルトの名無しさん2008/04/14(月) 02:03:05
>>214を見た漏れの脳にはテトリスが浮かんだ
とりあえず泣いてくる
0216デフォルトの名無しさん2008/04/14(月) 02:03:58
>>215
ああ俺もギャル文字を思い出した。一緒に泣こうぜ。
02171522008/04/14(月) 02:08:46
>>210
なんかいろんな意見が飛んでますが、、ありがとう。

>>215-216
漏れもれも。
0218デフォルトの名無しさん2008/04/14(月) 05:09:54
戸田山和久の「論理学を作る」はよかったな
大学に対しては良書を教えてくれた事に関しては感謝してる
0219デフォルトの名無しさん2008/04/14(月) 06:46:38
そういう感じで「計算論 計算可能性とラムダ計算 著高橋 正子」とかが
self-containedで読めるようになる本教えてください。
0220デフォルトの名無しさん2008/04/14(月) 12:54:26
他言語で書かれたプログラムのメタ制御したいのだけど
適切なbindingがない場合はxml-rpcが一番簡単なのかな?
0221デフォルトの名無しさん2008/04/14(月) 13:30:46
いいえ
0222デフォルトの名無しさん2008/04/14(月) 17:56:28
計算理論の基礎 シプサ
てのが気になってる。
アマゾンによると翻訳がすこぶる良いという。
0223デフォルトの名無しさん2008/04/14(月) 19:17:52
>>218-222
スレチ。移動ヨロ。
ttp://pc11.2ch.net/test/read.cgi/tech/1202273631/
0224デフォルトの名無しさん2008/04/14(月) 21:58:52
こっちじゃない?
http://science6.2ch.net/test/read.cgi/informatics/1160740645/
0225デフォルトの名無しさん2008/04/14(月) 22:23:08
すまんがちょっと教えてくれ。

Chiken Schemeは簡単に実行形式ファイルが作れるんかの?
0226デフォルトの名無しさん2008/04/14(月) 22:29:51
Reasoned SchemerのPrologもどきって、本当に動くんだなw
ttp://codepad.org/6uu28twJ

KANREN : a declarative logic programming system
ttp://kanren.sourceforge.net/#mini
0227デフォルトの名無しさん2008/04/14(月) 22:48:17
>>225
お前のことなんぞ知らんからお前にとって簡単かどうかはお前が判断しろ。
マニュアル通りやってみてできたならお前にも簡単にできるってことだ。
そうでなければ難しいんだろう。
0228デフォルトの名無しさん2008/04/14(月) 22:52:39
KANRENって「関連」なのかな。
Oleg Kiselyovって日本と研究してるのか?
http://okmij.org/ftp/
0229デフォルトの名無しさん2008/04/14(月) 23:26:02
Reasoned Schemer
1. Playthings
ttp://codepad.org/buHFpoPQ
0230デフォルトの名無しさん2008/04/15(火) 01:58:12
HtDPの目次見たけど継続とかlet、letrecは出てこないんだね。Schemerシリーズのほうが
難しそうだ。
0231デフォルトの名無しさん2008/04/15(火) 03:03:41
>>227
ふむ、chicken schemeっての初めて見てみたけど簡単に実行ファイルが作れるんだな。
0232デフォルトの名無しさん2008/04/15(火) 06:20:53
>>207
そうそう、和田先生が翻訳メモとして技術用語の翻訳対照表をつけてくれれば、
読みやすかったのに。
0233デフォルトの名無しさん2008/04/15(火) 11:15:30
schemeをC++プロジェクトに組み込みたいのですが、
組み込みやC++クラスのエクスポートが簡単にできる
ポータブルな処理系ってありますか?
0234デフォルトの名無しさん2008/04/15(火) 12:10:18
libgaucheとCで書いてextern "C"ってすればいいんじゃね
俺もほとんど知らない。教えてほしい
0235デフォルトの名無しさん2008/04/15(火) 14:27:24
Chickenはsyntax-caseが使えるんだけど
有理数がないのと多倍長数がないのが残念。
biglooもそうだったような気がするけど
Cにコンパイルする処理系はCの整数型、浮動小数型に縛られる物が多い。
Gambit-CはCコンパイルタイプには珍しく
多倍長数、有理数と正確数表現の複素数(これはGaucheにもない!)があるんだけど
SRFI周りが互換性の無い独自の実装なのが残念。
(たとえばSRFI-22の引数にスクリプトファイル名を含めない、文字列ポートを読み込むと空になる等)
>>233
組み込み系UnixライクOSでも動くとなればguileかScheme48でしょう。
Cでプログラムを書くのも容易だし
ソースに手を入れなくてもターゲットで動く。
但し前者は遅い上にR5RS準拠ではない。(R5RS手続きは網羅してるけど)
後者はR5RS準拠で完成度は高いけどやや重くてやや遅い。
処理系ソースに手を入れる事を厭わないのであればGaucheかGambit-C。
前者は軽くてそこそこ速い。後者はそこそこ軽くて(コンパイルすれば)かなり速い。
PLTScheme(MzScheme)がUnix系全般で動くようになれば最強っぽいんだけど
BoehmGCを移植しただけじゃ動かないのが×。
さらにコンパイルしなくても速いのにコンパイルしても(そんなに)速くならないのはご愛嬌。
0236デフォルトの名無しさん2008/04/15(火) 15:16:12
>>235
>複素数(これはGaucheにもない!)

あるっしょ
0237デフォルトの名無しさん2008/04/15(火) 15:18:45
正確数表現の複素数(これはGaucheにもない!)
0238デフォルトの名無しさん2008/04/15(火) 15:52:35
> (exact? (sqrt -1024))
#t

これはいいsqrt
0239デフォルトの名無しさん2008/04/15(火) 16:03:30
R5RS-6.2.3
sqrtのような潜在的に不正確な演算は、正確引数に適用されたとき、
可能ならばいつでも正確な答えを算出することが望ましい(が要求はされていない)。
なので処理系依存。
02402252008/04/15(火) 20:40:37
>227
参考になった。ありがとう。
0241デフォルトの名無しさん2008/04/15(火) 23:24:29
>>225
Linuxだと簡単にバイナリ作れた。
winだとコンパイルも通らなかった orz
mingwin32嫌いだ!
0242デフォルトの名無しさん2008/04/15(火) 23:35:56
>241
あれ、出来なかったっけ?
ちょっと今MinGW環境壊しちゃったので手元で確認できないけど
0243デフォルトの名無しさん2008/04/15(火) 23:40:20
>>242
できたらgccのバージョンとかライブラリのバージョンさらしてください。

しょぼーん。

#共通環境はsbclが一番良いんじゃないかと思うようになっちゃったのでscheme嫌いになりそう
0244デフォルトの名無しさん2008/04/16(水) 00:14:09
>>243
Makefile.mingwを使うとchicken-config.hの作成に失敗する。
そこだけ手作業でやったらあとは普通にmakeが走ってる。
今ビルド中。っていうか本家に最新版のWindowsバイナリ置いて無いな。
0245デフォルトの名無しさん2008/04/16(水) 00:30:12
みんな苦労してでもWindowsdで使いたいんだな。
Windowsは偉大だな。
0246デフォルトの名無しさん2008/04/16(水) 00:43:18
自分が使いたいというより、より広く使われるものを作りたい、そういうものを作る
ために使いたい、という動機が大きいのでは?
趣味にしても、仕事にしても。
0247デフォルトの名無しさん2008/04/16(水) 00:53:25
>>228
ttp://scheme2006.cs.uchicago.edu/12-byrd.pdf

KANRENって「関連」みたいだけど中国語。
Chung-chieh Shan(單中杰)というハーバード出身でラトガース大学のAssistant Prof.の人とやった仕事。
02482442008/04/16(水) 00:55:30
よくみたらMakefile.mingw-msysってのがあったな。
こっちでやれば一発でいけたのかも。
まぁ、gcc3.4.5で普通にコンパイルはできたよ。
02492422008/04/16(水) 02:07:59
>248
漏れもgcc4.3.0 & Makefile.mingw-msysでやってみたけど問題なさそう
0250デフォルトの名無しさん2008/04/16(水) 02:18:42
>>246
処理系はとりあえずUNIX系の上でつくられて、
そういう尊い方々がWinに移植なさるのですね。
感動しました。
漏れはWinでないと使う気にならないから使ってるだけだが、
いつかそうなりたいね。
0251デフォルトの名無しさん2008/04/16(水) 02:23:10
とりあえずUNIX上に作られるのはそのほうが楽だからだな。
WindowsのAPIってなんか例外事項が多くてごちゃごちゃしてる感じ。
02522312008/04/16(水) 03:00:47
>>248
俺はgcc3.4.2+msysでうまくいったみたい
■ このスレッドは過去ログ倉庫に格納されています