Lisp Scheme Part19
..
2:デフォルトの名無しさん
08/01/14 00:16:31
□参考リンク□
日本Lispユーザ会(日本語) URLリンク(jp.franz.com)
ここにかなりの情報があります。 削るとAllegro Common Lispのページへ
プログラミング言語Scheme(日本語)
URLリンク(www.sci.toyama-u.ac.jp)
Schemeの人はまずここを見ましょう。
Lisper への道(日本語)
URLリンク(www.geocities.co.jp)
判りやすいLISP入門サイト。
Schemeへの道(日本語)
URLリンク(www.stdio.h.kyoto-u.ac.jp)
ここはschemeの入門サイト。
慶応の授業のページ・記号処理プログラミング 2001
URLリンク(buri.sfc.keio.ac.jp)
Practical Scheme(日本語)
URLリンク(practical-scheme.net)
「普通のやつらの上を行け」など、興味深い文書を沢山翻訳されてます。
(Gaucheという完成度の高いscheme処理系作者さんのページでもあります。)
3:デフォルトの名無しさん
08/01/14 00:17:08
□仕様関係□
CLtL2: Common Lisp the Language 2nd edition
URLリンク(www-2.cs.cmu.edu)
CLHS: Common Lisp Hyper Spec
URLリンク(www.ai.mit.edu)
R5RS: Revised(5) Scheme(ja)
URLリンク(www.sci.toyama-u.ac.jp)
□SICP関係□
SICP(英語)
URLリンク(mitpress.mit.edu)
「計算機プログラムの構造と解釈」の原書です。 全てオンラインで読めます。
計算機プログラムの構造と解釈 第二版 (snip) に関連するホームページ
URLリンク(www.ipl.t.u-tokyo.ac.jp)
SICPの回答集
URLリンク(www.melt.kyutech.ac.jp)
URLリンク(pluto.aurorasd.co.jp)
URLリンク(www.ipl.t.u-tokyo.ac.jp)
URLリンク(www.sampou.org)
4:デフォルトの名無しさん
08/01/14 00:17:58
□wikipedia関連□
Wikipedia項目リンク
Wikipedia項目リンク
Wikipedia項目リンク
□継続□
なんでも継続
URLリンク(practical-scheme.net)
Schemeへの道:継続
URLリンク(www.stdio.h.kyoto-u.ac.jp)
継続の使い方
URLリンク(www.geocities.co.jp)
継続の使用法
URLリンク(www.ice.nuie.nagoya-u.ac.jp)
CPS(継続渡しスタイル)の説明
URLリンク(www.csl.sony.co.jp)
Kahua: 継続ベースのアプリケーションサーバー
URLリンク(www.kahua.org)
5:デフォルトの名無しさん
08/01/14 00:18:23
□その他□ (便利な情報リソース)
John McCarthy's Home Page
URLリンク(www-formal.stanford.edu)
LISPの生みの親、J・マッカーシーのページだそうです。
Association of Lisp Users 米国のLispユーザ会
URLリンク(www.alu.org)
CMUのLisp Repository 新旧様々なプログラムが置いてある
fURLリンク(ftp.cs.cmu.edu)
The Common Lisp Cookbook: いわゆる Cookbook
URLリンク(cl-cookbook.sourceforge.net)
Bibliography of Scheme-related Research Scheme関連の論文リンク集
URLリンク(library.readscheme.org)
Scheme Hash(英語) S式でXMLを使える様にするSXMLなど
URLリンク(okmij.org)
幻の「入門Scheme」 オンラインで読める
URLリンク(www4.ocn.ne.jp)
各種scheme処理系をcygwin上からビルドする方法など。
URLリンク(www.geocities.co.jp)
encyCMUCLopedia (cmucl以外でも有益なはず )
URLリンク(www.isr.ist.utl.pt)
6:デフォルトの名無しさん
08/01/14 00:23:24
□実装□
Bit (mini-schemeよりも小さい(?)bytecode変換系 )
URLリンク(www.iro.umontreal.ca)
Lisp 言語処理系: CAMPUS LIsP, Lemon version (Cでわずか1000行)
URLリンク(aten.aial.hiroshima-u.ac.jp)
Schemix (Linuxのkernelへのパッチで/dev/として扱えるTinyScheme )
URLリンク(www.abstractnonsense.com)
awkで書かれたわずか500行のLispインタプリタ
URLリンク(www.accesscom.com)
Schemeで書かれた正規表現ライブラリ
URLリンク(www.cs.rice.edu)
Tiny CLOS Tutorial
URLリンク(home.adelphi.edu)
Hotdog Scheme MS が金出してたみたい
URLリンク(rover.cs.nwu.edu)
Bigloo CLR 用のコードを吐けるようになったらしい
URLリンク(www-sop.inria.fr)
SECDR-Scheme: SECD machine model に基づく実装
URLリンク(lily.fan.gr.jp)
Minischeme: 1 ファイルに凝縮された Scheme 処理系
URLリンク(tinyscheme.sourceforge.net)
TinyScheme: Minischeme を色々弄ったもの
URLリンク(tinyscheme.sourceforge.net)
KI-Scheme, AM-Scheme, etc...
URLリンク(www.nifty.com)
LispMe: Palm 上で動く Scheme 処理系. これも SECD virtual machine.
URLリンク(www.lispme.de)
7:デフォルトの名無しさん
08/01/14 00:24:21
□実装その2□
Scheme48: R5RS準拠のSchemeのバイトコードインタプリタ
URLリンク(www.s48.org)
Guile: GNUの拡張プログラミング言語
URLリンク(www.gnu.org)
Gambit-C: R5RS準拠のScheme処理系
URLリンク(www.iro.umontreal.ca)
Gauche: R5RS準拠のScheme処理系。Shiro Kawaiさん作。近々書籍が出版されます。
URLリンク(practical-scheme.net)
8:デフォルトの名無しさん
08/01/14 00:26:44
□その他□ (抜け)
LISP Scheme Part9 (html化) って、なんでこれだけ
URLリンク(ruku.qp.tc)
独習 Scheme 三週間 (Schemeの教科書 )
URLリンク(www.sampou.org)
Cliki (CLコードがたくさん紹介されている。)
URLリンク(www.cliki.net)
よろずや (lispの実用的な情報が色々。 )
URLリンク(www.geocities.co.jp)
Common-Lisp.net: 多くのプロジェクトがホスティングされてる
URLリンク(common-lisp.net)
Bill Clementson's Blog: Lisp関連の話題が中心のBlog
URLリンク(home.comcast.net)
Practical Common Lisp: S式の羅列で現実的な問題をどう解くのかそのギャップに悩まされてる人に
URLリンク(www.gigamonkeys.com)
□イベント□
GaucheNight(2007-05-09)
URLリンク(practical-scheme.net)
川合史朗、黒田寿男、まつもとゆきひろ(Skype中継)、小飼弾、
伊東勝利、久井亨、小黒直樹、ほか
黒田氏関係 (黒板の人)
スレリンク(tech板:901-909番)
URLリンク(cl-www.msi.co.jp)
Scheme:マクロ:CommonLispとの比較
URLリンク(practical-scheme.net)
Script Languages
URLリンク(cl-www.msi.co.jp)
9:デフォルトの名無しさん
08/01/14 00:27:27
□書籍□
プログラミングGauche
・著者:川合史朗 監修
Kahuaプロジェクト 著
・定価:3360円(本体3200円+税)
・B5変 464頁
・ISBN 978-4-87311-348-7
・発売日:2008/02
URLリンク(ssl.ohmsha.co.jp)
10:デフォルトの名無しさん
08/01/14 00:31:17
□2ch上にあるLISP関係のスレ□ (現在)
【入門】Common Lisp その3【質問よろず】
スレリンク(tech板)
【CGI】実用比較Lisp vs C/C++【GUI】
スレリンク(tech板)
【魔法】リリカル☆Lisp【言語】
スレリンク(tech板)
Lisp@UNIX版
スレリンク(unix板)
Emacs Lisp 3
スレリンク(tech板)
【ヤパーリ】XMLをS式に置換えていくスレ【LISP最強】
スレリンク(tech板)
11:デフォルトの名無しさん
08/01/14 00:32:05
10の抜け
【SICP】計算機プログラムの構造と解釈【Scheme】
スレリンク(tech板)
12:デフォルトの名無しさん
08/01/14 00:35:09
リンク訂正+追加
プログラミング言語Scheme(日本語)
URLリンク(www.sci.u-toyama.ac.jp)
SBCL Buildbot
URLリンク(sbcl.static.net)
LispUser.net (よろずや?)
URLリンク(lispuser.net)
R6RS
URLリンク(www.r6rs.org)
13:デフォルトの名無しさん
08/01/14 00:37:50
ほとんどコピペ
こんなもんでよかったでしょうか
14:デフォルトの名無しさん
08/01/14 00:41:41
□ライブラリ関係□
SLIB
URLリンク(www-swiss.ai.mit.edu)
SRFI
URLリンク(srfi.schemers.org)
15:デフォルトの名無しさん
08/01/14 00:48:06
>>2 リンク先変更
プログラミング言語Scheme(日本語)
URLリンク(www.sci.u-toyama.ac.jp)
Schemeの人はまずここを見ましょう。
16:デフォルトの名無しさん
08/01/14 00:55:12
Meadow memo: 2ちゃんねるログ
URLリンク(www.bookshelf.jp)
dat落ちした過去スレの一部が見られます。
17:デフォルトの名無しさん
08/01/14 01:20:41
R5RSの原文
URLリンク(www-swiss.ai.mit.edu)
18:デフォルトの名無しさん
08/01/14 02:00:12
(乙 >>1)
19:デフォルトの名無しさん
08/01/14 02:59:31
(scheme '笑)
20:デフォルトの名無しさん
08/01/14 07:05:39
前スレ最後の80レスくらいは本当に無意味だったな…
21:デフォルトの名無しさん
08/01/14 07:12:37
それ以前だってどうでもいい話の方が多いと思うけど…
22:デフォルトの名無しさん
08/01/14 07:17:32
いや、あそこまで酷くはなかった
まあ連休中だから仕方が無いか…
23:デフォルトの名無しさん
08/01/14 07:25:25
よく荒れると夏休みだの冬休みだの言うけど、普段来ないやつは連休でも来ないよ
24:デフォルトの名無しさん
08/01/14 07:41:26
そんな調査をいつどこでやったんだ?
25:デフォルトの名無しさん
08/01/14 07:47:31
逆だってわからんでしょ。
無意味なレスばっかだからもうやめとく。
生意気言ってすみませんでした。
26:デフォルトの名無しさん
08/01/14 13:30:14
Little Schemerを読み進めてるんですが、
lat?というものが出てきて、(lat? '(a b c))
を試したのですが、latが解釈されないようです。
これは何を意味するもので、何か定義しなければ
いけないんでしょうか? 真偽値を返すのはわかり
ますが何をask forしてるのかわかりません。
27:デフォルトの名無しさん
08/01/14 13:31:29
すみません。次のページに書いてありました。
意味はわかりませんが。
28:デフォルトの名無しさん
08/01/14 14:32:20
本の読み方がわかってきました。
29:デフォルトの名無しさん
08/01/14 17:27:19
>>26
あのゾウさんの表紙がいいね。あの表紙の再帰はどこまで続くのだろう。
30:デフォルトの名無しさん
08/01/14 22:42:30
>>29
∞のハズだと思ったがよく考えてみると、ゲーデルによって再帰的なラムダ計算の無矛盾性はその論理の範疇では証明できないことが示されている(不完全性定理)ので、
結論としては判らないということになるw
31:デフォルトの名無しさん
08/01/14 22:46:11
Little Schemerの絵をよくみるとLittle Lisperのまま残ってるのにワロタ
32:デフォルトの名無しさん
08/01/14 22:50:22
>>30
それ、Little SchemerのChapter 9で出てくるYコンビネータのネタだね。
カリー・ハワード同型対応やYコンビネータによる再帰定義で喜んでると、不意にゲーデルにがっかりさせられるというオチが待っているw
33:デフォルトの名無しさん
08/01/14 23:05:54
Seasoned SchemerとReasoned SchemerもLittle Schemerと同じ
アプローチなんですか?結構気に入ったので買おうか迷ってます。
34:デフォルトの名無しさん
08/01/14 23:17:01
>>33
おなじアプローチ。買ってOK。
Seasoned Schemerは続編で第2巻に相当。遅延評価とかの説明。
Reasoned SchemerはScheme上にProlog処理系のような論理型を導入する方法について。第3巻に相当。
3つ読めばSICPに近い知識は得られる。それからSICP読めばすらすら読める。
35:デフォルトの名無しさん
08/01/14 23:19:04
>>32
チャーチ・ロッサーの定理も忘れずにw
36:デフォルトの名無しさん
08/01/14 23:31:19
>>34
Little Schemerの巻末に文献紹介があるよね?
Smullyan "To Mock a Mockingbird"という本も激推奨!
SKIコンビネータ理論について判りやすく説明してくれる。あらゆる演算を鳥に例えていて、実は26の鳥から作れるという話。
しかもこの26種も実はSコンビネータとYコンビネータから作ることができ、さらによく考えるとこの2つもXコンビネータから作れて、大団円。
このSKIコンビネータ理論というのがSchemeの理論的基礎のλ算法というもので、Schemeで使うlambdaもこれに由来するんだよ。
読むと凄く理解が深くなるのでお勧め。
37:デフォルトの名無しさん
08/01/14 23:32:21
>>34
なるほど。チェックしときます。とりあえずLittle Schemerで
苦手な再帰の概念の基礎固めをしたいと思います。Schemeは
C++のBoost MPLにも活かせそうですね。
38:デフォルトの名無しさん
08/01/14 23:32:30
× しかもこの26種も実はSコンビネータとYコンビネータから作ることができ、
○ しかもこの26種も実はSコンビネータとKコンビネータから作ることができ、
39:デフォルトの名無しさん
08/01/14 23:37:22
>>36
難しそうですが、Schemerシリーズを終えたらチェックしてみます。
先が楽しみです。
40:デフォルトの名無しさん
08/01/14 23:40:49
ものまね鳥をまねるって奴かな
最近新古本を手に入れた
高かった
ちょこっと読んだけど難しい
鳥のたとえ話が
41:デフォルトの名無しさん
08/01/14 23:54:08
>>37
C++のBoost MPLに活かせることもあるけど適材適所で使い分けた方がいい。
オブジェクト指向と関数型では基本的なアルゴリズムも全く違う。
42:デフォルトの名無しさん
08/01/14 23:55:55
>>40
日本語だから例えになっていない。英語ならそのままコンビネータの名前だし、説明もコンビネータの働きに対応している。
原書推奨。
43:デフォルトの名無しさん
08/01/15 00:06:47
Combinator Birds
URLリンク(www.angelfire.com)
SKIコンビネータのSKIはそれぞれ:
Starling
Kestrel
Identity Bird (aka Idiot)=SKK
に対応している。
44:デフォルトの名無しさん
08/01/15 01:00:42
お前等あたまいいんだな。
都内の人、Schemerシリーズどこで買ったのかいくらだったのか教えろください。
45:デフォルトの名無しさん
08/01/15 01:08:35
S (ムクドリ:Starling)
K (チョウゲンボウ:Kestrel)
I (???:Identity bird)=SKK
B (???:Blue bird)=S(KS)K
C (コウカンチョウ:Cardinal)=S(BBS)(KK)
M (ものまね鳥:Mocking bird)=SII
L (ヒバリ:Lark)=CBM
T (???:Thrush)=CI
R (コマドリ:Robin)=BBT
W (ムシクイ:Warbler)=C(BMR)
Y (賢人鳥:Why bird)=SLL
46:デフォルトの名無しさん
08/01/15 01:14:46
>>44
アマゾソ.jpで\3500ぐらいでゲト。
47:デフォルトの名無しさん
08/01/15 01:18:44
邦題は「賢人鳥をまねる」の方が内容を表わしていて良かった気がする。
英題は"To kill a mocking bird(アラバマ物語)"をもじっているけど「ものまね鳥をまねる」だと意味がないw
48:デフォルトの名無しさん
08/01/15 01:41:37
lambda booksで2000円と書いてあるが買い方がわからん。
49:デフォルトの名無しさん
08/01/15 07:41:10
なんでここの人たちって、延々言語の事話してるの?
そんなもの自分で決められないんだから、そんな事話してる暇有ったら
Lispでアプリケーションの一つでも書いたらどうなの?
プログラミング言語なんで、ただの道具でしょ。
C言語に例えたら、延々ポインタの表記法の是非について語ってるみたいで
キモイんだけれど。
50:デフォルトの名無しさん
08/01/15 07:45:08
キモければ来なければいい。
51:デフォルトの名無しさん
08/01/15 07:52:04
>>50
>キモければ来なければいい。
そんな排他的な事言ってるからいつまでたっても
広がらないんじゃないの?
お前達は象牙の塔の住人なのか?
このスレの中に一人でも「Lispを使ってこんな事が出来るんだ!」
と人を驚かすようなアプリケーション書いた奴いるの?
グダグダ言語の事はなしてるより、アプリケーション書いた方が
万倍、計算機科学の発展に役立つと思うのだけれど。
グダグダ話してる内容も、外国の本の読み合いなんだしさ、意味ないよ。
52:デフォルトの名無しさん
08/01/15 07:54:13
それ以前に、何がどういう風にキモイのかが、その例ではわからないなぁ。
たぶん>>49は、「自分にとってキモイ」ということが、自分以外の人間にとっても通用する
普遍的で価値のあることで、だから詳細もすっ飛ばすし上から目線にもなってるんだろうけど、
それは自意識過剰ってもんでしょう。
「>>49にとってキモイ」という事実は、悪いけどゴミみたいな価値しかないことだから、
意味が無いし、もっとちゃんと話さないと通じないです。
53:デフォルトの名無しさん
08/01/15 07:56:36
>>51
じゃあまぁ、頑張ってアプリケーション書いてくれ。
他人に要求することや、他人をジャッジする内容を、まず自分に適用して生き続けるのが
厨と卒業する上で大事なことだから。
54:デフォルトの名無しさん
08/01/15 07:58:04
Lispで書くのって言語自身を拡張していく感じがあるから、Cなんかとは少し感覚が違うのかもしれん。
55:デフォルトの名無しさん
08/01/15 08:04:33
あらまぁ、あっというまの反論。
プログラマって人種はクリエイティブって言うし、
Lisp使う人は最高のプログラマって称号もあるけれどさ。
実際このスレ覗くと、延々使い古された古典の読み合いと紹介。
新規性の欠片もなくて、どこがクリエイティブなんだか。
56:デフォルトの名無しさん
08/01/15 08:05:14
こんな時にようかんマンが居ればなあ…
57:デフォルトの名無しさん
08/01/15 08:07:34
>>55
で、君どうしたいの?
そろそろ学校行ったら。
58:デフォルトの名無しさん
08/01/15 08:10:18
>>55
なんか君の言ってることの内容が、相手の対応によってどんどん変わってきてるな。
君の最初の疑問「なぜ延々言語の事話してるのか」の答は、ここが言語のことを話すスレであって、
ここで何かアプリケーションを作るスレではないからだよ。
あと、「そんな事話してる暇有ったらLispでアプリケーションの一つでも書いたらどうなの?」ってのは、
2chに書き込む行為を一切やめて、その時間をすべてプログラミングにあてろ、
そういう生活をしないならお前らはキモイ、という意味?
59:デフォルトの名無しさん
08/01/15 08:13:41
「クリエイティブ」と「新規性」も別に直結するものではないよなぁ。
なんか、切れ切れに言葉をしってるだけの二十歳くらいの坊やに思えてきた。
60:デフォルトの名無しさん
08/01/15 08:23:56
>「そんな事話してる暇有ったらLispでアプリケーションの一つでも書いたらどうなの?」ってのは、
>2chに書き込む行為を一切やめて、その時間をすべてプログラミングにあてろ、
>そういう生活をしないならお前らはキモイ、という意味?
違うよ。
>このスレの中に一人でも「Lispを使ってこんな事が出来るんだ!」
>と人を驚かすようなアプリケーション書いた奴いるの?
って事だよ。
Lispで今まで解けると思われていなかった問題を解けるようなアプリケーションを書けって事だよ。
それなのにお前らは、延々古典の読み合いばかり。
ガッカリだ。
とても新しい発想が生まれるとは思えない。
悔しかったら、「コレスゲー」ってもの出してみろ。
61:デフォルトの名無しさん
08/01/15 08:47:38
「悔しかったら出してみろ」じゃ、誰も出さないと思うよ。
言ってることが間抜け過ぎて、誰も悔しくないだろうから・・・。
62:デフォルトの名無しさん
08/01/15 09:31:11
くやしい・・・ビクビク
63:デフォルトの名無しさん
08/01/15 10:58:30
>
64:デフォルトの名無しさん
08/01/15 10:59:58
ごめん、間違えてREPL
>
65:デフォルトの名無しさん
08/01/15 11:19:18
個人的には新しい発想といえば.NETだな
.NETは言語じゃないけどな
言語じゃないというのが新しいよな
つまり.NETでLispを使えということだな
66:デフォルトの名無しさん
08/01/15 11:27:25
> 延々古典の読み合いばかり
ここはそういうところだから。
残念ながらLisp系でプロダクトコード書ける環境にいる人間は希少種だし。
というか他の言語スレも似たようなもんだが
Lisper/Schemerにはなんか期待しちゃうところがあるんかな?
67:デフォルトの名無しさん
08/01/15 11:31:36
正直ここに身元がばれるようなことは書きにくいw
ネタにされるだけだし
68:デフォルトの名無しさん
08/01/15 12:22:03
ここで煽る前に自分でやればぁw
自分が書いてるものの話なんかこんなところでできるかよ。
特定されたら面倒でかなわん。
69:デフォルトの名無しさん
08/01/15 16:22:20
そうだな。俺様のように社会的地位が高いと2chに来てるとバレるだけで恥だ。w
70:デフォルトの名無しさん
08/01/15 17:13:01
>>69
竹内郁雄先生ですか?
71:竹内郁雄
08/01/15 17:37:12
そうだよ。
良くわかったね。
実はtao/elisのソースを公開したいんだが、
電電公社が持っててね。
学術振興になると思うんだけれど、残念だ。
72:デフォルトの名無しさん
08/01/15 17:48:36
ポールグレアムからひとこと
↓
73:デフォルトの名無しさん
08/01/15 18:01:42
SRFI-45:lazyの使いどころがいまいちよくわからない
(delay (force ...))をforceすると末尾再帰でないforceの呼出しになって
メモリを食いつぶすのを防ぐために使うのはわかったんだけど
末尾呼出しでない関数にlazyをつけると逆にメモリを食いつぶすようになる
末尾呼出しされるストリームを返す関数に使えばいいのかな
74:デフォルトの名無しさん
08/01/15 18:07:27
ー-ニ _ _ヾV, --、丶、 し-、
ニ-‐'' // ヾソ 、 !ヽ `ヽ ヽ
_/,.イ / /ミ;j〃゙〉 }U } ハ ヽ、}
..ノ /ハ 〔 ∠ノ乂 {ヽ ヾ丶ヽ ヽ >>60
ノノ .>、_\ { j∠=, }、 l \ヽヽ ', _ノ
ー-=ニ二ニ=一`'´__,.イ<::ヽリ j `、 ) \ そもそも『悔しかったら、「コレスゲー」ってもの出してみろ』とは何なのか
{¨丶、___,. イ |{. |::::ヽ( { 〈 ( 〉
'| | 小, |:::::::|:::l\i ', l く 君の意見を聞こうッ!
_| | `ヾ:フ |::::::::|:::| } } | )
、| | ∠ニニ} |:::::::::|/ / / / /-‐-、
トl、 l {⌒ヽr{ |:::::::::|,/// \/⌒\/⌒丶/´ ̄`
::\丶、 ヾ二ソ |:::::::/∠-''´
/\\.丶、 `''''''′!:::::::レ〈
〉:: ̄::`'ァ--‐''゙:::::::/::::ヽ
\;/:::::::::::::/::/:::::::::::://:::::〉
::`ヽ:::ー-〇'´::::::::::::::::/-ニ::::(
/ \
75:デフォルトの名無しさん
08/01/15 18:24:58
ポールグレアム日本語達者だなぁ
76:デフォルトの名無しさん
08/01/15 18:29:04
arcのソースが公開されるって?
77:デフォルトの名無しさん
08/01/15 18:31:27
いや、多分Lispで翻訳してるんだよ。
Emacsで2ch開くとAA以外は英語に翻訳され、
レスは自動で日本語になって書き込まれる。
ポールグレアムほどのスパーハカーなら1秒以内にそのくらいは考えつくはず。
78:デフォルトの名無しさん
08/01/15 18:43:39
>>47
アラバマ物語もじってたのか。原題知らなかったw 「ものまね鳥を殺すには」が直訳かな。
ものまね鳥って「危害を加えない人」をたとえてるから、スマリヤンのタイトルでは「副作用のない演算」ぐらいの意味だろうか?
てことは「副作用のない演算に似たものを作るには」ぐらいの意味のタイトルみたいだ。「ものまね鳥をまねる」じゃ意味が伝わらないよなぁ。
役者も意味が取れていなかったのがいまさらながらわかった希ガス。
79:デフォルトの名無しさん
08/01/15 18:47:24
>>73
具体的にどういうコード?
80:デフォルトの名無しさん
08/01/15 18:50:30
「副作用のない演算に似たものを作るには」の『副作用のない演算に似たもの』=『コレスゲーってプログラム』と読み替えると、
スマリヤンの本が>>60への答えになってるなw
「ものまね鳥をまねる」 = 「コレスゲーってプログラムを作るには」
81:デフォルトの名無しさん
08/01/15 19:03:21
こういう会話でまとめておこうw
スマリヤン:「コレスゲーってプログラムを作るには?」
グレアム :「Yコンビネータ・On・Lisp」
82:デフォルトの名無しさん
08/01/15 19:07:55
arcの言語仕様って公開されたの?
83:デフォルトの名無しさん
08/01/15 19:13:35
>>81
"On Lisp"の内容、マクロが中心だたから、「コンビネータ使って副作用のないマクロを書け。そうすれば『コレスゲープログラム』が作れるぞ!」って意味なのねん?
84:デフォルトの名無しさん
08/01/15 19:17:28
>>80
どうだろう。彼が要求しているのは
「今まで解けると思われていなかった問題を解けるような"アプリケーション"」
だからなぁ。
それってつまり、チューリング等価を越えろっていう要求ではないかと思うんだ。
彼は言語のパワーというものが、あるものを「どう」実現できるかという"how"の領分の話だということが
まるで理解できていないんでは?
「Lispが凄いのなら、Lispで書いたプログラムにしか為し得ない動作があるのだろう」
という発想でモノを言ってるように窺える。てかそもそも「アプリケーション」って言い方が猛烈に素人臭いしw
85:デフォルトの名無しさん
08/01/15 19:21:43
>>79
;(define (stream-cdr stream)
; (srfi-45:lazy (cdr (srfi-45:force stream))))
これはプロミスを受け取ってプロミスを返す関数だからlazyをつけたいとこだけど
;(define (stream-tail stream k)
; (srfi-45:lazy
; (if (zero? k)
; stream
; (stream-tail (stream-cdr stream) (- k 1)))))
とかで末尾呼出しされない場合メモリを食いつぶす
86:デフォルトの名無しさん
08/01/15 19:27:11
>>84
プログラミング言語なんて所詮は「λ算法=チューリングマシン」の糖衣構文に過ぎないからねぇ。
スマリヤンの本の趣旨は「コレスゲーってプログラムをつくるには(ゲーデルのいうように限界があるのだよ)」ということだからねぇ。
87:デフォルトの名無しさん
08/01/15 19:39:14
(delay (force ...))とかしなくても
call/ccでdelayを包めばいいじゃん
とか思ったりもしたけど
遅延される計算量がエラいことになって使い物にならないことに
実行するまで気づかなかった('A`)
というか実行しても暫く気づかなかったorz
88:デフォルトの名無しさん
08/01/15 19:40:05
>>85
forceはどこいった?
89:デフォルトの名無しさん
08/01/15 19:41:51
これテンプレに入れようよw
URLリンク(www.asahi-net.or.jp)
90:デフォルトの名無しさん
08/01/15 19:41:59
>>88
stream-tailがプロミスを返すので
(srfi-45:force (stream-tail s 10))とかするつもり
91:デフォルトの名無しさん
08/01/15 19:52:19
>>90
srfi-45のルール通りにやれ
92:デフォルトの名無しさん
08/01/15 20:03:54
>>91
どこらへんがルールと違う?
* wrap all constructors (e.g., '(), cons) with delay,
* apply force to arguments of deconstructors (e.g., car, cdr and null?),
* wrap procedure bodies with (lazy ...).
は守ってるつもりだけど
93:デフォルトの名無しさん
08/01/15 20:06:30
>>89
朝日ネットのURLは
/~KI4S-NKMR/
こう書くほうが好みだな
94:デフォルトの名無しさん
08/01/15 20:33:04
>>83-84,>>86
ループまたは再帰のあるチューリング完全なプログラミング言語は等価であるということですか。やっとわかりました。(汗
等価であるなら個別の問題に対して実装しやすい言語を使えば良いということですよね。
でLisp/Schemeの場合、マクロで拡張してその問題に特化したDSLを作成して実装したらいいというのがグレアムのスタンス。
>>54が言ってた言語の拡張性がこの言語のユーザーの強みといえるかな。SLLGENとかもソレ系ですし。
95:デフォルトの名無しさん
08/01/15 20:58:31
>>83-84,>>86,>>94
そういう流れのLisp本、チャイティン著「知の限界」「数学の限界」という本がありますよ。
Lisp使ってゲーデルの不完全性定理やチューリングの停止問題を説明してます。
96:デフォルトの名無しさん
08/01/15 21:09:22
ググってたらゲーデルもLisperだったって書いてあった。
97:デフォルトの名無しさん
08/01/15 21:16:06
>>93
うるさいことを言うと、URLの中の ~ はエスケープしなければいけないという「規格」になっておる。
98:デフォルトの名無しさん
08/01/15 21:17:44
87は計算量以外に初歩的かつ致命的な欠点があった
忘れてくださいorz
99:デフォルトの名無しさん
08/01/15 21:27:29
Sho"nfinkel Rules!!!
100:デフォルトの名無しさん
08/01/15 21:50:27
>>96
ホフスタッターの本にそんなのあったね。
あった!「メタ、マジックゲーム」p445
「ゲーデルはリスプ(Lisp)を思いついておくべきだった。
もし彼がリスプを思いついていたならば...」
101:デフォルトの名無しさん
08/01/15 22:12:48
>>97
> >>93
> うるさいことを言うと、URLの中の ~ はエスケープしなければいけないという「規格」になっておる。
RFC 1738 ではそうですね。
URI (RFC 2396) ではおkです。
102:デフォルトの名無しさん
08/01/15 22:14:20
みんな学があるなあ
103:デフォルトの名無しさん
08/01/15 22:47:42
学々古々
104:デフォルトの名無しさん
08/01/15 23:01:11
>>95
「知の限界」読み直してみようと思う。p71のLISPによるゲーデルの証明、
これSchemeで書きなおせるかやってみる。
チャイティンの書いたLispインタープリタってネットで公開されていたような...
105:デフォルトの名無しさん
08/01/15 23:02:24
lex/yacc&flex/bisonでパーサー作るより>>94みたくDSLで拡張すれば、既存のLisp/Schemeのプログラムとくっ付けることでいとも簡単に新しい処理系が出来てしまうのか。
しかもPrologとかAIを組み合わせればちょっと他の処理系では作りにくいものも作れてしまうのか。ガンダムの教育型OSってこんなイメージかなw
がんばってLittle Schemerシリーズ読んでみようかな。Ocaml/Haskellはかじったけどこっちの方が面白杉。
106:デフォルトの名無しさん
08/01/15 23:05:54
>>104
あれ、emacsやxyzzyでも動くのかな?Scheme版出来たらうpキボンヌ
107:デフォルトの名無しさん
08/01/15 23:10:14
>>95,>>100,>>104達、すごい本読んでるね。
108:デフォルトの名無しさん
08/01/15 23:13:16
>>103
そんなオマエにガクガクブルブルw
109:デフォルトの名無しさん
08/01/15 23:18:14
「げー出る、エッシャー、バッハ」と「メタマジック・ゲーム」は俺も本棚に飾ってあるぜー!
前者は箱入りなのに後者は箱がなくて悲しいぜ。
110:デフォルトの名無しさん
08/01/15 23:19:24
このスレで紹介された本
[1] Little Schemer
[2] Seasoned Schemer
[3] Reasoned Schemer
[4] To Mock a Mockingbird(ものまね鳥をまねる)
[5] To kill a mocking bird(アラバマ物語)
[6] On Lisp
[7] 知の限界
[8] 数学の限界
[9] メタ、マジックゲーム
[10] SICP
111:デフォルトの名無しさん
08/01/15 23:20:26
[11] ゲーデル・エッシャー・バッハ
112:デフォルトの名無しさん
08/01/15 23:27:42
前スレからだけどこれもあった。2月が楽しみ。wktk
[12] 「プログラミングGauche」 川合史朗 監修 Kahuaプロジェクト 著
113:デフォルトの名無しさん
08/01/15 23:40:25
>>45
Yコンビネータまで8羽理解すればいいのか。今、気がついたw
S (ムクドリ:Starling)
K (チョウゲンボウ:Kestrel)
I (???:Identity bird)=SKK
B (???:Blue bird)=S(KS)K
C (コウカンチョウ:Cardinal)=S(BBS)(KK)
M (ものまね鳥:Mocking bird)=SII
L (ヒバリ:Lark)=CBM
Y (賢人鳥:Why bird)=SLL
114:デフォルトの名無しさん
08/01/15 23:50:00
>>113
ホレ。
(define S (lambda (f) (lambda (g) (lambda (x) ((f x) (g x))))))
(define K (lambda (x) (lambda (y) x)))
(define I (lambda (x) x))
(define-macro (define-combinator name body)
`(define ,name
(lambda (arg)
(,body arg))))
(define define-combinator define)
(define-combinator B ((S (K S)) K))
(define-combinator C ((S((S(K((S(K S))K)))S))(K K)))
(define-combinator M ((S I) I))
(define-combinator L ((C B) M))
(define Y
(lambda (F)
((lambda (my-make-f)
(F (lambda (x) ((my-make-f my-make-f) x))))
(lambda (my-make-f)
(F (lambda (x) ((my-make-f my-make-f) x)))))))
115:デフォルトの名無しさん
08/01/15 23:52:45
(define (Fact my-fact)
(lambda (n)
(if (= n 0)
1
(* n (my-fact (- n 1))))))
(define fact (Y Fact))
(fact 10)
3628800
116:デフォルトの名無しさん
08/01/15 23:53:43
(define (Fib my-fib)
(lambda (n)
(if (<= n 1)
1
(+ (my-fib (- n 1))
(my-fib (- n 2))))))
(define fib (Y Fib))
(fib 10)
89
117:デフォルトの名無しさん
08/01/15 23:55:09
これでもいいハズだけどw
(define-combinator Y ((S L) L))
118:デフォルトの名無しさん
08/01/16 00:00:31
>>110
> [9] メタ、マジックゲーム
超なつかしい
高校の夏休みにY.M.O.ベストと一緒に図書館で借りて読んだのをおぼえてる。
いま思うと充実してたなあの頃は。
119:デフォルトの名無しさん
08/01/16 00:02:22
,. -‐'''''""¨¨¨ヽ それじゃあ僭越ながら
(.___,,,... -ァァフ| あ…ありのまま 今 起こった事を話すぜ!
|i i| }! }} //|
|l、{ j} /,,ィ//| 『おれは階乗計算のために無名関数をいじっていたと
i|:!ヾ、_ノ/ u {:}//ヘ 思ったらいつのまにかいじる前の状態に戻っていた』
|リ u' } ,ノ _,!V,ハ |
/´fト、_{ル{,ィ'eラ , タ人 な… 何を言ってるのか わからねーと思うが
/' ヾ|宀| {´,)⌒`/ |<ヽトiゝ おれも何をされたのかわからなかった…
,゙ / )ヽ iLレ u' | | ヾlトハ〉
|/_/ ハ !ニ⊇ '/:} V:::::ヽ 頭がどうにかなりそうだった…
// 二二二7'T'' /u' __ /:::::::/`ヽ
/'´r ー---ァ‐゙T´ '"´ /::::/-‐ \ グラハムだとかチャイティンだとか
/ // 广¨´ /' /:::::/´ ̄`ヽ ⌒ヽ そんな大層なもんじゃあ 断じてねえ
ノ ' / ノ:::::`ー-、___/:::::// ヽ }
_/`丶 /:::::::::::::::::::::::::: ̄`ー-{:::... イ もっと恐ろしい「普通の再帰」と「Yコンビネータ」の違いを味わったぜ…
120:デフォルトの名無しさん
08/01/16 02:29:41
とりあえず、グレアムな
121:デフォルトの名無しさん
08/01/16 06:00:52
>>114
「計算論」(高橋正子著)を読み始めていたので参考になった。
ありがとう。
122:デフォルトの名無しさん
08/01/16 11:45:06
急に難しい話題が増えたね
俺はバカだから、理由もなく難しいことを考えるのは非合理的だと思うけど
君らにとっては難しくなくて、難しくないことを考えるのに理由は要らない
なんというかバカの壁を実感したよ
123:デフォルトの名無しさん
08/01/16 12:26:41
バカであることに気がついてる奴は大したバカではないよ
124:デフォルトの名無しさん
08/01/16 14:35:15
じゃあ俺も壁感じたから大した馬鹿じゃないな\(^o^)/ヨカター
ところで、新宿ジュンク堂にならLittle schemerあるかもと思ったけど無かった。
MITの本はいくつかあったけど。
注文したらアマゾンの方が早いかな。
125:デフォルトの名無しさん
08/01/16 18:06:49
>>113-114
チラ見だけど、SKKとかSIIとかSLLとかがやたら目に付いた。なんか深遠なパターンがあるんだろうな。
126:デフォルトの名無しさん
08/01/16 18:14:00
>>80-86
その「コレスゲープログラム」はunlambdaのことジャマイカ?
難読化してもちゃんと動くぜってノリだった希ガス。
127:デフォルトの名無しさん
08/01/16 19:39:36
ポルナレフに突っ込み入れる>>120はアブドゥルなのか?w
128:デフォルトの名無しさん
08/01/16 19:53:02
>>126
チャウチャウ。このスレの流れで言ってるコレスゲープログラムは定理証明機としての意味。だから>>95,>>104の話が出てきた。
>>100の紹介した本が言ってるのは「ゲーデルがもっと便利な定理証明機(Lisp)を思いついていれば」という意味だ。
つまりスマリヤンが言ってるコレスゲープログラムとはスゲー定理ということ。
129:デフォルトの名無しさん
08/01/16 19:54:52
コレスゲープログラム = スゲー定理 = ゲーデルの不完全性定理
130:デフォルトの名無しさん
08/01/16 19:59:59
つまり>>60はスマリヤンやチャイティン嫁ってことかw
131:デフォルトの名無しさん
08/01/16 20:19:26
タオイズムか!
132:デフォルトの名無しさん
08/01/16 20:55:13
「ものまね鳥をまねる」って「定理証明機=ラムダ算法=結合子論理=プログラミング言語」って意味だったのか。マジで知らなかった(汗
このスレ勉強になるな。
133:デフォルトの名無しさん
08/01/16 21:05:52
>>126
UnlambdaやBrainf*ckの意味ではなく、CoqやIsabella等の定理証明機が正解かな常考。
134:デフォルトの名無しさん
08/01/16 21:13:32
>>124
まちがいない。
135:デフォルトの名無しさん
08/01/16 21:27:01
>>86と>>132をみてチューリングマシーンが定理証明機だということに初めて気がついた。そういうことだったのか。
136:デフォルトの名無しさん
08/01/16 21:34:08
なら>>60が求めてるのは「公理データベースによって結果が異なる自動定理証明機」というところか?
137:デフォルトの名無しさん
08/01/16 23:00:18
>>135
チューリングマシーンがハードウェア型の定理証明機とするならラムダ算法とか結合子論理はソフトウェア型の定理証明機になってるよね。
でも>>100にあるようにもしもゲーデルがLispのようなプログラミング言語を知っていれば、ゲーデルの証明はもっと理解しやすかったのにということだよ。
つまり、たとえ等価でももっと分かり易くできるプログラミング言語があるならそれを使うべきだというのが結論じゃないかな。
教養として難しいことも知っておくのも意義はあるけどね。UnlambdaやBrainf*ckもそういう意味でしかないと思う。
138:デフォルトの名無しさん
08/01/16 23:13:01
自力では歯が立たなかったので下記を参考にやってみた。
URLリンク(www.unfindable.net)
;;不動点
(define (f x) `(',x ',x))
> (f 'x)
((quote x) (quote x))
> (f f)
((quote #<procedure:f>) (quote #<procedure:f>))
> (equal? (f f) (eval (f f)))
#t
> (equal? (f f) (eval (eval (eval (eval (eval (f f)))))))
#t
>
続く
139:デフォルトの名無しさん
08/01/16 23:14:00
;;チャイティン Lispによるゲーデルの証明
;;(valid-proof? x) の定義があると仮定する。xが妥当な証明なら'()
;;xが妥当な証明なら実証された定理を返す。
;;s式yが証明できない⇔すべてのs式xについて (valid-proof? x)が
;;yと等価とは限らない。
;;これを肯定する述語が (is-unprovable y)
(define (g x) `(is-unprovable (value-of (',x ',x))))
> (g 'x)
(is-unprovable (value-of ((quote x) (quote x))))
> (g g)
(is-unprovable (value-of ((quote #<procedure:g>) (quote #<procedure:g>))))
> (equal? (g g) (eval (cadr (cadr (g g)))))
#t
>
証明できないということは証明できない = (証明できないということは証明できない)ということは証明できない。
こういう意味なのだろうか?頭が痛くなりそうだ。
140:デフォルトの名無しさん
08/01/16 23:32:34
訂正
誤 ;;(valid-proof? x) の定義があると仮定する。xが妥当な証明なら'()
正 ;;(valid-proof? x) の定義があると仮定する。xが妥当な証明でないなら'()
141:デフォルトの名無しさん
08/01/16 23:37:03
>>139
その入れ子になっている計算が無限に続いた入れ子と仮定して、その計算はいつか止まるのかという意味になっている。
それがチューリングの停止性問題だ。1931年にゲーデルがやったことを1937年にチューリングがチューリングマシンで説明した問題。
それをチャイティンはLispで書いてみたってこと。チューリングの停止性問題でググレばわかりやすい説明が見つかるだろう。
(チャイティンにケチをつけるわけじゃないが、無限のメモリがないと同じことにはならない)
142:デフォルトの名無しさん
08/01/16 23:50:09
>>140
Little Schemerの9章に出てくるYコンビネータも無限に続いた入れ子(=再帰関数)を作るためだよね。
>>114-119のYコンビネータがそれに相当するかな。
143:138
08/01/16 23:58:33
>>141
>>142
なるほど〜。勉強になりました。
144:デフォルトの名無しさん
08/01/17 00:06:45
無限ループは止まらないだろ常考。ということは、「証明できないということは証明できないということは・・・」の答えが返ってこないから証明できないわけ。
145:デフォルトの名無しさん
08/01/17 00:08:35
>>143
おぉ、理解早いね。
146:デフォルトの名無しさん
08/01/17 00:20:21
>>144
ゲーデルとチューリングって無限ループは止まらないってことを言ってるのか。なんか意外だなぁ。
147:デフォルトの名無しさん
08/01/17 00:23:36
・止まる無限ループが存在すると仮定する
・矛盾する
・従ってすべての無限ループは止まらない
・証明終わり
148:デフォルトの名無しさん
08/01/17 00:25:33
>>146
無限という概念は数学的には不可解なのです。
149:デフォルトの名無しさん
08/01/17 00:33:04
ループや再帰を持つものはチューリング完全である。
↓
無限のループや再帰は止まらないことがある。
↓
判定不能な問題が存在する。
↓
チューリング完全なプログラミング言語は万能ではない!
↓
プログラマーに出来ることには限界がある。
↓
バカの壁(Q.E.D.)
150:デフォルトの名無しさん
08/01/17 00:38:48
ゲーデルとチューリングってバカの壁ってことを言ってるのか。なんか意外だなぁw
151:デフォルトの名無しさん
08/01/17 00:42:36
バカの壁という概念は数学的には無限ループなのです。
152:デフォルトの名無しさん
08/01/17 01:10:59
量子論的にはどんな壁でもすり抜けられるけどね。
153:デフォルトの名無しさん
08/01/17 01:34:23
確率が低いだけだな
154:デフォルトの名無しさん
08/01/17 01:38:18
本当によくわからないんです><
155:デフォルトの名無しさん
08/01/17 09:54:11
関数型初心者→Haskellかじって→SICP読み始める→Scheme素晴らしい
な人間ですが、Lisperから見たとき、Haskellってどんな印象なんでしょうか。
156:デフォルトの名無しさん
08/01/17 10:16:02
止まるなら止まる
止まらないかもしれないと止まらないかもしれないと止まらないかもしれないと....
という「半アルゴリズム」なんだな
157:デフォルトの名無しさん
08/01/17 13:14:48
>>155
「なんて純粋な関数型!しかも遅延!」
158:デフォルトの名無しさん
08/01/17 13:35:51
なぜかわからんが、昔から俺には
「遅延」っていう響きがいやらしく感じるんだ。
159:デフォルトの名無しさん
08/01/17 14:00:35
>>155
Lisper一般ではなく、あくまで俺の印象だが、
「純粋すぎてちょっとめんどい」って感じ。
たぶん誤解なんだろうけど。
160:155
08/01/17 14:16:28
なるほど、ちょっとメンドイというのは、Schemeの芸術的シンプルさから見たら
色々煩すぎるよ、ということでしょうか。
161:デフォルトの名無しさん
08/01/17 14:16:43
> Haskell
数学や哲学の匂いに比べて、肝心の(という言い方はトゲがあるかな)工学の匂いが薄い、
という風に感じる。
でもこれは、2chのスレや、関数型言語関連の検索で引っかかったページからの印象で、
実際にHaskellに触ったことは無いんで、>>159と同じく、色々誤解もあるんだろうなと想像。
162:デフォルトの名無しさん
08/01/17 14:36:20
>>160
ちょっと違うかな。
LispでもSchemeでも、関数型風に書くこともできれば、手続き風に書くこともできるよね。
純粋関数型言語ってのはそういう融通が効かなさそうで、用途によっては面倒じゃね?って
イメージ。たぶんいろんな逃げ道があって、そうでもないんだろうけど。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5369日前に更新/210 KB
担当:undef