Lisp Scheme Part21 ..
[2ch|▼Menu]
46:デフォルトの名無しさん
08/04/07 22:36:06
>>40
そういうネタの露出度が高いだけでは?

47:デフォルトの名無しさん
08/04/07 22:44:19
すまんが教えてくれ
read関数って空白類記号(スペース、タブ、改行)は読み飛ばすのか?


48:デフォルトの名無しさん
08/04/07 22:47:09
うんそうだよ

49:デフォルトの名無しさん
08/04/07 23:50:45
>>48
アリガト

50:デフォルトの名無しさん
08/04/08 00:43:10
>>40
Pythonマシンとかつくってから出直してこい


51:デフォルトの名無しさん
08/04/08 00:51:40
まあせめてPmacsぐらい作ってほしいね。

52:デフォルトの名無しさん
08/04/08 07:40:06
>>51
Prologで書かれたpmacsなら昔使ってたなあ。
入社したら新人教育がLisp班とProlog班に分かれて、俺はProlog班だった。


53:デフォルトの名無しさん
08/04/08 09:37:55
そんな夢のような会社があるわけねえだろ!

54:デフォルトの名無しさん
08/04/08 10:03:54
>>53
AIバブル全盛期にはあったんだよね。
俺がやったPrologはFM-8上のCP/Mで動くmicro-PLOLOGという丸括弧で括るPrologだった。
pmacsを使ったのはそれとは別のワークステーションで、小型冷蔵庫ぐらいの筐体だったよ。

55:デフォルトの名無しさん
08/04/08 11:28:48
URLリンク(d.hatena.ne.jp)
swigよりも高度なことができるcffiのwrapper toolを試してみました
しかし少し複雑なc++コードを与えるとエラーをおこして止まります

基のc++コードを自動でwrapが生成できようにいじるべきか
それとも自動はあきらめて手書きした方がいいのでしょうか?

pythonなら自動でwrapを作成できるみたいなので
pythonを経由してlispから呼ぶという2度手間という手もできるのでしょうか?


56:デフォルトの名無しさん
08/04/08 12:27:56
ツールをいじるのは手書きを極めてから

57:デフォルトの名無しさん
08/04/08 13:01:22
>>52-54
ワロタw
今でもそんな会社があるなら入社してみたい

58:デフォルトの名無しさん
08/04/08 13:18:24
>>54
Micro-PROLOGですぜ、旦那。
"Programming in Logic"読んだ口ですか?

Lisp班の環境は? muLispとか?

59:デフォルトの名無しさん
08/04/08 16:57:05
>>53
昭和時代ならあり得る話

60:デフォルトの名無しさん
08/04/08 19:08:22
2001年宇宙の旅に出てくるHALってLispで書かれてるんでしょ?

61:デフォルトの名無しさん
08/04/08 19:25:21
そんな設定あったっけ?

62:デフォルトの名無しさん
08/04/08 19:33:22
ありません

63:デフォルトの名無しさん
08/04/08 19:49:41
>>58
> "Programming in Logic"読んだ口ですか?
はっきり覚えていないけど教材は手作りだったような。

> Lisp班の環境は? muLispとか?
名前は忘れたけど日立のプラズマ(赤色1色)Laptop(DOS 16bit)で動いている
マルチウインドウのLispだった。Common Lispだったかどうかは分からない。

あとこの会社にはXerox J-Starもあったよ。俺が入って1〜2年で廃棄されたが。

64:デフォルトの名無しさん
08/04/08 19:56:27
>>63
muLISP/86 on MS-DOSの可能性大

65:デフォルトの名無しさん
08/04/08 19:57:08
そりゃファクスくらいあるだろw

66:デフォルトの名無しさん
08/04/08 22:53:36
雨の日も風の日も
息をするようにlambdaを書く。
そんな人にわたしはなりたい。


67:デフォルトの名無しさん
08/04/08 23:09:16
自分自身の定義を書き換える関数って書ける?
学習して賢くなる関数。

68:デフォルトの名無しさん
08/04/08 23:12:54
>>67
可能。

69:デフォルトの名無しさん
08/04/08 23:18:57
メモ化された関数は定義は変わらないけど一度計算した結果を覚えて高速化する。

70:デフォルトの名無しさん
08/04/08 23:29:22
関数で新たな関数を作ってevalとか?

71:デフォルトの名無しさん
08/04/08 23:31:24
「賢い」の定義はどんなものなの?

72:デフォルトの名無しさん
08/04/08 23:55:57
「かしこいランプ」(商品名)って
走行中 かつ 周辺が暗い ならば 点灯、という論理で動作してるな

73:デフォルトの名無しさん
08/04/09 00:14:07
>>67
できる。つーか、そんなのアセンブラでもできるだろ。w

74:デフォルトの名無しさん
08/04/09 00:16:14
まぁ自己書き換えコードはあまりお勧めしないがな

75:デフォルトの名無しさん
08/04/09 00:48:58
関数は普通に賢いので、データを賢くすることを考えてはどうか

76:デフォルトの名無しさん
08/04/09 10:30:54
>>67
Yコンビネータを使ったメモ化
URLリンク(citeseer.ist.psu.edu)

77:デフォルトの名無しさん
08/04/09 12:40:09
>>67
書き換えるのは簡単だが、賢くするのは難しい。w

78:デフォルトの名無しさん
08/04/09 14:32:38
Yは相互再帰を学習できますか?

79:67
08/04/09 18:04:46
昨夜は書きこんだ後に寝てしまったです。スマンです。

Schemeでdefineを使って定義した内容をリストとして取り出し、
書き換えて自分自身を再定義するってことを考えてました。

自らアルゴリズムを改良していくとかできたらおもしろいなぁって。

夢物語だけれども人造人間キカイダーのように思考し、反省し、学習するプログラム
があったらおもしろいだろうね。

80:デフォルトの名無しさん
08/04/09 18:14:27
AIか?

81:デフォルトの名無しさん
08/04/09 18:53:44
昔ネットに人工無能ってのがあったなあ。

82:デフォルトの名無しさん
08/04/09 19:43:42
>>81
今でもあるよ

83:デフォルトの名無しさん
08/04/09 19:48:48
あるんだワラ

84:デフォルトの名無しさん
08/04/09 19:50:58
>>82
うずらか〜!



85:デフォルトの名無しさん
08/04/09 20:08:52
実は俺・・・

86:デフォルトの名無しさん
08/04/09 21:03:31
cffi使ってたのだけど
大きいプログラムを呼ぼうとする
glibc detected *** sbcl: malloc corruption
で止まる。何か対策ないのでしょうか?


87:デフォルトの名無しさん
08/04/09 21:05:43
大きいとはどのくらいか、
プログラムの大きさかデータの大きさか、
具体的にどのくらいより大きいと駄目なのか、
その辺をいろいろ実験してみると有意義であろう。

88:デフォルトの名無しさん
08/04/09 21:12:24
これをcffiで呼ぼうとしたら同じバグになる

#include <stdio.h> //ここが問題
int test(int i){
return 0;
}

89:88
08/04/09 21:25:19
allegro CLならこんなこと起きないのでしょうか?

90:デフォルトの名無しさん
08/04/09 21:28:53
>>89
それを聞く前に、普通は起きた処理系が何かを書くもんじゃないかい?

91:88
08/04/09 21:30:21
sbclです

92:デフォルトの名無しさん
08/04/09 21:36:53
>>88だけで駄目ってのはさすがに無かったと思うけどなあ。
#includeを抜くと大丈夫なんだよね?
OSは何?

93:デフォルトの名無しさん
08/04/09 21:49:26
>>79
defineで定義した関数をリストとして取り出すことはschemeでは(少なくとも規格内の方法では)出来ない。


94:88
08/04/09 23:36:13
OSはubuntu7.10です


95:デフォルトの名無しさん
08/04/10 00:30:35
>>60-62

【HAL-9000 series】

映画版では1992年1月12日、クラークによる小説版では1997年同日に、イリノイ大学アーバナ・シャンペーン校にて誕生した。
開発者はシバサブラマニアン・チャンドラセガランピライ、通称チャンドラ博士。

HALはIBMを1文字ずつ前にずらして命名された。
小説『2010年宇宙の旅』では、チャンドラー博士自らIBM説を否定した。
が、アーサー・C・クラークは後年になってからIBM社がこの説を迷惑がっているどころか半ば自慢しているらしいと聞き及び、
著書「3001年終局への旅」のあとがきで「今後はこの説の間違いを正す試みを放棄する」と記した。

スペースシャトルの機上コンピュータには、高い信頼性を確保するためにシャトル専用のプログラミング言語が用いられており、これを「HAL/S」という。
「HAL/S」を構築したIntermetrics社の創業者は、大学の同僚でこの言語のコンセプト構築に多大な貢献があった J. Halcombe Laning 博士に敬意を表し、
彼の通称 Hal に因んで HAL と命名した。

しかしこれがいかにもくどく不自然なことから、やはり「HAL/S」は「HAL 9000」に因んだものという憶測が浸透した。
ちなみにシャトルの三番機、OV-103の船名は「ディスカバリー号」となっており、『2001年宇宙の旅』との関連が噂された。
奇しくもスペースシャトル史上2度の大事故の後の初飛行はいずれもこの機体である。

96:デフォルトの名無しさん
08/04/10 00:41:51
IBM AP-101

The IBM AP-101 is an avionics computer, used most notably in the U.S. Space Shuttle, but also in the B-52 and F-15, among others.
When it was designed, it was a high-performance pipelined processor with core memory.
Today, its specifications are exceeded by many microprocessors.
The AP-101, being the top-of-the-line of the System/4 Pi range, shares its general architecture with the System/360 mainframes.
The shuttle software is written in HAL/S, a special-purpose high-level language, whereas AP-101s used by the US Air Force are mostly programmed in JOVIAL.

97:デフォルトの名無しさん
08/04/10 01:44:53
>67
遺伝的アルゴリズムを調べろ。
アクセス規制だから詳細は書けない。

98:デフォルトの名無しさん
08/04/10 01:50:06
遺伝的プログラミングだ。KOZAが最初にLISPを使って示した方法だ。

アクセス規制で携帯だから、他で調べろ

99:デフォルトの名無しさん
08/04/10 02:09:52
Wikipedia項目リンク
確かにLISP向きな感じがするね

100:デフォルトの名無しさん
08/04/10 02:40:03
>>78
Y そのままだとやりにくいんじゃないかな。
二関数での相互再帰なら
(Y2 f g) = (f (Y2 f g) (Y2 g f))
みたいに拡張するとか。

101:デフォルトの名無しさん
08/04/10 03:31:54
よし、この調子でまたAIバブルを発生させようぜ!
ぶくぶく

102:デフォルトの名無しさん
08/04/10 07:08:50
次はセマンティックバブルだ!
LispハッカーはXMLという妥協を受けいれ、
メインストリームに帰り咲くのだ

103:デフォルトの名無しさん
08/04/10 09:34:46
セマンティックバブルって
SOAPバブルと同じ運命って気がするんだけど

104:デフォルトの名無しさん
08/04/10 13:34:13
とりあえずソープで泡踊りしてきまつ

105:78
08/04/10 18:51:55
>>100
おもしろそうなので書いてみます。Arcで

106:デフォルトの名無しさん
08/04/10 21:35:57
iPod touchでGauche動かせた人いる?
ノシ

107:デフォルトの名無しさん
08/04/10 21:42:06
普通のUnixなので普通に動きますね。NDAがあるので詳しいことは書けませんが。w

108:デフォルトの名無しさん
08/04/10 21:51:32
>>107
Open Programming環境では動かなかったってこと?純正SDKでしか試してないならNDAあるから書けないかw

109:デフォルトの名無しさん
08/04/10 21:57:20
すまん、純正しかやってない。

110:デフォルトの名無しさん
08/04/10 23:22:07
>>109
d。参考になりました。
Zaurusポートもそうだけど、Open Programming環境では問題点が出ることが多いのに、純正では大丈夫だったのはちょっと驚き。

111:デフォルトの名無しさん
08/04/11 00:15:52
How to Design Programs
URLリンク(www.htdp.org)

たまげた。折角本を購入したのに、こっちのが充実してる。 orz

112:デフォルトの名無しさん
08/04/11 01:39:50
>>111
分厚いな 読む暇も気力もない

113:デフォルトの名無しさん
08/04/11 05:48:47
>65が放置されてるのはお約束?

114:デフォルトの名無しさん
08/04/11 23:05:11
Seasoned Schemer 18章、オレも解決!
URLリンク(codepad.org)

18章の出だしでリストが返ってくるような書き方が良くないと思う。
この二つを比べてみるとconsとkonsの違いがわかる。

(kdisplay (lots 5))
(display (lots 5))



115:デフォルトの名無しさん
08/04/11 23:33:05
もう少しきれいに書けYO!

(define kdisplay
(lambda (c)
(c (lambda (a d)
(cond
((null? a)(display ""))
(else (display "(")
(display a)
(k2display d)
(display ")")
(newline)))))))

(define k2display
(lambda (e)
(cond
((null? e)(display ""))
(else
(e (lambda (a2 d2)
(display " ")
(display a2)
(k2display d2)))))))

116:デフォルトの名無しさん
08/04/12 02:41:52
blogに投稿する処理を半自動化したいのですが
参考になるコードまたはパッケージなどないでしょうか?



117:デフォルトの名無しさん
08/04/12 05:42:17
XPなんですがDr.Schemeを放置しておくと勝手にメモリがんがん食ってフリーズします。

118:デフォルトの名無しさん
08/04/12 09:38:50
>>116
Common LispやSchemeのコードは知らないけど、
Emacs LispでAtomに対応してるのが二、三あったはず。
参考にするだけなら、PerlやPythonやRubyとかのが、
いくらでもありそうだけど。

ぶっちゃけ、処理自体は全然難しくないんで、
Atomとかのリファレンス見ながら自分で実装しても、
あまり苦労はしないと思う。自分でやろうとしたときは、
UI書くのが一番だるそうだと思った。

119:デフォルトの名無しさん
08/04/12 13:27:05
継続について

あっわかった!!
ん? こういう場合は。。。

これの繰り返し 

120:デフォルトの名無しさん
08/04/12 16:41:02
プログラミングGaucheの306ページのモジュールシステムですが
本のとおりに打ち込んで実行しても (addx 10) が110にならずに
11になってしまいます。本に誤記はありますか?

121:120
08/04/12 16:47:07
再度、Emacs立ち上げたらできました。
失礼しました。

122:デフォルトの名無しさん
08/04/12 20:14:44
>>116
xml-rpcがつかえるブログなら、gaucheのxml-rpcライブラリがある。サードパーティーだけど。

ぐぐればすぐ見つかる。

123:デフォルトの名無しさん
08/04/12 23:35:41
URLリンク(codepad.org)

SRFI-40のストリームが使えた。

124:デフォルトの名無しさん
08/04/12 23:47:53
URLリンク(d.hatena.ne.jp)

PLT Scheme用のモナドがあるらしい。使った人?
ノシ

125:デフォルトの名無しさん
08/04/13 00:39:49
なんだかわかんねーけど、Schemeってすごいんだな。

126:デフォルトの名無しさん
08/04/13 00:44:51
Ruby使いがSchemeを勉強して何か得るところはありますか?

127:デフォルトの名無しさん
08/04/13 00:51:22
Ruby厨の汚名を晴らせる

128:デフォルトの名無しさん
08/04/13 01:58:43
晴らせた時には既にただのLisperだけどな

129:デフォルトの名無しさん
08/04/13 02:00:25
λ..........

130:デフォルトの名無しさん
08/04/13 02:17:41
そりゃあ Brainfuck でも得るところはあるでしょう
失うものも多いかもしれないけど

131:デフォルトの名無しさん
08/04/13 02:23:00
何かSchemeの人は怖いと聞いていましたが、本当のようですね。
Rubyはクロージャも継続もスレッドも備えていますから、
Schemeはなんでも自作しないといけなくて大変そうに見えるのですが。

132:デフォルトの名無しさん
08/04/13 02:45:09
まさにRuby厨と呼ばれるにふさわしいな。

133:デフォルトの名無しさん
08/04/13 02:47:05
思い込みの激しい人というよりは、目の前で色々思い込んでみせて
引き留めて欲しい人、という感じだな。気持ち悪い。

134:デフォルトの名無しさん
08/04/13 02:56:09
構って君に構っちゃいけませんよ

135:デフォルトの名無しさん
08/04/13 07:35:33
.............................λ
````````````y

136:デフォルトの名無しさん
08/04/13 11:35:59
ArcとOzにヒントを得て、Orzって言語を考えたんだ。
仕様はまだ無いけど。

137:デフォルトの名無しさん
08/04/13 11:41:45
2ch発のマルチパラダイムLisp系言語orz
な?

138:デフォルトの名無しさん
08/04/13 11:55:35
SICPとHtDPはどっちが読みやすい?

139:デフォルトの名無しさん
08/04/13 12:20:12
どっちも読まなくていい
読まなくていいけど、ちょっとつまみ食いしてみようかな
というふいんきがベスト

140:デフォルトの名無しさん
08/04/13 12:25:27
````````````y <やあ、ラムダさん

.............................λ <やあ、Yコンビネータさん

141:デフォルトの名無しさん
08/04/13 13:21:36
>>138
比べるものが違うと思う。
[ {Simply Scheme or HtDP}読了後 ⇒ SICP ] or [Little Schemer ⇒ Seasoned Schemer]
でも最近は
[Little Schemer ⇒ Seasoned Schemer ⇒ SICP]
という読み方が多いかも。

142:デフォルトの名無しさん
08/04/13 13:23:29
λY

143:デフォルトの名無しさん
08/04/13 13:25:40
.............................λ ````````````y

144:デフォルトの名無しさん
08/04/13 13:27:00
.............................λ y ````````````おっとっと

145:デフォルトの名無しさん
08/04/13 13:48:06
「SICP完全制覇」とか出ないかな。

146:デフォルトの名無しさん
08/04/13 15:21:56
>>145
あるじゃん。Instructors Manualって解説用の本。

147:デフォルトの名無しさん
08/04/13 15:26:05
それ読んだらよくわかったの?

148:デフォルトの名無しさん
08/04/13 15:34:35
>>147
yes

149:デフォルトの名無しさん
08/04/13 15:52:36
>>148
アメリカの教科書って難しい内容だと生徒がデスマになるからか、HPがあったり副読本がついてたりするな。至れり尽くせり。
Gauche本のDesktop ReferenceとかInstructor's Manualも出て欲しいw

150:デフォルトの名無しさん
08/04/13 16:12:16
Structure and Interpretation of Classical Mechanics

SICMっていう古典力学のプログラミング本も出てるラスィ

151:デフォルトの名無しさん
08/04/13 16:17:25
これでしょ
URLリンク(www.amazon.co.jp)
さらに難しそうなんです><

152:デフォルトの名無しさん
08/04/13 16:19:58
ブックレヴュー見ていて思い出したんだけど、
Littleの9章で出てきた"partial function"のpartialって偏微分の偏だよね。
どこかで「引数を全て使わない関数のことだ」と書いてあったけど、
全て使っててもpartialだと言ってるし意味が通じない。

153:デフォルトの名無しさん
08/04/13 16:35:45
>>151
URLリンク(mitpress.mit.edu)

今売ってるのはコッチ。目に痛い赤の表紙w

154:デフォルトの名無しさん
08/04/13 16:37:23
同じ本ではないでしょうか><

155:デフォルトの名無しさん
08/04/13 16:40:06
>>152
完全な関数になっていないという意味でpartial(部分的な)と呼んでいる。
引数を使うかどうかは呼称に重要ではない。関数が計算を終了するかどうかでpartialと区別する。

156:デフォルトの名無しさん
08/04/13 16:41:41
>>155
ええ。それはわかりました。
永遠にリスト内を探し続けるが、見つけるべき文字列が見つからないとか、、
そんな例がありましたね。

157:デフォルトの名無しさん
08/04/13 16:42:57
>>154
>>151は526ページだけど、>>153は534ページある。中身は少し違う。

158:デフォルトの名無しさん
08/04/13 16:44:06
ISBNが同じなんです><

159:デフォルトの名無しさん
08/04/13 16:44:08
>>152
解説もあったよ
URLリンク(en.wikipedia.org)

Little Schemerは謎解き本だと思うので
いま九章読んでる人は読まないほうがいいかも

160:デフォルトの名無しさん
08/04/13 16:46:43
>>158
古いと灰色や金色の表紙のものがある。amazon.co.jpは古い表紙のpicを使いまわしてると思われ

161:デフォルトの名無しさん
08/04/13 16:48:15
>>160
実際は赤なんだけど灰色の画像使ってるだけかと思ってました。

162:デフォルトの名無しさん
08/04/13 16:51:26
ISBNが古いのと同じなのかぁ。出版社のHPで確認するのって大事だな。
amazon.co.jp見ただけじゃそんなことわからないYO!

163:デフォルトの名無しさん
08/04/13 16:56:34
SICMオンライン
URLリンク(mitpress.mit.edu)

164:デフォルトの名無しさん
08/04/13 16:57:04
>>159
そのページの対応する言語を見ると日本語がないw

165:デフォルトの名無しさん
08/04/13 17:00:19
SICM 持ってる。けど、自分はラグランジュアンがよくわかってないので
宝の持ち腐れだ。先に数学、勉強するよ。

166:デフォルトの名無しさん
08/04/13 17:00:30
和田訳のSICPがあれだけグダグダなのを考えるとSICMを翻訳できるとは思えんなw

167:デフォルトの名無しさん
08/04/13 17:07:18
>>164
これじゃ違うかな。
Wikipedia項目リンク

168:デフォルトの名無しさん
08/04/13 17:10:16
>>167
d。部分写像(partial mapping)がpartial functionに近い。

169:デフォルトの名無しさん
08/04/13 17:23:20
いいなあ、学生は暇があって

170:デフォルトの名無しさん
08/04/13 17:25:01
SICMのユーティリティープログラムのページ (Linux用)

URLリンク(www-swiss.ai.mit.edu)

171:デフォルトの名無しさん
08/04/13 17:26:16
学生じゃないし暇じゃないけど、ゴロゴロしてる。

172:デフォルトの名無しさん
08/04/13 17:27:32
>169

先週から仕事中の現実逃避に>163読み始めたよ
出来れば日本語訳が( ゚Д゚)ホスィ・・・

173:デフォルトの名無しさん
08/04/13 17:38:30
さーてそろそろLittle Schemer読んじゃわないと````````````y

174:デフォルトの名無しさん
08/04/13 17:42:20
8章くらいから難しくなって涙目

175:デフォルトの名無しさん
08/04/13 17:44:33
もれも8章涙目だったけど、何度も読み返して何とか理解した。
まだちょっともやもや残ってるけど、、、、

今9章だお。

176:デフォルトの名無しさん
08/04/13 17:45:57
>>138
HtDPより同じ著者のEOPLの方がいい。
Little Schemerシリーズもいいけど、SICPとEOPLは体系的な知識が得られる。

177:デフォルトの名無しさん
08/04/13 17:46:34
Simply Schemeは?

178:デフォルトの名無しさん
08/04/13 17:48:01
EOPLってナーヌ?

179:デフォルトの名無しさん
08/04/13 17:48:55
しばらく英語に触れてなかったので、Littleで一杯一杯なんだ。
Simply→SICPという意図で書かれているらしいけど、英語読めるか心配。

>>178
おそらくEssential Of Programing Languageかと。

180:デフォルトの名無しさん
08/04/13 17:53:22
Simply SchemeはLittle Schemerに近い内容をもっとページ数をかけて説明してる。
表計算プログラムを作る演習などのfinger practiceが充実してるけど理論的には浅い。
Haskellで言えばCraftみたいな内容。
HtDPも理論的なレベルは同程度。こっちはプログラミング作法にページを費やしている。

181:デフォルトの名無しさん
08/04/13 17:54:16
>>179d

182:デフォルトの名無しさん
08/04/13 17:57:20
>>180
ありがとう。
退屈させないように色々やってみて、プログラミングに馴染んで来たら、
さてそこから深くするには何が困難か?と考えさせて
SICPにつなげる感じなんですかね。

183:デフォルトの名無しさん
08/04/13 18:04:13
>>182
そんな感じ。Littleの8章で困るのも演習でなれることが出来ないからじゃないかい?
SICPに取り組むには、他の言語経験があればLittleぐらい難しくても短期間に十分なレベルに達するけど、
全くの初心者には大量のfinger practiceで経験を積ませないと理論の良さが実感できないから壁を感じるんだと思う。

184:デフォルトの名無しさん
08/04/13 18:05:35
>>183
まさにそんな感じです。Simplyいっといたほうが良かったかな・・・・
プログラミングGaucheで代わりになります?

185:デフォルトの名無しさん
08/04/13 18:21:41
>>184
Gauche本もってるかな?リファレンス的でfinger practiceはあまりないよ。
SimplyはSICPの前に必要な知識をうまく選んで入れてると思う。
でも Little Schemer ⇒ Seasoned Schemer と読んで、ネット上の他人のプログラムを読むのも面白い。
楽しんで継続できるのが一番いい方法だと思う。

186:デフォルトの名無しさん
08/04/13 18:25:27
これ行った人、報告よろ

Continuation Fest 2008
URLリンク(logic.cs.tsukuba.ac.jp)


187:デフォルトの名無しさん
08/04/13 18:29:36
>>185
持ってないです。ネットの立ち読み版は眺めましたけど。
折角Little読み終わりそうだから続けてSeasoned読んじゃおう。
どうもありがとう。

188:デフォルトの名無しさん
08/04/13 18:44:45
>>186
おれも内容知りたいなぁ>>継続フェスタ。

189:デフォルトの名無しさん
08/04/13 19:02:27
>>187
Seasonedをしっかり理解するとSICPの山場といえる3・4章が簡単になるからガンガレ。
特に継続(callcc)がSICP3.5ストリームで利用されるのは面白い。
これがわかるとSICMの入門準備も完了。runge-kutta4(つまり微分方程式)とか出来るとシミュレーションの幅がちょっと広がるし。
ストリームで無限リストが作れるのも目からうろこの体験だった。
これ位はできないとHaskellerに馬鹿にされるしw

190:デフォルトの名無しさん
08/04/13 19:03:30
xyzzyの独自機能をcommon lispで読み代えるmacroみたいなのないでしょうか?

191:デフォルトの名無しさん
08/04/13 19:12:15
Little Schemerな連中は、はてなとかで、グループ作って
活動すれば良いんじゃないかと思った。

192:デフォルトの名無しさん
08/04/13 19:22:24
まああれだ
コンパイラといえばyacc
OSといえばブートローダー
SchemeといえばLittle Schemer

193:デフォルトの名無しさん
08/04/13 19:33:26
Little Schemer 何度でも読んでいいですか?

194:デフォルトの名無しさん
08/04/13 19:37:18
いいですよ

195:デフォルトの名無しさん
08/04/13 19:43:04
何度も読むと理解がさらに深まりますか?

196:デフォルトの名無しさん
08/04/13 19:44:33
少なくとも浅くなることは無いから安心して読め

197:デフォルトの名無しさん
08/04/13 19:50:30
じゃあ毎日音読する。

198:デフォルトの名無しさん
08/04/13 20:04:50
>>190
どういうものをイメージしてるのかよく分からないよ……

199:デフォルトの名無しさん
08/04/13 20:33:16
何と言ってもSICPだ。俺はあれを読んで人生が変わった気分だよ。

プログラマは皆SICP必須だな。あれを読めば、場当たり的なコーディングから
完全に開放されるよ。

200:デフォルトの名無しさん
08/04/13 20:34:24
読むなら、やっぱり英語版?

201:デフォルトの名無しさん
08/04/13 20:49:26
>>200
俺は英語版を読んだ。最初翻訳本買おうかと思ってAmazon見たらあのコメントの
群れを見て引いちゃったよw。「超循環評価機」とかのタイトル見ても???だったしね。

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

ちなみに俺はあまりの感動にハードカバーの洋書を買ってしまった。9000円ぐらい
したかな。ただ、持ち運びにはペーパーバックのほうがいいし、値段も半額以下なので
これについては激しく後悔しているw

202:デフォルトの名無しさん
08/04/13 21:06:57
昔のマグロウヒル日本語版から比べたら、現行日本語版なんて天国みたいなもんだよ。

203:デフォルトの名無しさん
08/04/13 21:10:17
別に悪い訳じゃないと思うけどなぁ。
超循環評価機をメタサーキュラ〜とかカタカナで書かれたら死ぬ。

204:デフォルトの名無しさん
08/04/13 21:12:16
Amazonの書評は異常だね。攻撃的な人って居るんだなと感心する。

205:デフォルトの名無しさん
08/04/13 21:21:20
ニヤニヤ

206:デフォルトの名無しさん
08/04/13 22:46:13
>204
あれは読んでない奴の戯言だ
Amazonのあの手の書き込みは鵜呑みにしない事にしている

207:デフォルトの名無しさん
08/04/13 23:14:33
単語まで全て逐語訳にしないで
->計算機(computer)
みたいな感じで元の英単語も書けば良かったんだよな。

208:デフォルトの名無しさん
08/04/13 23:17:09
字幕の最初の方が出来上がったてるみたいだ。

209:デフォルトの名無しさん
08/04/13 23:28:31
>>207
英語版はLaTeXだけど、日本語版は組版でやってるからちょっとした修正が出来ない。
もとの単語を書くと文字数が増えるからページ数を抑えるためにポイント数を抑えざるを得ない。
でもそれは技術的に難しい。かといってページ数を増やすと\5,000以上になってしまう。
つまりピアソンがコストダウンできる技術力を持っていないことにもそういう工夫を出来ない原因がある。
かといってムリをすればマグロウヒルみたいに倒産して書物が入手できなくなってしまう。
良い本なら買い支えるというのも消費者の選択なんジャマイカ?

210:デフォルトの名無しさん
08/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。

211:デフォルトの名無しさん
08/04/14 01:22:42
それじゃ数学関数の定義で駄目。152はそこは判ってるようだ。これを関数型での関数の引数でイパーン的に説明汁

212:デフォルトの名無しさん
08/04/14 01:25:17
>>152
>>155が説明して>>156で納得して終了済。

213:デフォルトの名無しさん
08/04/14 01:44:48
>>210の方が合ってるぞ。
URLリンク(foldoc.org)

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

これは間違い。例えばSMLのような例外のある計算系では、
関数の値が未定義の場合も停止する。Liftされているから。
表示的意味論の本を読めばちゃんと書いてあるよ。

214:デフォルトの名無しさん
08/04/14 01:56:14
Dを意味関数だとしたら、
∃x (x≠⊥ & D[f(x)] = ⊥) なら、fはpartial functionってことだよな。

215:デフォルトの名無しさん
08/04/14 02:03:05
>>214を見た漏れの脳にはテトリスが浮かんだ
とりあえず泣いてくる

216:デフォルトの名無しさん
08/04/14 02:03:58
>>215
ああ俺もギャル文字を思い出した。一緒に泣こうぜ。

217:152
08/04/14 02:08:46
>>210
なんかいろんな意見が飛んでますが、、ありがとう。

>>215-216
漏れもれも。

218:デフォルトの名無しさん
08/04/14 05:09:54
戸田山和久の「論理学を作る」はよかったな
大学に対しては良書を教えてくれた事に関しては感謝してる

219:デフォルトの名無しさん
08/04/14 06:46:38
そういう感じで「計算論 計算可能性とラムダ計算 著高橋 正子」とかが
self-containedで読めるようになる本教えてください。

220:デフォルトの名無しさん
08/04/14 12:54:26
他言語で書かれたプログラムのメタ制御したいのだけど
適切なbindingがない場合はxml-rpcが一番簡単なのかな?

221:デフォルトの名無しさん
08/04/14 13:30:46
いいえ

222:デフォルトの名無しさん
08/04/14 17:56:28
計算理論の基礎 シプサ
てのが気になってる。
アマゾンによると翻訳がすこぶる良いという。

223:デフォルトの名無しさん
08/04/14 19:17:52
>>218-222
スレチ。移動ヨロ。
スレリンク(tech板)

224:デフォルトの名無しさん
08/04/14 21:58:52
こっちじゃない?
スレリンク(informatics板)

225:デフォルトの名無しさん
08/04/14 22:23:08
すまんがちょっと教えてくれ。

Chiken Schemeは簡単に実行形式ファイルが作れるんかの?

226:デフォルトの名無しさん
08/04/14 22:29:51
Reasoned SchemerのPrologもどきって、本当に動くんだなw
URLリンク(codepad.org)

KANREN : a declarative logic programming system
URLリンク(kanren.sourceforge.net)

227:デフォルトの名無しさん
08/04/14 22:48:17
>>225
お前のことなんぞ知らんからお前にとって簡単かどうかはお前が判断しろ。
マニュアル通りやってみてできたならお前にも簡単にできるってことだ。
そうでなければ難しいんだろう。

228:デフォルトの名無しさん
08/04/14 22:52:39
KANRENって「関連」なのかな。
Oleg Kiselyovって日本と研究してるのか?
URLリンク(okmij.org)

229:デフォルトの名無しさん
08/04/14 23:26:02
Reasoned Schemer
1. Playthings
URLリンク(codepad.org)

230:デフォルトの名無しさん
08/04/15 01:58:12
HtDPの目次見たけど継続とかlet、letrecは出てこないんだね。Schemerシリーズのほうが
難しそうだ。

231:デフォルトの名無しさん
08/04/15 03:03:41
>>227
ふむ、chicken schemeっての初めて見てみたけど簡単に実行ファイルが作れるんだな。

232:デフォルトの名無しさん
08/04/15 06:20:53
>>207
そうそう、和田先生が翻訳メモとして技術用語の翻訳対照表をつけてくれれば、
読みやすかったのに。

233:デフォルトの名無しさん
08/04/15 11:15:30
schemeをC++プロジェクトに組み込みたいのですが、
組み込みやC++クラスのエクスポートが簡単にできる
ポータブルな処理系ってありますか?

234:デフォルトの名無しさん
08/04/15 12:10:18
libgaucheとCで書いてextern "C"ってすればいいんじゃね
俺もほとんど知らない。教えてほしい

235:デフォルトの名無しさん
08/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を移植しただけじゃ動かないのが×。
さらにコンパイルしなくても速いのにコンパイルしても(そんなに)速くならないのはご愛嬌。

236:デフォルトの名無しさん
08/04/15 15:16:12
>>235
>複素数(これはGaucheにもない!)

あるっしょ

237:デフォルトの名無しさん
08/04/15 15:18:45
正確数表現の複素数(これはGaucheにもない!)

238:デフォルトの名無しさん
08/04/15 15:52:35
> (exact? (sqrt -1024))
#t

これはいいsqrt

239:デフォルトの名無しさん
08/04/15 16:03:30
R5RS-6.2.3
sqrtのような潜在的に不正確な演算は、正確引数に適用されたとき、
可能ならばいつでも正確な答えを算出することが望ましい(が要求はされていない)。
なので処理系依存。

240:225
08/04/15 20:40:37
>227
参考になった。ありがとう。

241:デフォルトの名無しさん
08/04/15 23:24:29
>>225
Linuxだと簡単にバイナリ作れた。
winだとコンパイルも通らなかった orz
mingwin32嫌いだ!


242:デフォルトの名無しさん
08/04/15 23:35:56
>241
あれ、出来なかったっけ?
ちょっと今MinGW環境壊しちゃったので手元で確認できないけど

243:デフォルトの名無しさん
08/04/15 23:40:20
>>242
できたらgccのバージョンとかライブラリのバージョンさらしてください。

しょぼーん。

#共通環境はsbclが一番良いんじゃないかと思うようになっちゃったのでscheme嫌いになりそう


244:デフォルトの名無しさん
08/04/16 00:14:09
>>243
Makefile.mingwを使うとchicken-config.hの作成に失敗する。
そこだけ手作業でやったらあとは普通にmakeが走ってる。
今ビルド中。っていうか本家に最新版のWindowsバイナリ置いて無いな。

245:デフォルトの名無しさん
08/04/16 00:30:12
みんな苦労してでもWindowsdで使いたいんだな。
Windowsは偉大だな。


246:デフォルトの名無しさん
08/04/16 00:43:18
自分が使いたいというより、より広く使われるものを作りたい、そういうものを作る
ために使いたい、という動機が大きいのでは?
趣味にしても、仕事にしても。

247:デフォルトの名無しさん
08/04/16 00:53:25
>>228
URLリンク(scheme2006.cs.uchicago.edu)

KANRENって「関連」みたいだけど中国語。
Chung-chieh Shan(單中杰)というハーバード出身でラトガース大学のAssistant Prof.の人とやった仕事。

248:244
08/04/16 00:55:30
よくみたらMakefile.mingw-msysってのがあったな。
こっちでやれば一発でいけたのかも。
まぁ、gcc3.4.5で普通にコンパイルはできたよ。

249:242
08/04/16 02:07:59
>248
漏れもgcc4.3.0 & Makefile.mingw-msysでやってみたけど問題なさそう

250:デフォルトの名無しさん
08/04/16 02:18:42
>>246
処理系はとりあえずUNIX系の上でつくられて、
そういう尊い方々がWinに移植なさるのですね。
感動しました。
漏れはWinでないと使う気にならないから使ってるだけだが、
いつかそうなりたいね。

251:デフォルトの名無しさん
08/04/16 02:23:10
とりあえずUNIX上に作られるのはそのほうが楽だからだな。
WindowsのAPIってなんか例外事項が多くてごちゃごちゃしてる感じ。

252:231
08/04/16 03:00:47
>>248
俺はgcc3.4.2+msysでうまくいったみたい

253:デフォルトの名無しさん
08/04/16 12:42:00
>簡単に実行形式ファイルが作れる
という観点では
エンドユーザが自分でMinGWを入れるという前提はおかしい

普通の人はVisual C++とMzSchemeを使えばいい

254:デフォルトの名無しさん
08/04/16 13:28:11
>>253
「エンドユーザ」はMinGWを入れる必要は無いだろ

255:デフォルトの名無しさん
08/04/16 13:47:15
じゃあ「簡単に実行ファイルを作りたいWindowsユーザ」に訂正

256:デフォルトの名無しさん
08/04/16 13:54:12
簡単だけど話題としてはスレ違いだね。

257:デフォルトの名無しさん
08/04/16 15:26:31
簡単だから得意げに説明するのが恥ずかしい気がするけど、注意点を

・ソースファイルと同じ名前のモジュールで包む
 たとえば hello.scm なら
(module hello mzscheme
 (display "Hello, world!")
 (newline))
・--exeオプション
 たとえば mzc --exe hello hello.scm
・bccに対応していると書いてあるが無償版のbccでは失敗するみたい

258:デフォルトの名無しさん
08/04/16 19:15:29
>>235
とりあえず、いろいろ試してみました。

guile)
・GPLライセンス
・試してないがVCでコンパイルできなさそう

Scheme48)
・VCでもコンパイル可能
・ただ、実行の際に〜.imageファイルが必要なのと、
 その作成にScheme48インストールディレクトリのフルパスが必要・・・
・(美学の問題だが)関数名がおかしいのと、コンパイル時に
 「○○関数は未定義です」「○○は初期化されていません」みたいな警告が普通に出てくる。

chiken)
・VCでもコンパイル可能のはず。自分には無理だった。
・(pcreを使っているので多分)正規表現がマルチバイトをサポートしていない。

Gauche)
・コアはVCでコンパイル可能だが、拡張ライブラリが全滅
・クラス登録機構がGNUのリンカの実装に依存している。VCだと拡張ライブラリを作ること自体が難しそう。
・基本的にposixべったり
・デフォルトで日本語が使える。ドキュメントも日本語

259:デフォルトの名無しさん
08/04/16 19:16:14
Gambit-C)
・VCでコンパイル可能
・自動生成されたソースが長すぎるため、IntelliSenseの更新に長大な時間がかかる。たまに開発環境自体が落ちる
・(サイズが)すごく大きいです・・・

総括)
こうやって並べてみると、日本語が使えるGaucheか、Gambit-Cが問題が少なさそうですね。
自分は多分、gaucheをstatic libraryで使うことにすると思います。
個人的にはluaのようにもっと手軽に組み込める処理系があると嬉しいのですが、文句ばっかり言ってもしょうがないですよね。
>>235さん、ライブラリの紹介どうもありがとうございました。

260:デフォルトの名無しさん
08/04/16 21:36:34
Windowsで動かしたいというのは判るが、VCでコンパイルしたいという理由がよくわらかん。
MinGWじゃ駄目なのかい。

261:デフォルトの名無しさん
08/04/16 21:42:41
IntelliSenseが使いたいのか
頭のとんがった上司がいるのか
その両方か

262:デフォルトの名無しさん
08/04/16 22:09:15
>>259
Gauche-win32-0.8.13.exeじゃだめなの?


263:デフォルトの名無しさん
08/04/16 22:16:20
exeがつくれないとプログラムをしている気にならないんじゃないかな?
Windowsしか知らなかったころはexeをつくれて一人前の開発環境というイメージだった。

264:デフォルトの名無しさん
08/04/16 22:21:32
>>263
自分で使うコードなら別にexeにする必要ないんだけど、ちょいと配布したりするのに実行環境必要とか言うと困るからじゃないの?

どんなプログラムだかしらないけど。


265:233
08/04/16 22:28:13
>>260
理由1、VCの便利な機能が使いたい
理由2、schemeという小さな言語がVCでコンパイルできない理由がわからない
仕様も小さいんだしVCでもコンパイルさせてくれよ・・・
というのが本音です。

>>261
> IntelliSenseが使いたいのか
どちらかというとこっちです。
でも後者の方が面白いので、できればこっちを強弁したいですねw

>>262
すみません、書いてませんでしたが自分は>>233です。
C++に組み込むので、別途インストールというのはちょっと考えられないのです。

266:デフォルトの名無しさん
08/04/16 22:33:41
>>260
MinGWはMSYSが要るのか要らないのかはっきりしてほしいw

267:デフォルトの名無しさん
08/04/16 22:39:02
POSIX べったりという表現が面白かった
確かに逆から見たらそう感じても不思議じゃないね

268:デフォルトの名無しさん
08/04/16 22:47:21
>>266
実行だけなら要らない。ランタイムのDLLさえも要らない場合が多い。
最近のVCはRuntime(もちろん自由に再配布できるが)を入れないといけないことが多い。
VCじゃなきゃ嫌んの人はMinGWをよく知らないだけではないかと思う。

269:デフォルトの名無しさん
08/04/16 22:51:25
Schemeは実はC及びC++(のスタックフレーム)とは相性が悪い。
ファーストクラスの継続があるため
関数からreturnする時に
単純にスタックフレームを開放できない。
また、末尾呼び出しの最適化は
C及びC++では行えない。
(だからSchemeの場合はバイトコードインタプリタの方が
効率が良かったりする。)
これらの理由により、ネイティヴコードをポータブルに吐く方法がない為
GCC用のソースは手を入れない限り他の処理系でコンパイルできない場合が多い。

270:デフォルトの名無しさん
08/04/16 22:58:01
>>265
> 理由2、schemeという小さな言語がVCでコンパイルできない理由がわからない
> 仕様も小さいんだしVCでもコンパイルさせてくれよ・・・
君がScheme処理系を書けば良いのでは?


271:デフォルトの名無しさん
08/04/16 23:43:31
ちなみにschemeは仕様がすっきりしているだけで、
実行環境はさほど小さくない。処理系もけっこう大きい。


272:デフォルトの名無しさん
08/04/17 00:18:53
書けねえよ

273:233
08/04/17 00:22:42
>>268
自分のプログラムでは外部ランタイムは無用です。
あと全く別の問題として、schemeのために開発環境を変えるということ自体がちょっと嫌なんです。

>>269
・ネイティブスタックを使わず、自前のスタックかメモリを確保すれば
 継続でもコルーチンでもポータブルに作れます(作れるはずです)
・バイトコードを採用すれば、処理系のコードは自然とポータブルになります
・ネイティブコードをポータブルに吐く方法なんて自分は一つも知りません

って、あまり面白くないツッコミですみません。
あと、schemeがポータブルに実装できないわけではですよ。
実際、明らかにwindowsのようなマイナーな環境(?)を無視した作りのgaucheでも、
コア部分はコンパイルできるわけですし。

>>270
今までは、あまり実用にならなそうなマイ言語を作っている人を、
内心バカにしたりもしていたのですが(すみません)
schemeでも他の言語でも、自作の処理系が一つあると意外なところで使えたりするのかもしれませんね。
scheme作るのも面白そうなので、時間があれば是非やってみたいです。

274:デフォルトの名無しさん
08/04/17 00:27:05
スキルないのが丸分かりの自己紹介ありがとう。

275:デフォルトの名無しさん
08/04/17 00:44:29
漏れも学生時代はMacではHyperCardを必要とするスタックは軟弱物。Pascal or Cで実行形式をつくるのがカコイイだと思っていたし、
Win32でもランタイムを必要とするVBを見下し、CをつかってもMSVCRTの依存すら排除しようとしていた経験のある俺には233の気持がわかる気がする。

276:デフォルトの名無しさん
08/04/17 01:44:38
ゲーム作るときはマシン語モニタをBASICで自作することから始める時代の話だな。
そんなMSXが許されるのは小学生までだよねー

277:デフォルトの名無しさん
08/04/17 01:49:42
>>273
GaucheはWindowsを無視はしてないよ。
多少なりともVC++を意識した変更が入っていたはず。

URLリンク(practical-scheme.net)

を参照するといいと思う。マンパワーが足りないから進捗が遅いだけで。

成果をフィードバックしてくれるなら、向こうにとっても渡りに船だろうし、
本気でやる気があるなら、WiLiKiに書き込んでみればいいんじゃない?
上手く協力できれば、双方にとって良い結果になると思うけど。

278:デフォルトの名無しさん
08/04/17 02:12:31
スキームの質問

今、手元にThe Little Schemerがあるんだけど
この本に書いてある例題は全部
Dr.schemeで実行できるの?

279:デフォルトの名無しさん
08/04/17 03:33:26
1行で全部の処理をするんでなくて、
まずcdrする
次にcarする、
最後にcdrする、
と3段階に分けて処理をしたいんだけど、
どうすればいいの?
BASICみたいに
a=(a,b,c)
みたいにリストを変数に代入して、
ってできるの?


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5387日前に更新/111 KB
担当:undef