- 1 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 00:09:48 ]
- ※ ここはCommon Lisp、SchemeをはじめとするLisp族全般のスレです ※
□過去スレ□ Part22: ttp://pc11.2ch.net/test/read.cgi/tech/1211381920/ Part21: ttp://pc11.2ch.net/test/read.html/tech/1207300697/ 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/ Part09: ttp://pc2.2ch.net/test/read.cgi/tech/1069594582/ Part08: ttp://pc5.2ch.net/tech/kako/1058/10582/1058263391.html Part07: ttp://pc5.2ch.net/tech/kako/1042/10421/1042167213.html Part06: ttp://pc3.2ch.net/tech/kako/1031/10315/1031560687.html Part05: ttp://pc3.2ch.net/tech/kako/1023/10230/1023091882.html Part04: ttp://pc.2ch.net/tech/kako/1016/10162/1016211619.html Part03: ttp://pc.2ch.net/tech/kako/1008/10082/1008220265.html Part02: ttp://pc.2ch.net/tech/kako/1002/10025/1002584344.html Part01: ttp://piza2.2ch.net/tech/kako/987/987169286.html
- 75 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 13:22:25 ]
- (A)BNF(投資家じゃない方の)からS式にマップは原理上可能ですが
そのS式とコードを食わせると構文木を作ってくれる ような関数もschemeでは楽に書けるんでしょうか? これができたらコンパイラのフロントエンド部分を作り放題なんですが
- 76 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 13:24:30 ]
- それが(いわゆる)コンパイラコンパイラって奴ですな
- 77 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 13:30:07 ]
- >>75
SLLGEN
- 78 名前:70 mailto:sage [2008/07/27(日) 13:39:52 ]
- >>71-74
Schemeに元々慣れていれば、って感じですね。 レスありがとうございました。
- 79 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 14:07:44 ]
- >>76
コンパイラコンパイラとかでぐぐったら凄い数の実例がありました すごいですね >>75 こんなライブラリもあるんですか また読ませていただきます
- 80 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 16:35:39 ]
- >>75
Gauche の SVN Trunk に入ってる parser.peg モジュールが使えるんでね?
- 81 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 00:16:27 ]
- >>80
ドキュメントが無いよ…
- 82 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 23:45:00 ]
- 分子構造をリストで表せないでしょうか?
例えば、C2H6Oだとエタノール、ジメチルエーテル。 炭素原子から手が4つ出ているのをリストで表現するには どうしたらいいのかと...
- 83 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 23:54:30 ]
- >>82
CMLで書いてssax:xml->sxmlするんだ。
- 84 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:30:12 ]
- >>82
隣接リストでいいんじゃね? >>83 CMLって使ってる人見たことないんだけど
- 85 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 04:38:19 ]
- >>84
ありがとうございました。隣接リストで考えてみます。 あわせて行列による分子の表現、行列演算による化学反応の表現が できたら面白いと思いました。やってみます。
- 86 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 05:10:52 ]
- >>82
つXymTeX oku.edu.mie-u.ac.jp/~okumura/texwiki/?XyMTeX www.klavis.info/xym.html homepage3.nifty.com/xymtex/fujitas/rd/chosho.html
- 87 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 06:00:41 ]
- Gaucheでzlibを使うにはどうしたらいいんでしょう?
practical-scheme.net/wiliki/wiliki2.cgi?Gauche%3AZlib にある Gauche-zlib-0.1.2.tgz はリンク切れで入手できません うーん
- 88 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 06:32:07 ]
- (^A^)ガウチョ
- 89 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 06:42:59 ]
- srfiにzipうんたらって関数なかったっけ?
それで
- 90 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 07:39:52 ]
- >>85
ずっと昔は化合物を扱うLispで書かれたシステムもあったらしい。 今だとPythonの方が主流?かな。 でもがんばれ。 >>86 それLaTeXだし方向性が違うと思うぞ
- 91 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 11:49:34 ]
- >>90
TeXだからASCII文字シリアライズwith構造の参考になるでしょ。 しかも変換できるようにしておけば、 XymTeXで分子構造図画像も作れるし。
- 92 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 15:34:35 ]
- schemeについての質問です。
二分木を作成、描写せよという問題で作成まではできたのですが、描写とはどうすればいいのでしょう? 初心者な質問ですいません。
- 93 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 18:36:34 ]
- 設問した奴に聞けよw
- 94 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 22:05:44 ]
- >>87
あぷろだにUpっといてやったぞ。 www.toel.sytes.net/~toel/cgi-bin/upload/stored/up3794.xxx
- 95 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 22:12:03 ]
- >>87
Windows 版でよければ Gauchebox に入ってるぞ
- 96 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 03:52:27 ]
- >>94
>>95 ありがとうございます win, linux両方で使用するのでどちらも利用します。
- 97 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 00:48:03 ]
- wiki.fdiary.net/lisp/ ですが、一応情報を集めるサイトにしてあります。
どんどんページを追加してやってください。 comp.lang.lisp,comp.lang.schemeまで含めようとしたけど、matzlispのhikiの プラグインがatomに対応していないためにやめました。これらはmiscに 入れておきました。
- 98 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 12:15:51 ]
- gauche-firebird がリンク切れかサイト死亡で見れないんですが、
firebird 用のDBDどこかにありませんか?
- 99 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 15:02:46 ]
- 40過ぎのわしでも子供の頃(高校生くらい)に Lisp に憧れたんだから、
今の子ならそんなの普通だと思ってたが・・・
- 100 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 15:07:34 ]
- おっちゃん誤爆してるで
- 101 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 15:39:56 ]
- まあ少年がLisp触ってるぐらいでオヤジども喜びすぎと
雑誌の記事がLispかBasicだけという時代に若者だった俺は思う
- 102 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 18:43:30 ]
- 90過ぎのワシも高校のころにLispに憧れたぞ。
- 103 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 19:39:04 ]
- >>102
ジジイ、いくつのとき高校行ったんだよ?
- 104 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 21:04:39 ]
- >>102
McCarthyより年上じゃねえかw
- 105 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 22:54:11 ]
- >>103
ここまでの年齢だと逆に、 中学までしか出てなくて、定年してから学業やりたくて高校行くみたいなエピソードが 想像しやすいかもしれんw
- 106 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 23:07:17 ]
- ラムダ計算論ができたころに高校生だったんですね、わかります。
- 107 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 07:18:31 ]
- 日本では戦前にLispが発見されたという噂を聞いて駆けつけました。
- 108 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 19:08:03 ]
- lispの起源は韓国ニダ
- 109 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 02:13:02 ]
- 日本で最初のLisperって誰?
HLISPの後藤英一先生?
- 110 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 02:25:12 ]
- そのあたりだろうな。あと故・中西正和先生とか。
- 111 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 09:39:55 ]
- 竹内先生は意外と遅い組?
- 112 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 11:59:42 ]
- 和田先生も忘れちゃいけないよね。
- 113 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 12:45:20 ]
- あと、その世代だと井田先生かな。
- 114 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 13:33:13 ]
- 思えばその世代のLisperはどれも役立たずだったな
- 115 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 15:47:43 ]
- つまんない煽り乙
- 116 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 16:05:25 ]
- 今の世代のLisperはどれも>>114よりは役に立ってるかな。
- 117 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 05:47:20 ]
- 注目ワード“高階プログラミング”って何だ?
ttp://ascii.jp/elem/000/000/157/157495/
- 118 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 06:26:53 ]
- 萩谷先生の関数プログラミングっていう本は
高卒レベル数学力(偏差値60切る位)でプログラミング初心者では読めませんか? Yコンビネータなどの高度な話題にもふれてますか?
- 119 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 07:45:12 ]
- >>118
良い本です。だいじょうぶですよ。 途中、フィボナッチ数列の行列表現、固有値 とかでてきますけど本筋とは関係ないので とりあえず無視してOKです。 Yコンビネーターはとりあげてないですね。 序文で萩谷先生は高校生に読んでもらいたい と書いてます。
- 120 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 10:07:30 ]
- Yコンビネーターについて触れてる、高校生にも読める本って
そういえば無いような気がする。あったっけ?
- 121 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 11:55:39 ]
- プログラミング初心者が読んで何かを作れるようになりたいんだったら向いてないかも。
- 122 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 11:56:13 ]
- >>120
Little Schemer
- 123 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 12:00:27 ]
- あれYコンビネータまで行くのか
- 124 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 13:26:10 ]
- Yコンビネータって本を読むほどの物でもない気がするけど
λ記法でわかりにくければS式で書き下せばいい
- 125 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 14:15:05 ]
- なんでYコンビネータだけが特別扱いされてるんだろ?
- 126 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 14:17:50 ]
- 再帰系のコンビネータの中でってこと?
そりゃ一番シンプルだし。
- 127 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 14:36:46 ]
- >>126
つか、やたら Y が目につくようになったのはいつ頃から?
- 128 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 14:39:56 ]
- 今朝くらいから
- 129 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 17:45:17 ]
- >>128
それはテトラポッドやろ。
- 130 名前:デフォルトの名無しさん mailto:sage [2008/08/06(水) 18:32:43 ]
- >>119
ありがとうございます。 > 途中、フィボナッチ数列の行列表現、固有値 程度なら理解できると思います。
- 131 名前:lischemep ◆/uyHCgG7qA mailto:sage [2008/08/10(日) 23:28:50 ]
- 都内で初心者向け勉強会を模索しようとしております。
以下想定です。 こうしたらいいとかありましたらどんどん提示して頂けたら幸いです。 ・大学生のLisper/Schemerを先生として呼ぶ ・上記のため会費をとります。 ・場所は以下を想定。(1h:1400〜2300円くらい+各自1ドリンク) ttp://www.ginza-renoir.co.jp/miyama/ ・スキルがバラバラになるため基本的に自習を想定 (同スキルの人と課題本を決めてチーム学習する等は自由です) ・参加条件としてキーボードがサクサク打てる程度。処理系を入れるノートパソコン等。 ・開発環境構築から指導の予定 参加者希望予定者がいらっしゃいましたら、 lischemep at gmail.com まで下記を記入して送ってください。 使用希望の ・希望日(参加頻度:必ず参加、月1希望、仕事のため不定等) ・希望参加費 ・OSとバージョン ・エディタ ・処理系 (↑処理系は希望なければおまかせと書いてください) また先生やってみたいという方は、下記を記入して送ってください。 ・希望日(開催頻度も) ・希望報酬額(時給換算、月XX円等) ・対応できるOS・処理系・エディタ
- 132 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 00:27:37 ]
- 先生のレベルを決めないで、
希望参加費を申告制にすると、 収集つかないんじゃないかな。
- 133 名前:lischemep ◆/uyHCgG7qA mailto:sage [2008/08/11(月) 00:47:39 ]
- >>132
なるほど。 勇み足過ぎたかもしれません。 まず、参加希望者から ・自分のレベル ・どんな課題がしたいか を送ってもらうように訂正します。 lischemep at gmail.com
- 134 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 07:41:42 ]
- 最初の課題は開発環境構築じゃなくて処理系を選ぶこと。
- 135 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 08:09:45 ]
- >>131
お、面白そうだな。 確認だけど◆/uyHCgG7qAは先生じゃなくまとめ役ってこと? 「先生」の技量に全てが依存している気がする。 大学生でLisperを名乗れる奴ってどのくらいいるんだろう。
- 136 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 09:07:42 ]
- 131です
135さん 私は先生はとても無理です。 先生は学生でなくてもいいのですが そうすると高額なセミナーになってしまう気がして。 社会人のSchemer/Lisperなら薄謝もらってもおそらく割に合わないでしょうし。
- 137 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 09:55:28 ]
- >>136
スキモノならボランティアでやってくれるんじゃないの? もっと安くあげる方法はあると思う。 www.javaopen.org/jfriends/howto/
- 138 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 09:58:28 ]
- 自習じゃ駄目な理由は?
- 139 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 10:11:35 ]
- ここで聞けば良いのでは?
www.lingr.com/room/bpYrj7DtJnN
- 140 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 12:21:10 ]
- Lisp/Schemeは人気が低いわりに実装がやたら複雑だから人手が足りない。
移植したりライブラリを増やしたりできない。 勉強会やるとしたら言語仕様だけでなく実装についてやるべきだけど、 複雑な実装が乱立しているから難しい。 もちろん単純なScheme処理系もあるが、それは人気がなさすぎる。 たとえ言語が人気でも処理系が不人気なら意味がない。 複雑さの許容度は人気に比例するのだと思う。 複雑なものもいずれ必要にはなる。 でも今は必要ないんだよ。今一番必要なのは、人気と釣り合いのとれた単純な実装。 そのためならマクロを犠牲にしてもいい。 それに気づいた人はS式から離れていく。嫌いになった訳ではないがな。
- 141 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 13:11:44 ]
- >>140
で?っていう
- 142 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 16:49:10 ]
- >>140
自分の低能ぶりを直視できない人間だということを婉曲に表現した自己紹介ですね
- 143 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 18:28:33 ]
- >>140
言い訳をいろいろ考える才能はありそうですねw
- 144 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 21:36:40 ]
- 地元の大学でSchemeの授業があれば聴講したいの
だけど、残念ながら無し。 東京近辺に住んでいたら東工大の講義を聴講したい。
- 145 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 22:01:37 ]
- >>144
むかしなら、大学の授業の潜り込みは簡単だったんだけどね。 今は、わからない。 東工大もセキュリティは厳しくなってるからね。
- 146 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 22:53:18 ]
- >>140
釣られるけど、マクロの無いLispなんてLispじゃないだろ そもそもCommonLispもSchemeもちゃんと仕様のある「まとも」な言語なんだけど。
- 147 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 22:58:56 ]
- Lisp 1.5 は Lisp じゃないなw
- 148 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 23:46:28 ]
- 処理系のソースコードを気軽にいじれるならマクロなしでもいけるかも
Lisp1.5はそうだったかも
- 149 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 00:57:31 ]
- >>145
国立大は社会人受入れに寛容 なようなので正規に聴講生の 手続きをとって試験も受けて 単位もとりたいです。 でも、地方の大学でSchemeを 使った講義があるところは 限られてるみたいです。
- 150 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 01:02:10 ]
- マッカーシー博士の最初の論文
にあったLispで記述されたLisp で仕組みがよくわかりましたよ。 故中西先生もこの論文だったか ユーザーマニュアルだけを手がかりに 最初のLisp処理系を書いたと読んだけど。
- 151 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 01:05:10 ]
- マクロは無いくせにw、コンパイラは含んでいるというのは凄いと思う>LISP 1.5
- 152 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 01:10:57 ]
- 他言語処理系に対するアドバンテージは
マクロだけだもんね
- 153 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 01:12:19 ]
- >>149
どうしてもね。その傾向はあるかもね。人工知能の分野もlispよりC++のほうが勢いがあったり するらしいから、教える人が少なくなるんだろうね。筑波、東工ふくめて旧帝大あたりだったら 一つくらい授業がありそうだけど。それ以外の地方は確かに期待できないかもしれないね。 プログラムの筋はschemeをやる方が断然よくなるんだけどな。これは抽象化がうまくなるから だろうと思う。高階関数を扱える言語をしっかりやってるかやってないかでセンスはずいぶん変 わるね。
- 154 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 01:12:58 ]
- >>152
んなこたあないw
- 155 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 01:33:56 ]
- Lispのアドヴァンテージはいくつか
考えられますが、一番はS式のもつ プログラムとデータの同一性だと 思います。強力はマクロもその 特性のひとつでは?
- 156 名前:lischemep ◆/uyHCgG7qA mailto:sage [2008/08/12(火) 01:37:13 ]
- >>137
いいリンク紹介ありがとうございます。 やっぱり安く上げる方法考えた方がいいんですかね。 私自身はお金は無頓着なので。場所ももう少し探してみます。 課題本はあったほうがいいんでしょうか。 「この本やりたい」とかありましたら教えてください。 >>138 >>139 自習だとつまらないことでつまづいて長い時間考えることがあるからです。 ネット上で聞くということも出来ますが、 その場合状況説明のやりとりに時間がかかります。 私はもう結構な年なので、お金を払ってでも学習速度を上げたいと思ってます。
- 157 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 01:51:10 ]
- (意地悪い言い方で申し訳ないけど)自分の家庭教師が欲しい、ってことなのかな?
もしそうなら「自分と同じレベル募集」とか、はっきり言っちゃったほうが良いかも。w 俺も先生は大学生とか限らないほうが良いと思う。
- 158 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 01:55:18 ]
- > その場合状況説明のやりとりに時間がかかります。
これを要領よくやる訓練も必要かと
- 159 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 02:12:45 ]
- >>151
マクロ機能は自分で好みのを書けってことだったんじゃないかな? 当時のマクロの実装は簡単だったしね。
- 160 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 02:42:42 ]
- >>149
私立だって簡単に聴講生になれるぞ。 金がかかるだけで。
- 161 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 02:47:46 ]
- >>159
最初の頃はFSUBR + EVALで一々手で書いた。 パターンが出来上がったのでdefmacroになった。 >>156 > 自習だとつまらないことでつまづいて長い時間考えることがあるからです。 本当はそれが大切なんだけどね。 より深く理解するし、それが出来る人が継続もできる。 壁に負ける人はいつも負け続ける。
- 162 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 02:56:09 ]
- それが大切だとしても若いうちだけだろ。
年取ってるなら金払ってでも学習速度を上げたいって言うのはわかる。
- 163 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 02:59:04 ]
- 生涯学習だな。カルチャー教室でやらないかな?w
- 164 名前:lischemep ◆/uyHCgG7qA mailto:sage [2008/08/12(火) 06:13:10 ]
- >>157
家庭教師。つまるところそうなのかもしれません。 Lisp/Schemeにとっつきにくさがあると思ってて 同じ状況の人がいるだろうと思ってたのですがあまりいないみたいですし。。。 状況としてはThe Little Schemerの半ばで頓挫している状況です。 他にもプログラミングGaucheやANSI Common Lispなどをつまみ食いしてますが 途中で分からなくなってます。 色々当たっているうちに少しずつ分かったりしますが 時間がかかりすぎている気がしています。 このままだと数年かけて一冊片付くペースになってしまいそうです。 >>162 三十代になるとさすがに焦ります。
- 165 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 08:01:59 ]
- > 三十代になるとさすがに焦ります。
俺は164がなんでLisp/Schemeをやってみようと思ったのかが気になるな。 知的興味が理由なら年齢で焦ることはないだろうし。 近い将来に仕事で使う必要があるのなら焦る気持ちもわかる。 学習する動機によっておすすめの方法も違ってくると思うんだが。どう?
- 166 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 09:03:44 ]
- 書いてあるじゃん
挫折しそうだから くじけそうだから もう後がなさそうだから
- 167 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 09:45:28 ]
- 俺なんて、40近くになってScheme始めたぞ。
独学でSICPをしこしこ解いてるよ。 同時に数学の勉強も始めたんだが、こっちがきつい。 数学基礎論のやさしい教科書はないかな。
- 168 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 10:56:25 ]
- 目的がいまいちはっきりしない質問者はやがて身の上話を始める法則
>>167 > 同時に数学の勉強も始めたんだが、こっちがきつい。 > 数学基礎論のやさしい教科書はないかな。 数学基礎論の質問スレッド その4 science6.2ch.net/test/read.cgi/math/1207899938/ おおかた数理論理学か集合論の教科書を薦められると思うが 計算機科学との関連で何かもくろみがあるならこっちへ science6.2ch.net/informatics/
- 169 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 12:54:29 ]
- 「数学」が何を指してるか知らんが、
基礎論は数学を勉強する支えにはならないぞ普通は。 集合論とか論理とかを学ぶなら基礎論には手を出していない 普通の教科書のほうが良い。
- 170 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 13:28:48 ]
- >>168
ありがとうございます。覗いてみます。 >>169 そうなんですか? 集合論とか論理学から、計算機科学方面へ進めていきたいと思っていたのですが。 私の「基礎論」という言葉の使い方がおかしいのでしょうか? 集合論や論理学そのものを学んだほうが良いということでしょうか?
- 171 名前:デフォルトの名無しさん [2008/08/12(火) 18:36:29 ]
- >>146
仕様があればまともな言語なのぉ〜?
- 172 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 18:40:24 ]
- 「まともな言語」の集合を定義してください
- 173 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 19:28:14 ]
- >>170
今、数学で「基礎論」といったら、逆数学とかあのへんのことを指すんじゃないかな。 少なくとも専門分野を「基礎論」と自己規定してる数学者は、だいたいそのあたりの 分野を研究してることが多い。(Harvey Friedman, Stephen Simpson, 田中一之氏, etc) 「基礎論」という分野が勃興してきた19世紀末と現在とでは、言葉のニュアンス がかなり違ってきているので、注意が必要かと。 167氏はあるいはもっとルーズに、「基礎論」という言葉を「数理論理学」とほぼ同義で 使ってるのかもしれないが。 まあいずれにしろ、数理論理学は(少なくとも初歩の段階では)メインストリームの数学とは 直接関係しないことが多いね。幾何的モデル理論みたいに、数論への応用があったりする 分野もあることはあるけど、そういうのは非常に専門的な話題になってしまう。 (169氏が言ってる「数学を勉強する支えにはならない」というのはおそらくそういうニュアンスなのだろう。) でも理論計算機科学に興味があるのなら、数理論理学は必須だから、(167氏言うところの) 「基礎論のやさしい教科書」を勉強するのは意味のあることだと思うよ。 とりあえずはこのあたりをご参考に。 ttp://www.kurims.kyoto-u.ac.jp/~hassei/reading_list.html#LOGIC
- 174 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 20:05:34 ]
- 計算機工学者のための計算機数学のとっかかりということなら、
島内さんの「数学の基礎」はどうかと思ったが、 www.amazon.co.jp/数学の基礎-島内-剛一/dp/4535601062 絶版で中古市場では高い!ヤフオクでも元より値が上がってる!
- 175 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 20:22:59 ]
- 竹内外史とかのは基礎論だよな?
と板違いか。
- 176 名前:lischemep ◆/uyHCgG7qA mailto:sage [2008/08/13(水) 06:23:48 ]
- >>165
はじめのきっかけは、「普通のやつらの上を行け」を学生時代に読んでです。 知的興味もありますが、将来的には仕事で使いたいと思っています。 また、なるべくLisp/Schemeを広めていきたいと思っています。 それで初学者向けの勉強会が出来ないかと思いました。 目標としては、AllegroServeを使えるようになること、 On Lispを理解できるようになることです。
- 177 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 07:40:49 ]
- >>176
まだ、shemeやcommon lispに馴れていないならば、SICPよりもう少し簡単なもの からお勧めするよ。 schemerなら、gauche本でもいいし、common lisperならAnsi Common Lispや岩波 の本でもいいし。
- 178 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 11:16:10 ]
- >>176
ポールグレアムって結局SchemeにもCLにも否定的じゃないか?
- 179 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 14:30:39 ]
- >>178
どちらかといえばSchemeにもCLにも肯定的だと思うよ。 (Lisp族以外の言語に比べれば)
- 180 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 16:20:52 ]
- PG
javaには否定的というのははっきりしてるし、C系に苛立ちを持ってるような記述も みかけたことはあるかな。
- 181 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 16:46:20 ]
- CとPerlは人気の言語として色々条件を満たしているみたいな話があったような
- 182 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 18:55:38 ]
- 40年も前から存在するのに
lispが全く存在感無い事について 想像力を働かせてみた方がいいと思うね
- 183 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 20:29:28 ]
- >>182
どれだけの世界を見て生きてきたか知らんが、 あなたのちっぽけな経験で感じた存在感なんて なんだというのだ ふしあなか?
- 184 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 20:42:17 ]
- >>183
頑張ってそれか? 「viaweb以外のインストールベースの例を教えてください」 って聞かれたらどうするの? はいやりなおし!
- 185 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 20:44:57 ]
- 「実用性なんて飾りです。偉い人にはそれがわからんのですよ。」
くらい言わないと。
- 186 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 21:16:40 ]
- >「viaweb以外のインストールベースの例を教えてください」
なんか薄っぺらいなぁ。
- 187 名前:デフォルトの名無しさん [2008/08/13(水) 21:37:39 ]
- >>170
皆言ってるように「数学基礎論」そのものに首を突っ込む必要はない。 集合というのはただのモノで、ただのモノについての議論を深めていくと 濃度がどうとか数学基礎論の方へ行く。 そっちではなくて数学の基礎と言うか数学村の言葉使いに慣れておく必要がある。 つまり集合と言うただのモノに必要な性格付けをして数学的な実質のある体系を 作っていく手順を自分なりに一度は体験しておく必要がある。 入り易いのは数の構成で、島内氏のとか岩波新書に「数の体系」とかいろいろある。 そんなことは分かってるというのであれば不要だが、単に実数も複素数も知ってるというのではだめ。 次にやっておくべきは代数かな。計算機科学との相性も良いし、暗号等での応用もあって本もたくさんある。 あとは必要と興味に応じてやっていけば良い。ひとつ注目したいのは圏(カテゴリー)論。 ひと昔前はGAN(GENERAL ABSTRACT NONSENSE)とか揶揄されたが様変わりで、 Haskellで圏論と言う言葉を知る人も増えたらしい。
- 188 名前:デフォルトの名無しさん mailto:sage [2008/08/13(水) 22:43:56 ]
- 昔の本だと「数学基礎論」となっていても
真偽関数から始めて命題論理・モデル理論・述語論理・帰納的関数・・・と続き 最後にちょこっと公理的集合論が出てくる、というような感じで >>170のやりたそうなことに内容的にはちょうどよかったんじゃないかと思うが 今はもっと効率的にやる方法もあるだろう
- 189 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 00:16:28 ]
- >> 173, 187, 188
ご教示、ありがとうございます。 そもそもの動機なのですが、ただいま「論理と計算のしくみ」を読んでいまして、 ちょっと展開が速すぎて着いていけないので、もうすこし詳しく、さらに言えば 演習もあるような書籍は無いかと思ったしだいです。 証明の仕方に慣れていないせいか、結論はともかく過程に納得ができなくて。 とりあえず、「論理学をつくる」を入手しましたので、これをみっちりやってみます。 圏論も視野には入っています。ちょっと遠そうですが。 一番初めの目的はプログラミングや設計に役立てるためだったのですが、 いつのまにか、数学を学ぶこと自体が楽しくなってきてしまいました。 脱線して、計算機科学と関係ない方向に行ってしまいそうです。
- 190 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 00:18:15 ]
- >>184
はいさようなら!
- 191 名前:176 mailto:sage [2008/08/14(木) 08:39:29 ]
- 177さん
助言ありがとうございます。 やっぱりLispかSchemeどっちを学ぶか決めた方がいいのでしょうか。今は両方手をつけてます。 それと最近翻訳された実践Common Lispは初学者向けですか?
- 192 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 09:00:16 ]
- >>191
そこは自分で考える部分だよ。 言語の取得って基本的に同時に複数をやるのはあまりよいとは思えないですね。 ゴールがなにか?を考えたら使用する言語は決まってくると思うけど。 LLな活動ならgauche で充分だけど、重い計算をさせるならcommon lispのほうが 当然向いてるし。
- 193 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 10:15:16 ]
- >>192
同時にやるのが〜といったのは (defun foo (arg1 arg2) ....) (define (foo arg1 arg2) ....) と微妙な違いの1例だけど、この違いがなれないうちは混乱に結びつくからだよ。 (defun foo (arg1 arg2) .... (cond [(= a b) ...] ....)) みたいになっちゃいけないし。
- 194 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 10:18:31 ]
- >>193
それはcommon schemeだ。
- 195 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 17:48:19 ]
- >>191
『プログラミングGauche』で「途中で分からなくなって」るんだったら、 『実践CL』も同じ結果になる可能性が高いんじゃないかと。 とりあえず「AllegroServeを使えるようになる」という目標があるのなら、 CL一本に絞って、もっと懇切丁寧な初学者向け教科書で勉強してみるのが 一番じゃないでしょうか。 Peter Norvigもたしか「まったくの初心者にはこれが一番いい」と言ってたと 思いますが、TouretzkyのGentle Introductionが非常に丁寧でいいと思います。 こちらから全文が無料でダウンロードできます。 ttp://www.cs.cmu.edu/~dst/LispBook/index.html
- 196 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 20:27:19 ]
- 「リスト遊び」とかどうだろう。Emacsが動けばすぐ試せるし。
- 197 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 21:32:19 ]
- 「プログラミングGauche」は全部理解する必要はないだろう。
特に第3部は必要な箇所だけ読めば良い。
- 198 名前:lischemep ◆/uyHCgG7qA mailto:sage [2008/08/14(木) 23:53:22 ]
- 皆様、色々と助言ありがとうございます。
>>195さん、 よさそうですね。後で印刷して通勤の合間に読んでみます。 >>196 Emacs Lispの本も持ってます。そちらにも手を付けてみます。 >>197 それを聞いて少し安心しました。
- 199 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 00:10:04 ]
- AllegroServeを使えるようになるにしろ、On Lispを読めるようになるにしろ、
実践Common Lispは良いテキストだと思うけどなあ。 漏れは、リスト遊びや、Elispの勉強は、上二つの目的には直接関係してこないと思う。
- 200 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 07:36:30 ]
- >>199
禿同。実践本がマスターできたら、あとは自分で調べながら何でもやれるよ。 マクロもCLOSも書いてある本は他にないと思う。実践本のFOO言語の下りは 本当に素晴しい。 ちなみにAllegroServeは使うだけなら全然難しくないよ。 S式でややこしいListの構築の練習に良いかもね。 リスト遊びは名著だけど、泥臭くなさすぎる。
- 201 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 21:17:10 ]
- 教えてください.R5RSに記述されている手続き/シンタックスはすべて
syntax, library syntax, procedure, library procedure, optional procedureのいずれかに 分類されていますが,define, define-syntax, syntax-rulesに関しては上の分類別の記述がありません. どのように考えれば良いでしょうか.すべて定義に必要なものですから基本的なものだとは思うのですが 単純にsyntaxの部類に属するとしてよいのでしょうか.
- 202 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 22:01:12 ]
- define、define-syntaxは式ではないのでsyntaxではない
syntax-rulesは式ではないのでsyntaxではない たぶん
- 203 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 22:15:19 ]
- CLで言う所の特別式は値のある式だけど
R5RSではたとえば (define x (define y 100)) などは許されない
- 204 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 22:16:49 ]
- 値のない式もあるから203の例は不適当だったか
- 205 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 22:59:38 ]
- >>201
define, define-syntax, syntax-rulesは確かに書いてないねえ。 でも、こいつらはどう考えても手続きじゃないから分類するならsyntaxなんじゃないの?
- 206 名前:デフォルトの名無しさん mailto:sage [2008/08/15(金) 23:14:59 ]
- CLみたいに特別式、関数、マクロに単純に分類できないからねぇ
beginの扱いも微妙だし
- 207 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 16:12:21 ]
- svnから引っ張ってきた最新版のgaucheをVCでコンパイルすると
実行時にしょっぱなのScm_Initでこけます。 どうもvminsn.cの SCM_VM_LOCAL_ENV_CALL ラベルに来たとき vm->val0に値が設定されていないことが原因っぽいのですが、 これの解決策分かる方いませんか? スレチなら、適切な場所に誘導してもらえると嬉しいです。
- 208 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 16:17:07 ]
- >>207
> スレチなら、適切な場所に誘導してもらえると嬉しいです。 www.lingr.com/room/gauche
- 209 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 16:21:22 ]
- >>201
自分はsyntaxだと理解してきました。 ちなみにR6RSではsyntaxと明記です。
- 210 名前:デフォルトの名無しさん mailto:sage [2008/08/21(木) 16:32:12 ]
- >>208
ありがとうございます。
- 211 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 10:08:30 ]
- natu.txt-nifty.com/natsutan/2008/08/lisp_186c.html
センスのないネタやね。この手の奴にlispを語ってほしくないな。sicpを やってた奴みたいだが。
- 212 名前:デフォルトの名無しさん mailto:sage [2008/08/22(金) 11:21:48 ]
- どうでもいいものを、ここに張る奴もどうかしてる。
- 213 名前:201 mailto:sage [2008/08/23(土) 02:28:49 ]
- >>みなさま
いろいろお教えいただきましてありがとうございます >>209 さんのご意見に従い 割り切ってsyntaxに入れてしまったのが簡単で良いかなと思っています しかしこれらをあえてsyntaxから外してあるということは R5RSはそれだけ厳密に定義されているということなんでしょうか
- 214 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 14:07:51 ]
- R5RSは結構いい加減w
それ系のMLでも解釈について議論になってる。 もちろん仕様がないような言語とは比較になりませんが。 どういう言語でも↓こういうことがあるもんなんです。 www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html そういうレベルの意味において「いい加減」
- 215 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 14:32:15 ]
- 静的型と仕様は頭の中にあればいいよ
- 216 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 13:16:35 ]
- お前は頭の中で済むほど頭がいいのか?
- 217 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 13:41:23 ]
- お前は頭の中で済むと思い込むほど頭がわるい人は多い。
- 218 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 14:11:09 ]
- worse is betterを思い出した
頭のいい奴は複雑なものを作るから困る
- 219 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 14:17:34 ]
- 日本語は難しくてかなわん
S式で説明してくれ
- 220 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 16:58:12 ]
- (define (難しい? 言語) (eq? 言語 '日本語))
(if (難しい? '日本語) 'S式でおk)
- 221 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 18:06:39 ]
- >>220
コラコラw
- 222 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 19:41:38 ]
- >>220
#<undef>
- 223 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 21:16:28 ]
- ところでSchemeの仕様にむやみと未定義が多いのは何でなの?
なにかに決めりゃいいじゃん、nil でもいいからさぁ。 とりあえず決めた方が実用的になると思うんだけど。
- 224 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 21:24:42 ]
- >>223
決めちゃったらもう変えれないだろ。 議論が尽くされてないところは決めるべきじゃないし、 実用のために不格好になるのは CommonLisp だけで十分。
- 225 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 21:53:41 ]
- common lispが不恰好とな?
- 226 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 22:26:38 ]
- 少し認める
- 227 名前:デフォルトの名無しさん mailto:sage [2008/08/24(日) 22:44:55 ]
- >>223
決めちゃうことが(例えば性能的な)制約になる実装があり得るから
- 228 名前:デフォルトの名無しさん mailto:sage夜釣り [2008/08/25(月) 00:15:13 ]
- rubyとか酷いよね
- 229 名前:デフォルトの名無しさん [2008/08/25(月) 00:26:43 ]
- gauche上の話なのですが、
(definc-syntax member (syntax-rules () ((_ name) (name :init-value 0)))) (define-class <test> () (member X)) こうすると、どうも(member X)の展開が上手くいかないようなのです。 これを上手く展開させる方法はありますか?
- 230 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 00:29:57 ]
- >>229
本質的にマクロをわかってない。 あくまでもそういう書き方で展開させたいなら結構めんどいことになるよ。
- 231 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 00:31:15 ]
- 評価される場所でないと、マクロは展開されない。
define-class ごと再定義するのが良いだろう。
- 232 名前:デフォルトの名無しさん [2008/08/25(月) 00:46:58 ]
- >>230-231
ありがとうございます。 他のやり方を考えてみます。
- 233 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 13:14:13 ]
- writeとかdisplayが真値を返さない可能性があるので
and-let*とかで処理をつなぐ時にいちいち (begin (write obj) #t)とか書くのは不恰好な気がする。 せめて#<undef>は#fにはなりえない、くらいの制約は欲しい (とはいえ、未規定の値を返す手続きが#fを(返す|返しうる)処理系は見たことないけど)
- 234 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 20:56:28 ]
- * が前置されていたら次の式は #t を返したものとして扱う、てな
自分用and-letを定義したらどうよ。
- 235 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 21:23:18 ]
- 意味的に and じゃないとこで andなんちゃら を使っているのだから仕方ない
- 236 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 22:07:51 ]
- letをネストしたくないのと、いちいち継続を捕捉して脱出したくないだけだろ
戻り値が未定義だというのは問題の本質ではないな
- 237 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 22:13:41 ]
- 朝起きたらLISPになっていますように
- 238 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 22:22:37 ]
- つまり括弧を書きたくないだけだね。
フロントエンドでも作れば?
- 239 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 22:43:16 ]
- HaskellのMaybeモナドっぽく使いたいわけですよ
いろいろマクロを書いて試してます >>238 括弧を書きたくないのではなくて beginで値を捨てるのが好きじゃないんです 未規定値は#fかもしれないし真値かもしれないというのも気持ちが悪いです もしかしたら(eq? (write obj1) (write obj2)) -> #fかもしれませんし
- 240 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 23:00:06 ]
- 個人的には、未規定値は使ったとたんにエラーになる処理系が好ましいな
- 241 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 23:34:49 ]
- 0個の多値を返せばいいじゃない
- 242 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 23:54:07 ]
- and-let*の中で返り値が未規定な手続きを使ったり、
未規定値を比較する、といった発想が理解できない
- 243 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 23:57:40 ]
- 他コンピュータとの通信プログラムなどで
画面出力するというのが主ですね クライアントプログラムなどでREPLの介入が出来ない場合 デバッグのための出力を埋め込んだりもします
- 244 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 23:59:29 ]
- 未規定値の比較は実際には行いませんよ
ただ真理値も同一性も規定されていないから どうなるかはわからないといいたかっただけです
- 245 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 00:46:26 ]
- なぬ? (begin (write "hoge") #t) が恰好悪いですと?
そんな時こそマクロ〜
- 246 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 08:15:32 ]
- >>244
プログラミング向いてないのでは?
- 247 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 19:11:39 ]
- (define (tree-count elem tree)
(let f ((rest tree) (count 0)) (cond ((null? rest) count) ((list? (car rest)) (f (append (car rest) (cdr rest)) count)) (else (if (eq? elem (car rest)) (f (cdr rest) (+ 1 count)) (f (cdr rest) count)))))) (= 6 (tree-count '<> '(A B C <> (A <> (X <>)) <> (<> <>))) ; => #t こういうのでも末尾再帰になってるんでしょうか?
- 248 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 20:17:38 ]
- fの呼出しは末尾呼出しになってますね
- 249 名前:デフォルトの名無しさん mailto:sage [2008/08/27(水) 09:03:03 ]
- >>239
ほんとにMaybeモナドみたいにしたいなら、そのように書くしか無いと思うよ (有効な値は全部Justでくるむとか、逆に「有効な返り値と決してeq?にならない 値」を失敗を表すのに使うとか)。and-let*で#fを特別扱いしてるのは 「大抵の場合うまくいく」っていう一種の妥協で、>>239のアプリは その「大抵の場合」から外れているってことだと思う。
- 250 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 23:00:41 ]
- 絶版になったと思ってたディヴィグ翻訳本
いつの間にかまた売られるようになってますね 3版ではなさそうですが
- 251 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 19:44:54 ]
- little schemerの継続の所が凄くわかり辛い(関数名からして意味不)
今の段階ではこういうのもあるって知っておく程度で詳細は他の本でカバーしろって事かな?
- 252 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 21:00:46 ]
- 頑張れ、ここで派を食いしばれってこと。
ドリルみたいなもんだから、逃避したら身には付かない。
- 253 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 21:07:49 ]
- 何の発見もない精神論だな
- 254 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 21:15:31 ]
- 結局shiroさんの記事とwikipediaとprogramming language schemeを参考にしましたけどね
- 255 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 21:15:31 ]
- ドリルでルンルンクルルンルン
- 256 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 15:02:19 ]
- >>251
具体的にどのページのどれが分からないか書かないとまともなレスは来ないよ常考。
- 257 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 23:09:46 ]
- 継続渡しのネタはP.137-147ですね
あとP.160ー173のYコンビネータのネタもややこしいですね 初見では10章よりも難しく思えましたまる
- 258 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 15:46:59 ]
- P.137の multirember&co の定義で2つコレクター出てくる。
ひとつは (lambda (newlat seen) (col newlat (cons (car lat) seen))) もうひとつは (lambda (newlat seen) (col (cons (car lat) newlat) seen)) 実は2つとも無名関数で再帰をしている。このコレクターが再帰のたびに別な関数になっていることをちゃんと理解できてるかな? これが分かるならP.140までは理解できているはず。つまりTenth Commandmentはコレクターを作れってことだよね。実行してみるとこうなる。 codepad.org/efWZQKk8 8章のテーマは確かに継続渡しなんだけど、無名関数で再帰することを上手にやるのがコレクターってこと。 9章のネタではさらに再帰のさせ方を工夫してやるとYコンビネータを作れるというお話。 P.137からP.140が理解できればコレクターとYコンビネータを両方とも理解できます。頑張れ。
- 259 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 16:08:06 ]
- Yコンビネータは memoization に役立つんだけど、それとコレクターは瓜二つで8章・9章のもとネタになっています。
- 260 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 16:28:25 ]
- >再帰のたびに別な関数になっていることをちゃんと
無名関数で新しい関数が作れることをマクロ内でやれるようになると、プログラムの記述量を物凄く減らすことができる。 SchemeなどのLisp系言語の特徴はプログラムの記述量が少ないこと。これを支えているのが8章・9章の考え方。 ここを理解できると「Lisp脳」の人たちの考え方に近づくことが出来ます。
- 261 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 16:45:03 ]
- Tenth Commandment・・・Lisp脳で問題を考え直せ
↓ ・コレクターを使ってみる ・Yコンビネータを使ってみる ・マクロを使ってみる。 そういえばSchemerシリーズにはマクロの説明が無いね。Reasoned Schemerでは使ってるけど。
- 262 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 16:45:52 ]
- 再帰というか自己参照ね。
それが無限の入れ子になったのが再帰。
- 263 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 17:00:17 ]
- >それが無限の入れ子になったのが再帰。
有限じゃないと処理が終了しない常考。
- 264 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 17:28:36 ]
- 弱参照も張らずにメモ化とな
- 265 名前:257 mailto:sage [2008/09/05(金) 17:53:48 ]
- chapter8,9を理解できるのがいまのところの目標であることはわかりますた。
sicp読んでみたけど1.11の反復版の答え見て「なんだこれは」と実力不足は実感しましたし。 Yコンビネータのところは www.ece.uc.edu/~franco/C511/html/Scheme/ycomb.htmlとか dangermouse.brynmawr.edu/cs245/ycomb_jim.htmlみながら読み返してます。 collectorについては 8章のmultirember&coは書き出したりしながら雰囲気は掴めたんだけど、最後のeven-only*&coの 一番ネストが浅いcondのelseのコレクターをどうするの?って言うところ(P.146の上から4段目)で ボブロスばりに答えの(lambda (al ap as)...)ってのが出てくるのが、面喰らいました。 でこれはpractical-scheme.net/docs/cont-j.htmlの末尾再帰と継続って項で説明されてるような考え方を使って ようやく「なるほど」って思える程度の理解に辿りついた次第であります。 マクロはTeach yourself scheme in fixnum days、Programming Language Schemeのマクロの項 あとOn Lispとpractice schemeのpractical-scheme.netのScheme:OnLispの項を参考にしてます。 elispを一年ぐらい触ってて()に抵抗が無いぐらいは馴染んでるつもりですが、それでもここまで詰まるとは… やっぱり生のLispってものは怒ろしいものですね。 あとmultirember&coの"&"の読み方がわかったのも収穫です、ありがとう皆
- 266 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 17:59:08 ]
- 弱参照(weak reference)の話を始めたらソフト参照もしなきゃならない。
ここではコレクターやYコンビネータの話をしてるのに。 メモ化(memoization)ですら話が遠くなるからあとにしてくれ。
- 267 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 18:00:05 ]
- そんな我が儘言われても・・・
- 268 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 18:22:31 ]
- multirember&co では lambda + collector は2つ使う。
multiinsertLR&co では lambda + collector は3つ使う。コレクターを1つ余計に使うだけ。 evens-only*&coでは lambda + collector は3つ使う。これは multiinsertLR&co と同じ。 multirember&co では a-friend の引数は2つ。 evens-only*&coでは the-last-friend の引数は3つ。コレクターの引数を1つ余計に使うだけ。 >一番ネストが浅いcondのelseのコレクターをどうするの?って言うところ(P.146の上から4段目)で >ボブロスばりに答えの(lambda (al ap as)...)ってのが出てくるのが、面喰らいました。 そこで詰まるのはプログラミングの概念が原因じゃなくてP.145の3段目が頭に入ってなかっただけでしょ。 分かってるみたいだし気にしないで大丈夫。
- 269 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 18:30:38 ]
- >>267
オマエ、弱参照が話したいだけだろ。ぼくちゃん知ってるよーみたく。ガキだねw
- 270 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 18:34:21 ]
- ここはおまえが演説する場所ではない
- 271 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 18:40:39 ]
- >>270
オマエが弱参照を教えてやれば? 他の香具師は優しく>>257に教えてるぞ。 なんでけんか腰になるかね?
- 272 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 18:48:39 ]
- >>269 みたいなこと言ってるガキには喧嘩腰が適切
- 273 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 18:50:56 ]
- >>266
「あとにしてくれ」とか書いてる時点で「おまえの演説」だろ。 ここは私物ではない。
- 274 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 18:56:22 ]
- 負け犬が暴れているようにしか見えないんだがw
- 275 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 19:05:47 ]
- 雑音気にしないで演説続けろ
- 276 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 19:26:53 ]
- メモリリークの話はHaskellスレでもやってたね。メモ化じゃなくて遅延評価だけど。
- 277 名前:デフォルトの名無しさん [2008/09/05(金) 19:40:48 ]
- LLFuture 動画リスト
www.nicovideo.jp/mylist/8224180
- 278 名前:デフォルトの名無しさん mailto:sage [2008/09/05(金) 21:44:50 ]
- evens-only* (P.144)
codepad.org/Ys9BY5CQ ((9 1 2 8) 3 10 ((9 9) 7 6) 2) ↓ ((2 8) 10 (() 6) 2) evens-only*&co (P.145-146) codepad.org/9gVuGqhM ((9 1 2 8) 3 10 ((9 9) 7 6) 2) ↓ (38 1920 (2 8) 10 (() 6) 2) リストの中にリストがある場合の処理がちょっと面倒でした。
|

|