((Common Lisp) (Scheme) :Part 15)at TECH
((Common Lisp) (Scheme) :Part 15) - 暇つぶし2ch108:デフォルトの名無しさん
06/07/15 19:35:16
DrSchemeでdoに相当するものを教えてください。
まさかないことはないと思うので・・。

109:デフォルトの名無しさん
06/07/15 19:48:14
仮に無くても5分で作れるだろ

110:デフォルトの名無しさん
06/07/15 20:26:27
>>108
メニュー -> 言語 -> 言語の選択 -> r5rsなどを選択

111:デフォルトの名無しさん
06/07/15 21:36:36
>>110
ありがとうございます。
teaching languageを使ってました。
>>109
時間があるときに考えてみます。

112:デフォルトの名無しさん
06/07/15 22:10:55
(symbol-append 'a 'kuuhaku 'b) -> a b
となるような「kuuhaku」の部分の書き方はどうすれば良いですか?

113:デフォルトの名無しさん
06/07/15 22:33:30
(define (symbol-append . symlist)
(string->symbol
(apply string-append
(map
(lambda(sym)
(if (eq? sym 'kuuhaku)
" " (symbol->string sym))) symlist))))


114:デフォルトの名無しさん
06/07/16 01:26:28
common lisp なら | | か \ かな。(intern " ") でもいいけど。

115:デフォルトの名無しさん
06/07/16 01:47:45
>>113
ちょっとよく分かりません。申し訳ないです。
>>114
ありがとうございます。それで上手く行きそうです。

116:デフォルトの名無しさん
06/07/16 19:43:13
DrSchemeで微分プログラムに挑戦してんだけど、
自分だけだと行き詰る。参考HPとかある?

117:デフォルトの名無しさん
06/07/16 20:17:15
ちょっと調べたけど、そのものずばりのwebpageは無さそうだね。
どこで行き詰ってるのか具体的に書けば、なんらかのアドバイスが出てくると思うよ。
まさか数値解析から教えてくれなんて事じゃないよねw

118:デフォルトの名無しさん
06/07/16 20:20:43
xをn乗回かけるプログラムをSchemeで書くとどうなる?

119:デフォルトの名無しさん
06/07/16 20:26:08
schemeって何?

120:デフォルトの名無しさん
06/07/16 20:27:01
スチームっていう発音でいいの?

121:デフォルトの名無しさん
06/07/16 21:05:57
(define (expt x n)
(if (= n 0)
   1
   (* x (expt x (- n 1)))))

122:デフォルトの名無しさん
06/07/16 21:08:47
人工知能の第一人者J・マッカーシー氏に聞く--AI研究、半世紀の歴史を振り返る
URLリンク(japan.cnet.com)

123:デフォルトの名無しさん
06/07/16 22:53:20
>>116
微分のプログラムは難しいよ。
参考になるサイトはないと思う。

124:デフォルトの名無しさん
06/07/16 23:04:41
数値微分なのか数式微分かくらいかかにゃアドバイスできんがね

125:デフォルトの名無しさん
06/07/17 02:19:13
>>121
デファインしないとだめなのか。

もし、nが0だったら、
1を返しなさい。

それ以外だったら、
(n-1)を実行して、
それとXを掛けて、、

あーーーーーわかんなくなった

126:デフォルトの名無しさん
06/07/17 02:31:55
defineしなくてもnamed-letやY-Combinatorでも書けるでしょ

127:デフォルトの名無しさん
06/07/17 03:17:31
URLリンク(tkoolup.hp.infoseek.co.jp)
日本語版ダウンロードしたら文字化けします

128:デフォルトの名無しさん
06/07/17 10:20:26
>>116
SICP嫁

129:デフォルトの名無しさん
06/07/19 00:14:10
引数任意(一個以上)な関数はどうすれば定義できますか?

130:デフォルトの名無しさん
06/07/19 00:15:43
>>129
&restなど

131:デフォルトの名無しさん
06/07/19 00:18:10
>>129
ラムダリストで調べれ。

132:デフォルトの名無しさん
06/07/19 01:23:30
>>130-131
どうもです。

133:デフォルトの名無しさん
06/07/19 02:07:29
ハーフライフ1で、やたら
λ(ラムダ)
って用語が出てくるんだけど、体験版やってみたら、
スタート地点から、ゴールまで行って、
またそこからスタート地点までわざわざ
戻ってくるんだよね。マラソンの折り返し地点みたいに。
なんでラムダラムダ言ってたのか、ようやくわかるというわけ。
この開発者、たぶんLispかスキームが好きなんだとおもうよ。

134:デフォルトの名無しさん
06/07/19 09:01:03
>>133
なんだかさっぱりわからないのですが、ゲームか何かの話?

135:デフォルトの名無しさん
06/07/19 10:03:39
単にΛの字面から来てるんじゃないのか?

136:デフォルトの名無しさん
06/07/19 10:08:48
「ラムダ」でググってたら、実は世の中は隠れLispマニアでいっぱいだということがわかったw

137:デフォルトの名無しさん
06/07/19 12:10:39
Half-Lifeのλは半減期(Half-Life)から来てるんじゃね?
Lispとは関係ない気がする。

138:デフォルトの名無しさん
06/07/29 19:43:32
数式微分わからん。SICP通りにやっても動作しないけど。
ほかに参考になるサンプルソースはないのか?

139:デフォルトの名無しさん
06/07/29 19:45:21
>>138
微分には挑戦したことないからわからない。
参考図書とかあればこんど探してくるよ。

140:デフォルトの名無しさん
06/07/29 19:46:03
>>139
サンクス。

141:デフォルトの名無しさん
06/07/29 19:48:21
>>138
微分のコードは書いたことないからわからない。
SICPに書いてあるけどよくわからない。

142:デフォルトの名無しさん
06/07/30 03:23:57
>>138
SICPでぐぐるとコードが落とせるところが引っ掛かるから
それ使ってやってみれ。それでダメなら何か根本的に勘違いしてる。

143:デフォルトの名無しさん
06/07/30 06:43:12
URLリンク(lispuser.net)
Windows で CLISP + SLIME + Tcl/Tk キターーーー


144:デフォルトの名無しさん
06/07/30 14:16:26
Tcl までついてくんのか……

145:デフォルトの名無しさん
06/07/30 14:39:11
たしかにTclはいらんなw

146:デフォルトの名無しさん
06/07/30 18:55:59
つかlisperがwindowsって違和感。
PC Unix か Mac OS X つかおうぜ

147:デフォルトの名無しさん
06/07/30 19:00:00
むしろ Windows が VMS だと考えるんだッ

148:デフォルトの名無しさん
06/07/30 19:01:52
頭のなかでVMSとMVSがけっこう混ざってる

149:デフォルトの名無しさん
06/07/30 19:28:34
>>146
んなこと言ってると喰えないのだ

150:デフォルトの名無しさん
06/07/30 19:29:38
cygwin上ならセフセフ

151:デフォルトの名無しさん
06/08/02 11:26:56
practical common lispってなんであんなにloopばっか使ってんのかね?
mapcarとかで済みそうなものも徹底してloopしか使わない……



152:デフォルトの名無しさん
06/08/02 23:53:51
guileで
(use-modules (ice-9 r5rs))
(define env1 (scheme-report-environment 5))
(define env2 (scheme-report-environment 5))
(eval '(define a 3) env1)

としておいて、
(eval 'a env1)
を評価すると3になるんだけど、
(eval 'a env2)
を評価しても結果が3になってしまう。
つまりenv1とenv2は同じオブジェクトってことになってしまっている。

env1の中での環境の変化をenv2には影響させない方法ってありませんか?

153:デフォルトの名無しさん
06/08/03 00:23:14
にるぽ

154:デフォルトの名無しさん
06/08/03 00:46:53
かー

155:デフォルトの名無しさん
06/08/03 01:26:29
>>152
いまいちやりたいことがわからんが・・・
scheme-report-environmentはR5RSで定義されてるバインドだけ持った環境を返すだけで
返してきた環境の中に新たにバインドつくるとかはできないんだぜ?

156:デフォルトの名無しさん
06/08/03 07:46:45
いや、それがやりたいんだと思うよ。
R5RSに出来ないと書いてあるのにできちゃうevalってのも不親切といえば
不親切ではあるかも知れない(が、エラーにしちゃうとそれも不便だろうな)。

R5RSより:
 -- procedure: eval expression environment-specifier
     Evaluates EXPRESSION in the specified environment and returns its
     value. EXPRESSION must be a valid Scheme expression represented
     as data, and ENVIRONMENT-SPECIFIER must be a value returned by one
     of the three procedures described below. Implementations may
     extend `eval' to allow non-expression programs (definitions) as
     the first argument and to allow other values as environments, with
     the restriction that `eval' is not allowed to create new bindings
     in the environments associated with `null-environment' or
     `scheme-report-environment'.


157:デフォルトの名無しさん
06/08/04 03:18:49
LispWorks5.0出荷されてますね。
URLリンク(www.lispworks.com)


158:デフォルトの名無しさん
06/08/04 22:05:05
>>144
なにかと思ったら LTK 動かすためなんじゃね?入門を目指すならいいん
じゃないかな。むしろ「GUI もできます… Tcl/Tk を入れれば」は初心者
には引かれるだろ。よく言われる

- フリー
- ANSI Common Lisp (MOP, Gray Stream などデファクトスタンダード含む)
- Windows 用
- .exe が作れる
- GUI がつかえる

は満せつつあるんだねー。でもドキュメントが足りない気がする。

159:デフォルトの名無しさん
06/08/05 05:32:30
R5RSって「あーるごあーるえす」って読むの?

160:デフォルトの名無しさん
06/08/05 07:48:41
うん。

161:デフォルトの名無しさん
06/08/05 22:50:40
>>158
Tkは解るけど、Tclっているのん?

162:デフォルトの名無しさん
06/08/06 00:28:18
Tkは言語中立なGUIツールキットなんかじゃないよ。

163:デフォルトの名無しさん
06/08/06 00:35:21
>>161
Tk needs Tcl.

164:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
06/08/06 00:40:49
Perl/TkやRuby/Tkが流行る当たり、Tclの言語としての駄目さ加減がわかるな。


165:デフォルトの名無しさん
06/08/06 12:42:45
ここで Tcl を叩くのはスレ違いだと思うが…。

Ruby/Tk も Tcl 要るよ?Python の Tkinter も Tcl 要るし。名前の印象にダ
マされてる? Perl/Tk だけが自力で Tk とのバインディングを持ってる。

166:デフォルトの名無しさん
06/08/06 13:23:13
でもTclが嫌いでTcl/Tkを避ける奴は多いと思う
実際には他言語のバインド使うならほとんどTclの知識は要らないんだけどね

167:デフォルトの名無しさん
06/08/06 14:11:35
最近 Lisp はじめたんですけど,Perl/Tk みたいに結局インターフェースは
Tcl っぽくなってしまうような気がしますね。Perl/Tk は流行してないと思い
ますが…最近あまり動きないですし。

168:デフォルトの名無しさん
06/08/06 14:48:50
Tclは一つの言語というより、可搬式コマンドラインツールセットというべきかと。
比較対象としてはPerlやRubyより、Dosemuやcygwinに近い

169:デフォルトの名無しさん
06/08/06 14:55:54
tclはシェルの一種だよ。

170:デフォルトの名無しさん
06/08/06 20:10:45
歴史長い割に普及してないね。
やっぱUNIXのGUIってセンスがダメなのよね。

171:デフォルトの名無しさん
06/08/06 21:19:27
・・・え?

172:デフォルトの名無しさん
06/08/07 01:38:00
UNIXのGUI(笑)

173:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6
06/08/07 01:41:17
QtやGtkのバインディングってないの?

174:デフォルトの名無しさん
06/08/08 23:13:00
ググるという行為を知らんのかね?
URLリンク(www.cliki.net)

175:デフォルトの名無しさん
06/08/09 01:14:49
ググらせるという行為を知らんのかね?

176:デフォルトの名無しさん
06/08/09 01:17:41
知らん

177:デフォルトの名無しさん
06/08/16 00:43:19
Schemeのわかりやすい、楽しい本ってなんでないの?

178:デフォルトの名無しさん
06/08/16 00:45:26
>>177
君が何を読んでも楽しさを感じられない人間だからだと思う

179:デフォルトの名無しさん
06/08/16 00:49:17
>>178
お前の家族を明日殺す

180:デフォルトの名無しさん
06/08/16 00:51:31
キタ━━(´・ω・`)━━・・・

181:デフォルトの名無しさん
06/08/16 02:47:33
>>179
一応警察に通報しておく


182:デフォルトの名無しさん
06/08/16 09:16:43
>>177
Little Schemerかのう・・・軽く読めるんけど、楽しいかというとびみょ

183:デフォルトの名無しさん
06/08/16 20:16:06
EoPL第2版がおすすめだ。

184:デフォルトの名無しさん
06/08/16 22:31:52
「リスト遊び」をschemeに翻訳するとか。
最近俺がやってる遊びだが。

185:デフォルトの名無しさん
06/08/17 17:11:50
院試でSchemeの問題が…

orz

186:デフォルトの名無しさん
06/08/17 18:09:51
それは喜ぶところじゃないのか


187:デフォルトの名無しさん
06/08/17 18:17:43
うーん。普段Schemeのプログラムはちょっとは書いてるつもりだったし、最初の
小問はかなり簡単だったんで喜んだんだけど… 再帰の計算量(?)を求める
問題とsamefringeが難しかった…


188:デフォルトの名無しさん
06/08/17 21:39:36
samefringeを出題するおちゃめな大学があるのか…

189:デフォルトの名無しさん
06/08/18 17:36:24
flattenしてequal?で調べるではやっぱり駄目?

190:デフォルトの名無しさん
06/08/18 18:31:56
どんな問題なんだろう。call/ccでコルーチン作るやつかな?
そんなの院試に出されたら死屍累々という気もするが。

191:デフォルトの名無しさん
06/08/18 18:50:28
>>190
試しに書いたらhaskellで楽勝だったのに
Schemeで大失敗したorz



192:デフォルトの名無しさん
06/08/18 20:48:44
Haskellだとどうやって書くの?

193:デフォルトの名無しさん
06/08/19 02:39:27
ググッたらめっけた

data Tree a = Leaf a | Node [Tree a]
fringe (Leaf x) = [x]
fringe (Node x) = foldr (\x r -> fringe x ++ r) [] x

samefringe x y = fringe x == fringe y

でもツリー作るのマンドクサイ
(Node [(Node [(Leaf 1), (Leaf 2)]), (Node [(Leaf 3), (Node [(Leaf 4) ])])])

194:デフォルトの名無しさん
06/08/26 15:32:15
SBCLのREPLから対話処理をするプログラムを実行したいんだけど、
例えば以下のようにすると、

(setf p (run-program "/usr/bin/dc" nil :pty t :wait nil))
(format (process-pty p) "2 3 *~%")
(terpri (process-pty p))
(format (process-pty p) "p~%")
(terpri (process-pty p))
(format t "~A" (read-line (process-pty p)))

6が表示されると思われるんだけど、実際には入力待ちになってしまうのはどうしてなぜ?

195:デフォルトの名無しさん
06/08/28 00:42:24
読み込みでブロックするっつーことは stream が無効なわけじゃなさそうだね.
stream が buffering してんじゃない? dc ないから bc で試してみた.pty
使えない環境なんで :stream 経由で.環境は sbcl 0.9.16 です.

CL-USER> (defun bc-example ()
(let ((process (run-program "/usr/bin/bc" '("-q" "-i") :output :stream :input :stream :wait nil)))
(unwind-protect
(progn
(write-line "x = 2" (process-input process))
(write-line "y = 29" (process-input process))
(write-line "x^y-1" (process-input process))
(finish-output (process-input process)) ;; これがないとブロックする
(write-line (read-line (process-output process))))
(process-close process))))

BC-EXAMPLE
CL-USER> (bc-example)
536870911
"536870911"


196:デフォルトの名無しさん
06/08/28 17:00:26
R5RSを読んでるんですが、
3.5節の末尾再帰のところに出てくる「アクタ(actor)」というのは
昔の歴史的な事柄で今のSchemeにはもう関係ない話だと思って良いですよね?

197:デフォルトの名無しさん
06/08/28 21:58:26
Hewittせんせーい!

198:デフォルトの名無しさん
06/08/29 21:17:32
scm5e1でscheme勉強しています。
> (let ((x 10)) (define x (+ x 1)))
とすると、

;ERROR: bad body ((define x (+ x 1)))
; in expression: (let ((x 10)) (define x (+ x 1)))
; in top level environment.
;STACK TRACE
1; (let ((x 10)) (define x (+ x 1)))
と怒られてしまうのですが、
これはなぜでしょうか。
letの中で外に影響を及ぼすdefineを使っているからですか?

199:デフォルトの名無しさん
06/08/29 21:34:56
>>198
define で初期値として x を参照してるから。
(let ((x 10)) (define x (+ x 1)))
== (let ((x 10)) (letrec ((x (+ x 1)))))
んで、R5RS 4.2.2 Binding constructs
> library syntax: (letrec <bindings> <body>)
> Syntax: <Bindings> should have the form
> ((<variable1> <init1>) ...),
...
> One restriction on letrec is very important: it must be possible
> to evaluate each <init> without assigning or referring to the
> value of any <variable>.

200:198
06/08/30 07:05:34
>199
ありがとうございます。
defineの所の説明とあわせて読んだら分りました。

こんどは、letrecを試してみようと、
> (letrec ((x 2) (y 'x)) (eval y))
としたところ、

;ERROR: "/usr/local/lib/scm/Init5e1.scm": unbound variable: x
; in expression: (#@@eval (#@@copy-tree #@x))
; in scope:
; (x) procedure <anon>
; (@eval @copy-tree . #@let)
; defined by load: "/usr/local/lib/scm/Init5e1.scm"

;STACK TRACE
1; x
2; (#@letrec ((x 2) (y (#@quote x))) (#@eval #@y))
といわれてしまいます。

(define x 2)(define y 'x)(eval y)
なら2が帰って来てくれるのですが、
何がいけないのでしょうか。
letrecだと変数領域が割り当てられて、
それから初期値が算出される、と書いてあったので、
このやり方ならyは既に割り当てられたxをさすようになるだろうから、
正しく動くと思ったんですが...

201:デフォルトの名無しさん
06/08/30 08:25:52
>>195
これでうまくいきました。cmuclでもちゃんと動くようです。ありがとうございました。
Schemeのflashのようなものでしょうか。改行すればフラッシュされるものと思いこんでました…orz

202:デフォルトの名無しさん
06/08/31 02:33:39
>>200
eval は局所環境を参照しないんじゃないでしょうか。

203:デフォルトの名無しさん
06/08/31 19:20:39
>>200
環境についてもうちょっと調べたほうがいい。
(eval y (current-environment))
で期待の動作をする処理系もあるけど、
トップレベルは言語の都合上、例外的な動作になる。
schemeの気持ち悪い所の1つ。

多分やりたい事のほとんどはマクロで済むし、
移植性も悪くなるから、schemeに慣れてくると
evalはあまり使わなくなる。


204:デフォルトの名無しさん
06/08/31 23:15:07
きんもー

205:198
06/09/01 14:40:56
>202,203
ありがとうございます。
もう少し勉強しなおしてみます。

206:デフォルトの名無しさん
06/09/03 14:23:09
URLリンク(www.comics.com)
とほほ。

207:デフォルトの名無しさん
06/09/03 16:32:11
物の喩えなのは重々承知しつつも
やはり1コマ目のシチュがあり得なすぎて入り込めん。

208:デフォルトの名無しさん
06/09/04 03:19:44
入り込むもなにも
リスパーをばかにしてるだけじゃんw。


209:デフォルトの名無しさん
06/09/04 06:55:22
キャラ紹介
URLリンク(www.comics.com)
によると、
Roy, the engineer/repair guy:
an expert with computers and machines,
but he doesn't have a clue how to deal with people.
らしいから、
おにゃのこと言語オタクの区別が出来てないってことじゃなかろか。

210:デフォルトの名無しさん
06/09/04 08:11:19
普通に考えればLISPを何に変えても成り立つ罠

211:デフォルトの名無しさん
06/09/04 08:19:04
乳房の輪郭と (  ) の区別がつかなくなることはよくあること。

212:デフォルトの名無しさん
06/09/04 13:55:59
>>207
ハゲデブメガネじゃなあ

213:デフォルトの名無しさん
06/09/04 15:02:06
2コマ目の負け惜しみが悲しい…。
「LISPの価値の分からないようなやつとは、誰ともデートしたくなかったんだ」
ショボーン。


214:デフォルトの名無しさん
06/09/10 22:19:48
>>213
違うだろ。LISPじゃなくて「LISP使える俺様」なのがpoint。

遅レスで悪いが。


215:デフォルトの名無しさん
06/09/12 01:18:07
Scheme勉強している初心者です。
お世話になります。

先ほど、Biglooは.NETにも対応(?)しているということを知り、
インストールしてみました。
しかし、英語力がないためかマニュアル読んでも欲しい情報が得られませんでした・・・。
.NET Frameworkを使ってMessageBoxを表示するようなプログラムはどう書けばいいのでしょうか??(汗
ご存知の方いましたら教えてください。。。宜しくお願いします。


216:デフォルトの名無しさん
06/09/12 22:29:54
.NET上のVM向けにコンパイルできるってだけじゃない?

217:デフォルトの名無しさん
06/09/13 09:05:35
これってダンジョン自動生成のコード書くのに向いてます?

218:デフォルトの名無しさん
06/09/13 12:39:59
向いています

219:デフォルトの名無しさん
06/09/13 13:28:29
>>217 風来のシレン
>>217 乱数発生ライブラリー作ってくれ

220:デフォルトの名無しさん
06/09/13 14:09:12
つくってくれってなんですか
もしかしてEMacsでローグ系が
プレイできたりします?

221:デフォルトの名無しさん
06/09/13 14:22:59
します

222:219
06/09/13 22:07:09
>>217 風来のシレン
>>218 乱数発生ライブラリー作ってくれ

一文字違うと大変な事になるなぁ・・
ゴメン

223:デフォルトの名無しさん
06/09/14 09:16:50
シレンは生成せず既製のダンジョンからランダムに抜いているだけですよ。
それとこっちに来てください。
スレリンク(gamedev板)

224:デフォルトの名無しさん
06/09/15 08:20:17
ドラフト出ましたよ。
URLリンク(www.r6rs.org)

225:デフォルトの名無しさん
06/09/15 09:05:05
正式版出るのって再来年くらい?待ちきれないYO

226:デフォルトの名無しさん
06/09/15 11:30:41
待ってる間にHaskellに手を出してしまった俺は根性無し。

227:デフォルトの名無しさん
06/09/15 12:12:31
やーい根性なし~


228:デフォルトの名無しさん
06/09/17 21:47:03
亀だが >>206 はあんまりだ。Lisper の地位を回復するため
わたしの体験を語ろう。

その頃のわたしにはコンピューター室が一番の居場所だった。
ノートPC用の電源。無線ネットワーク。他に何がいる?
銀色のノートPC がわたしの唯一の所有物だった。そして、
わたしには他には何もいらなかった(と信じていた)。

いまも鮮明に思い出せる。美しい黒髪、大きな瞳の優等生。
(つまり、「オタク」だったわたしには高嶺の花、だった。)
仮に t 子と呼ぼう。誰もいない夏休みのコンピューター室に、
ふいに彼女があらわれたのだ。

「君はずっとそこにいるの?」と彼女は言った。

-- それがわたしにとって、 Lisp という未知なる言語を学ぶ
きっかけだった。


229:228
06/09/17 22:01:00
彼女がどのような意図だったかは分からない。
ただ、わたしは赤面し、怒り、何か毒舌を吐いた気がする。
うるせえガキはどこかへ行け、とか何とか。

(実際には彼女は優等生なだけではなく大人で、下手をすると
それから何年もたったいまのわたしよりも大人びていた。)

ありがたいことに、彼女は床でノートPC と格闘していた
わたしに興味を持っていた。わたしはその頃趣味で
幾つかのプログラムを書いていた。発表する気もない、
自分だけのプログラム。書かずにはいられないプログラムだった。

彼女の質問は驚くほど鋭く
- その頃のわたしは C と Perl を使っていたが、
そのどちらも学校で習ったものではなかった -
彼女はわたしよりも C を、あるいはノイマン型コンピューターを
熟知していたのだと思う。そのことはすぐに分かった。

いつしかわたしはまるで「オタク」を相手にするように、
自然に彼女と会話をしていた、その事に気付いて、唐突に沈黙した。

(調子にのるな、こんな美少女とお前は話をする
資格なんかないんだ geek が、とこころの中で誰かが非難していた)


230:デフォルトの名無しさん
06/09/17 23:49:33
いくらリロードしても誰もワッフルとか書かないから諦めろ。

231:デフォルトの名無しさん
06/09/18 00:03:48
URLリンク(www.cbook24.com)

232:デフォルトの名無しさん
06/09/18 02:11:31
>>231
意味もなく生物のイラストが表紙になるのはやはりラクダのせいかねぇ。


233:デフォルトの名無しさん
06/09/18 02:41:38
表紙解説
Common LispはEmacsじゃないから野牛は使えません。
そこでインタプリタ型bisonことawk(海鳥)に目を付けたが
Common Lispは手続き型じゃないからaukは使えません。
そこで海鳥じゃなくて水鳥に落ち着きました

234:デフォルトの名無しさん
06/09/18 02:46:55
Lisp関係の本が増えるのは嬉しいけど、入門書以外も充実したらいいなと思うんだ

235:デフォルトの名無しさん
06/09/18 03:24:37
>>233
作者さんですか? Lisp 書籍コレクターの血が騒ぐので買います。でももっと
特化した内容のも買いてください。まずは教材に使えそうな「自然言語処理編」
とか「統計編」とか「数値計算」とか~

でも Common Lisp の本なのに SLIME がないのはちょっと残念…

236:デフォルトの名無しさん
06/09/18 04:02:49
ぶしつけな質問だけど関数型プログラミングってメリットある?
代入式使わないとか。

237:デフォルトの名無しさん
06/09/18 04:17:35
>>231
今時出すのにこの題材でCommon Lisp? と思ってしまうが、
xyzzy使ってとっつきやすく、ってことなのかな?

238:デフォルトの名無しさん
06/09/18 04:18:48
>>236
マルチスレッドでアホみたいに悩むことが減る。

239:デフォルトの名無しさん
06/09/18 04:32:30
それをいったら R6RS 直前に Scheme も微妙じゃね。PLT なら入門者にも受け
るか…とおもうが xyzzy には勝てないわな。あれは Lisper 以外も使いたがる
良いエディタです。

>>236
Lisp の場合は強制じゃなくて選択ですからね。メリットが実感できるまでは普
通に副作用使いまくればいいんじゃないでしょうか。


240:デフォルトの名無しさん
06/09/18 07:07:45
残念ながらxyzzyはあまりに遅すぎる


241:デフォルトの名無しさん
06/09/18 07:41:15
何と比較して?常駐秀丸と起動速度で勝負とかなら同意するけど…


242:デフォルトの名無しさん
06/09/18 07:50:40
>>241
Lispの実行速度じゃないの。

243:デフォルトの名無しさん
06/09/18 08:39:14
>>241
普通にキータイプのレスポンスが遅くね?

244:デフォルトの名無しさん
06/09/18 09:32:45
>>231とか、この前本屋で手に取った
URLリンク(www.amazon.co.jp)
とか、`関数型'って言うのが微妙にクローズアップされているような
気がする。

その言語を扱っている書籍の中で、過去に出版された物より…
くらいの意味だけど。

Haskellが話題になったから?

245:デフォルトの名無しさん
06/09/18 11:37:22
>>234
野田さんのOn Lisp翻訳に期待。(まだー?w)

246:デフォルトの名無しさん
06/09/18 14:22:46
>>245
On Lispの翻訳を見たときは、日本にもまだまだ優秀な学生さんが居ると感心していたが
urlを見ると東大の学生じゃねーか、東大だよ東大!!!

そりゃぁ、出来て当然。Orz

247: ◆r6EONKKhcc
06/09/18 14:25:48
orz

248:デフォルトの名無しさん
06/09/18 14:43:19
>>246
東大コンプレックス乙ww

249:デフォルトの名無しさん
06/09/18 15:29:45
高卒は必ず噛み付くよね、こういう時。

250:デフォルトの名無しさん
06/09/18 16:13:12
>>249
学歴コンプレックス乙ww

251:デフォルトの名無しさん
06/09/18 16:49:00
>>250
高卒乙ww

252:デフォルトの名無しさん
06/09/18 19:18:58
もうやめろ

253:デフォルトの名無しさん
06/09/18 22:32:01
LISP…言語設計のブラックホール
URLリンク(www.rubyist.net)

Guy Steele曰く「Lispはブラックホールだ。「Lispに似た(でもLispではない)なにか」を
作ろうとすると、重力につかまってブラックホールに落ちてしまう。そしてそれはLispになる。

254:デフォルトの名無しさん
06/09/18 22:45:52
Java も大変だよね。シンプルを目指していたのに Generics や Closure など
初期にあえて省いた機能を入れざるを得ない…。


255:デフォルトの名無しさん
06/09/18 23:31:15
Javaの場合は言語サイドからってより、VMで動かそうぜというコンセプトが
結局Closure導入に至った感じがする。

256:デフォルトの名無しさん
06/09/18 23:54:05
様々な言語で共通に使えるVMということを考えると当然の方向性だな

257:デフォルトの名無しさん
06/09/19 00:27:08
Javaの初期にはネットワーク対応OLEという方向が想定されてて
そのための安全性とポータブル性に注意が払われてたが
実際は鯖サイドで成功して、どんどんノリ重視ホイホイ開発な方向になってきたわけで。
Appleも一時期Objective-Cを畳んでJavaに移行ムードだったのが復活模様だし

258:デフォルトの名無しさん
06/09/19 11:55:35
>>247
あれ?flatlineさん、まだ2chに来てたのね。
はてなダイアリ見てます。院試合格おめでとう。たまにはLISPのことも書いてね。
『On Lisp』出版の話とかは、別に急がなくてもいいから。
URLリンク(d.hatena.ne.jp)

まあこんなこと言ってる自分も、最近じゃPythonとHaskellばかりうわなにをするやめr


259:デフォルトの名無しさん
06/09/19 18:04:23
Schemeでスクロールゲームって作れたりしますか?

260:デフォルトの名無しさん
06/09/19 18:13:05
魔法の巻物でなんかするゲームかね?

261:デフォルトの名無しさん
06/09/19 18:30:03
R5RSのつもりでR6RSのドラフトを見ていくと3倍の時間がかかるゲームですか?

てか50ページから142ページに増大ってどういうことよ。
正式版ではシェイプアップするのかね。

262:デフォルトの名無しさん
06/09/19 19:07:59
>>259
Schemeで作れないものなんてありません

263:デフォルトの名無しさん
06/09/19 19:10:09
ではSchemeでコーヒーをいれてくれ

264:デフォルトの名無しさん
06/09/19 19:10:14
>>261
ほとんどライブラリだから興味あるとこだけ読めばいいんじゃね?
異論もあるだろうが、個人的にはやっと一人前の言語仕様書になったという気がするよ。w
これでSRFIのお世話にならないで済むようになるのかな。

265:デフォルトの名無しさん
06/09/19 19:10:50
>>263
Java VMを作れという意味か?w

266:デフォルトの名無しさん
06/09/19 19:21:35
RFCにコーヒー淹れるプロトコルあったな

267:デフォルトの名無しさん
06/09/20 00:47:37
流れ豚ギルケド、MLISP(Meta-Lisp) なんて方言があるのね。
Algol 風の文法らしいけど、誰か使った事ある?

268:デフォルトの名無しさん
06/09/20 00:50:50
>>267
M式だな。昔、中西先生が実装した奴を使った。
昔はエディタなどの入力支援が貧弱だったから、括弧が減るのは有り難かったのかも
しれないが、S式に慣れてしまうと要らないかなという気もする。
入門者向けには面白いかもしれないね。

269:デフォルトの名無しさん
06/09/20 01:08:10
>>267
URLリンク(sumim.no-ip.com:8080)

余談。
竹内郁雄『初めての人のためのLISP』では、M式は一応ちゃんと説明されていたけど、
そのあとすぐ、だけどS式だって十分読み書きしやすいんだから、こんなの要らないし、
この本でももう使わない、と切って捨てていた。

さすがは竹内先生。

270:デフォルトの名無しさん
06/09/20 08:06:59
>>268-269
元はM式から来ているみたいですが、M式とはちょっと違うみたいです。

fURLリンク(reports.stanford.edu)
URLリンク(hopl.murdoch.edu.au)

271:デフォルトの名無しさん
06/09/20 11:36:07
>>269
これマクロはLispと似たような感覚でできるの?

272:デフォルトの名無しさん
06/09/20 22:39:56
define-syntaxとsyntax-caseの間のlambdaいらなくね?

273:デフォルトの名無しさん
06/09/21 01:58:21
lambda を書かなくて済むマクロを定義すればよくね?

274:デフォルトの名無しさん
06/09/21 20:46:49
頭悪くてdefine-syntaxを定義できねえ
define-macroのが良くね?

275:デフォルトの名無しさん
06/09/22 03:25:24
>>272-273

  っ
    そ


276:269
06/09/22 11:03:14
>>271
すまん、見落としていた。
結論から言うと、知りませんごめんなさい。
憶測を述べると、多分出来ないと思う。

「初めての人のためのLISP」を見直してみると、P201-P203にM式の説明が載っ
ているんだけど、この記法ではS式をデータ、M式をロジックとして用いると書
かれてる(S式は無条件でquoteされている扱いに)。

LISPのマクロはコードとデータの区別がないがゆえに成立するものだから、M
式ではマクロは書けないんじゃないかな。


277:デフォルトの名無しさん
06/09/22 13:56:08
そこで、Dylan ならマクロも OO もオプショナルな型指定も出来るなあと
いつも思うんだけど、何故か食指が動かん。今なら OpenDylan が使える
んだが。

278:デフォルトの名無しさん
06/09/22 19:35:38
名前が気持ち悪い>dylan

279:デフォルトの名無しさん
06/09/22 19:40:56
dylanってボブ?

280:デフォルトの名無しさん
06/09/23 15:50:49
Rubyist のための他言語探訪 【第 6 回】 Dylan
著者:まつもとゆきひろ
URLリンク(jp.rubyist.net)
> 人名の方の由来は Bob Dylan ではなく、Dylan Thomas (英国の詩人 1913-1953)
> なのだそうです。

もっとも、Bob Dylanの方も、ディランという名は詩人のDylan Thomas から
取っているので、どれも元ネタはこの詩人。

281:デフォルトの名無しさん
06/09/23 16:04:25



なに?

282:デフォルトの名無しさん
06/09/23 18:22:26
279=281だったら苦笑

283:デフォルトの名無しさん
06/09/23 19:23:31
Rubyist のための他言語探訪
俺は、この題名のほうに苦笑

284:デフォルトの名無しさん
06/09/23 22:13:33
>>279
DYnamic LANguage

285:デフォルトの名無しさん
06/09/29 02:40:08
eval-whenを使って、コンパイル時にテーブルを作っておいて実行時にはそれを引く
ということをしたいのですが、どう書けばいいでしょうか。
例えばelispで
(defun foo (x) (assq x (eval-when-compile (mapcar #'cons '(a b c) '(1 2 3))))
とすれば、コンパイルすると定数のテーブルになってくれますが、
Common Lispのeval-whenを使ってコンパイル時に計算するにはどう書けばいいんでしょ。

286:デフォルトの名無しさん
06/09/29 09:16:41
これじゃだめかな

(defun foo (x) (assq x #.(mapcar #'cons '(a b c) '(1 2 3))))

287:デフォルトの名無しさん
06/09/29 11:10:28
ChezSchemeの高速性のひみつ
URLリンク(www.kmonos.net)

なかなか面白かったんで貼ります。


288:デフォルトの名無しさん
06/09/29 11:58:59
>>286
ありがとうございます。#.の前に'がいるみたいですが、使えました。
ところで
(eval-when (:compile-toplevel) (defun bar () (list 1 2 3)))
(defun foo (x) (assq x '#.(mapcar #'cons '(a b c) (bar))))
みたいに#.の中でbarが使えるようなのですが、これは保証されているのでしょうか?
#.による置換はコンパイラの前のリーダでの処理だと思うので、
ちょっと変な感じもするんですが。

289:デフォルトの名無しさん
06/09/29 23:15:08
URLリンク(book.mycom.co.jp)
入門Common Lisp~関数型4つの特徴とλ計算

290:デフォルトの名無しさん
06/09/30 08:30:20
>>289
>>231

291:デフォルトの名無しさん
06/09/30 10:15:28
一日一門のスレにも書いてるし宣伝なんじゃない?

292:デフォルトの名無しさん
06/09/30 11:49:09
>>288
S 式一つずつ read -> compile を繰り返してるんだと思うと変でもないような。
でも保証されているかといわれると、どうなんだろう

293:デフォルトの名無しさん
06/09/30 12:32:00
コンパイル時に評価してほしいならマクロにすれば?
(defmacro eval-when-compile (&body body)
(list 'quote (eval (cons 'progn body))))

294:デフォルトの名無しさん
06/10/02 06:33:32
>>293
標準で既にそういう手段が用意されているんじゃないかと思ったんですよ。
自分でマクロを用意しないとだめですかね。
(私も似たようなのを書きました。式を一つだけとり、compile-time-valueと)

>>292
保証されているような気がしてきました。というのも、
(in-package "HOGE")
も以後のリーダの動作に影響しないといけないから。

295:デフォルトの名無しさん
06/10/03 17:18:57
clisp 2.40 age

296:デフォルトの名無しさん
06/10/05 10:58:50
Rubyの生産性の高さはどこまで本当か?
URLリンク(d.hatena.ne.jp)

はてなブックマークの人気記事だが、最終段にいきなりCLOSの熱烈な礼賛が現
れて驚いた。「追記:理想と現実」の部分。

何かそこだけ読むと、以下へのリンクだけあれば済むような気もするが。
技術野郎の復讐---全ての言語はLispに向かう?
URLリンク(practical-scheme.net)


297:デフォルトの名無しさん
06/10/05 12:16:09
PythonやRubyに備わってるような現代風のライブラリをCommon Lispでも標準化して
くれれば、もっと仕事でCommon Lisp使えるんだけどなぁ。
ライブラリに釣られてPythonとか使っちゃうことが多い今日この頃です。w

298:デフォルトの名無しさん
06/10/05 13:35:15
現実的には、ライブラリは超重要だよな。

299:デフォルトの名無しさん
06/10/05 14:19:08
(in-package :2ch-user-lib)

300:デフォルトの名無しさん
06/10/05 14:59:07
>>297 お前は俺か。

301:デフォルトの名無しさん
06/10/05 17:51:26
Norvigだって似たようなこと言ってるぜ。はっ、もしかしてお主はNorvig?

302:デフォルトの名無しさん
06/10/05 23:14:54
>>297
自分ライブラリでいいじゃん。

303:デフォルトの名無しさん
06/10/05 23:57:39
だめだ

304:デフォルトの名無しさん
06/10/06 00:04:45
>>302
ライブラリ作るほうが面白くなってきて仕事が進まないのが難点

305:デフォルトの名無しさん
06/10/06 07:40:34
仕事は誰かにやらせようぜ

306:デフォルトの名無しさん
06/10/07 03:35:55
リファレンスカウントを採用しているCommon Lisp処理系ってあるんですか?

循環参照を解決するために他のGCも併用しなきゃいけないっていうのはわかってるんですが、基本的に使い終わったらすぐ開放されるっていう安心感がほしいんです。

Lispはメモリ馬鹿喰い&ガベコレで時間喰いまくりというイメージがあるので。

307:デフォルトの名無しさん
06/10/07 04:50:18
いつの時代の話やねん

308:デフォルトの名無しさん
06/10/07 07:22:15
使い終るたびに解放してたら遅くなるよ。


309:デフォルトの名無しさん
06/10/07 12:38:01
>>297
禿同。まずは文字列処理周辺のライブラリかな。

310:デフォルトの名無しさん
06/10/07 13:16:03
>>306
リファレンスカウントだとカウンタ操作が頻繁におこるのがねぇ。ヒマなとき
だろうがタイトループだろうが問答無用なうえ、カウンタ操作ミスると……

使い終わったらすぐ解放してほしいなら dynamic-extent があるよ。スタック
上にリストや配列を確保できるので、スコープ抜けた瞬間に GC のコストゼロ
で消える。それ以外ならリファレンスカウントよりも Generational GC のほう
が一般的に良いと思うけどねー。

まぁリファレンスカウントのほうが向いてるケースもあるので、どうしても、
というならあらかじめまとめてメモリを確保して俺リファレンスカウントでも
いいんじゃね。


311:デフォルトの名無しさん
06/10/07 13:27:18
>>306
Lispのように小さいオブジェクトをいっぱい操作すると、リファレンスカウント法って
ものすごーーーーーく重いと思うよ。
あと、デストラクタのような概念が無いから解放されなくてもデメリットがあまり無いし。

312:デフォルトの名無しさん
06/10/07 13:36:18
dynamic-extent イイ!!! 最近だと CMUCL や SBCL とかのフリーのコンパイラ
でも一部実装されてんでしょ?良い時代になったもんだ。

313:デフォルトの名無しさん
06/10/07 18:26:00
URLリンク(cl-cookbook.sourceforge.net)

314:デフォルトの名無しさん
06/10/07 23:52:06
教授に、とある学生の卒研のお手伝いを任された。
あるグラフを別のグラフへマッピングし直すような課題。昨日のお話:
後輩:
「先輩、先輩はソフトを Lisp で書いてるって聞いたんですけど。
 この研究には向いてるって言ってましたよね。
 私の卒研では Lisp でないとダメなんですか?全く知らないんですけど。」
 と、悲しそうな顔。。
私:
「あ、いや、とりあえず私のソフトで最初のグラフデータを
 出力するところまでやればいいよ。その後はそれを取り込んで、
 C でもなんでも好きな言語で料理すればいいよ。」
後輩:
「助かりました。Lisp なんて習った事無いんです。名前は聞いた事は有りますけど。」
私:
「え?私は違うけど、君は純粋に情報系の学生でしょ?
 学部の授業に有るでしょ。 Common Lisp とか、Scheme とか、あ~。そうか。
 Haskell とか、ML とかをやったのかな?」
後輩:
「あ、その、Scheme はやりました。でも、Lisp はやった事無かったんです。」

315:デフォルトの名無しさん
06/10/07 23:57:41
ワッフルワッフル

316:デフォルトの名無しさん
06/10/08 01:05:03
ハスケルハスケル

317:デフォルトの名無しさん
06/10/09 02:14:04
ハスケルってトップダウンって感じだよね
仕様変更にものすごく弱い

318:デフォルトの名無しさん
06/10/09 03:30:27
本物のHaskellプログラマは仕様変更しないから

319:デフォルトの名無しさん
06/10/09 09:53:08
本物のプログラマはHaskellを使わない

320:デフォルトの名無しさん
06/10/09 10:21:30
あらゆる仕様変更にリスクが伴う。
だが昨日を守ること、すなわち仕様変更を行わないことのほうが
明日を作ることよりもリスクを伴う。

321:デフォルトの名無しさん
06/10/09 17:22:10
>>320
ダブルミーニングっつーか掛け言葉的にカッコいい言い回しをしたつもりなんだろうけど
全然意味分からん。

322:デフォルトの名無しさん
06/10/09 17:24:13
要するに「仕事は大変だ」って言ってるだけだからな。

323:デフォルトの名無しさん
06/10/09 17:45:41
プログラマはつらいよ

324:デフォルトの名無しさん
06/10/09 18:24:27
>>323
やべぇ、渥美清が「さくらタンハァハァ」とか言ってるイメージが。


325:デフォルトの名無しさん
06/10/09 19:28:14
>>324
いいじゃねえか。
役柄上はキングオブ童貞だぜ。

326:デフォルトの名無しさん
06/10/13 17:50:32
*** - OPEN: file #P"C:\\home\\onjo\\lisp\\lib\\common\\cffi\\src\\utils.lisp" does not exist

327:デフォルトの名無しさん
06/10/13 19:32:53
下がりすぎて見つけづらいage

328:デフォルトの名無しさん
06/10/14 02:37:33
>>326
どうした?メッセージのとおりファイルがないんだろ?

329:デフォルトの名無しさん
06/10/14 02:49:45
CFFI って使ったことネェ。UFFI とくらべてどうなの? >>326

330:デフォルトの名無しさん
06/10/14 16:08:37
>>326
なつかしー
前に俺もなったw
LispUser.netの中の人しっかりしろよってwwww


331:デフォルトの名無しさん
06/10/15 02:05:44
ワラタ、謎のhomeディレクトリができてると思ったらLispUser.netの人のだったのか、
URLリンク(lambda.s55.xr"ae".com)といいおっちょこちょいだな、そこがまた良いがw

332:デフォルトの名無しさん
06/10/17 04:01:11
clispとかsbclとかで、式をステップ実行する方法はないでしょうか?
Emacsのedebugみたいなやつ。

333:デフォルトの名無しさん
06/10/17 04:39:46
>>332
step じゃ駄目?
URLリンク(www.lispworks.com)

334:デフォルトの名無しさん
06/10/17 06:39:51
こういうのがあるんですね。ありがとうございます。
何でも決まってるという感じだなあ。

関数の一部をステップ実行したいときは監視したいところを
stepで囲んでdefunして適当な式をevalするという感じでしょうか?
SLIMEだとstepの部分でデバッガに入ったらsを押すとステップが進みますね。
その中のどの部分を評価しようとしてるかも表示されて(もうちょっと
見易い方がいいけど)なかなかよさそう。

335:デフォルトの名無しさん
06/10/17 19:21:10
>>332
去年だったっけ?
Google Summer of Codeでslime用のedebugみたいなstepperを実装するっていうのやってたけど、いつのまにかそんな話は無かったことになってるみたい。


336:デフォルトの名無しさん
06/10/18 15:33:21
人の属性を表すマクロhogeを作るとき、
引数の並びは次のどちらが一般的なんですか?
(setf (hoge 'Hiroyuki :sex) :male)
(setf (hoge :sex 'Hiroyuki) :male)

337:デフォルトの名無しさん
06/10/18 17:04:21
後者かしら

338:デフォルトの名無しさん
06/10/18 17:15:03
いやもしかしたら前者かも試練

339:デフォルトの名無しさん
06/10/18 19:08:03
>>337-338
結局、好みってこった。

340:デフォルトの名無しさん
06/10/20 04:05:03
(`・ω・´)今日からおまんこ再開です!

341:デフォルトの名無しさん
06/10/20 09:59:55
やっと週末♪ルンルン

342:デフォルトの名無しさん
06/10/20 22:03:20
週末はコーディング天国です。

343:デフォルトの名無しさん
06/10/21 02:42:52
佐賀はローディング煉獄です。

344:デフォルトの名無しさん
06/10/22 00:49:44
?????何故に佐賀?

345:デフォルトの名無しさん
06/10/22 01:14:30
>>344
URLリンク(www.pheedo.jp)

346:デフォルトの名無しさん
06/10/25 00:07:56
何も無ければ来月末、遂に SBCL 1.0.0 が出るみたいね。

347:デフォルトの名無しさん
06/10/25 06:24:22
Schemeの関数呼び出しの評価順序についてですが、R5RSの

> _Note:_ Although the order of evaluation is otherwise
> unspecified, the effect of any concurrent evaluation of the
> operator and operand expressions is constrained to be
> consistent with some sequential order of evaluation. The
> order of evaluation may be chosen differently for each
> procedure call.

というのがいまいちよくわかりません。特に最後の文ですがこれは、
あるときは (a b c) が a→b→c の順で評価され
またあるときは (d e f) が f→e→d の順で評価され
しかしてあるときは (g h i) が g→i→h の順で評価され
ても構わないってこと?

348:デフォルトの名無しさん
06/10/25 07:10:34
operatorとoperandsで見たらoperatorの評価が先じゃないといけないけど、operandsの評価はoperatorの評価に基づくprocedure呼び出しが何かに依存する(でも同じprocecureに対しては常に同じ順序である必要あり)って感じじゃまいか?

349:デフォルトの名無しさん
06/10/25 07:57:48
>>347-348
その引用文で言ってるのは「評価順序は決まってないし、実行するたび順序が
変わるかもしれないけれど、ちゃんと逐次評価される」ってことでしょ。
つまり (a b c) で a b c が同時に評価されたりしないってこと。

350:347
06/10/25 08:05:41
ありがとうございます。つまり、評価はシリアライズされないといけない
(それぞれパラに評価してはいけない)が、その順序は好きにしていいよと
いうことですか。例えば
((begin (X) (Y) (lambda (a) a)) (begin (S) (T))) という式を評価すると
関数X,Y,S,Tが評価される順序は必ず
X→Y→S→T または S→T→X→Y
のどちらかになると。

351:デフォルトの名無しさん
06/10/28 09:48:25
計算機プログラムの構造と解釈
難しすぎる。
これ、問題全部といた人いますか?
質問しても良いです?

352:デフォルトの名無しさん
06/10/28 10:49:17
>>351
とりあえず>>4に目を通してからのがいいんだぜ

353:デフォルトの名無しさん
06/10/28 11:24:07
スレリンク(tech板)

354:デフォルトの名無しさん
06/10/29 04:42:37
しくぷ?
しっくぴー?

355:デフォルトの名無しさん
06/10/29 05:30:02
シック( ´,_ゝ`)プ

356:デフォルトの名無しさん
06/10/30 03:10:38
阿呆っぽい質問で申し訳ないんだが、
LispやSchemeってどういう用途で使われるんだ?

357:デフォルトの名無しさん
06/10/30 03:14:04
汎用

358:デフォルトの名無しさん
06/10/30 12:50:12
俺は低レベルな操作以外はほとんどSchemeでやってる

359:デフォルトの名無しさん
06/10/30 12:54:13
俺は低レベルだからほとんどLispで済ませてる

360:デフォルトの名無しさん
06/10/30 18:27:33
自分で実装できないくらい難しい言語はわからないから括弧の世話になってる

361:デフォルトの名無しさん
06/10/30 22:36:45
>>360
不覚にもワロタ


362:デフォルトの名無しさん
06/10/31 00:23:15
確かにLispは(暇さえあればすぐに)自分で実装できそうな透明感が魅力だよな

363:デフォルトの名無しさん
06/10/31 05:44:09
お勧めの処理系は?

364:デフォルトの名無しさん
06/10/31 06:54:34
>>363
Chez Scheme

365:デフォルトの名無しさん
06/10/31 11:49:13
emacs22

366:デフォルトの名無しさん
06/10/31 12:15:00
>>363
マジレスすると CLISP かな
Scheme なら Gauche

367:デフォルトの名無しさん
06/10/31 21:52:17
俺はGaucheしか使ってないが、
それは日本語を扱うときに罠がないからだ!

368:デフォルトの名無しさん
06/10/31 23:12:54
OpenMCL で UNICODE が使えるようになったみたいね。

369:デフォルトの名無しさん
06/10/31 23:53:40
SLIMEの起動画面はもう少し静かにならんのか

370:デフォルトの名無しさん
06/10/31 23:55:52
Win32版sbclがshift-jisに対応することを切に願う。

371:デフォルトの名無しさん
06/11/01 00:14:10
You can do it!

372:デフォルトの名無しさん
06/11/01 05:02:59
>>370
書いた。

373:デフォルトの名無しさん
06/11/01 07:44:45
>>369
Emacs 側の変数設定でできた気がする

374:デフォルトの名無しさん
06/11/01 08:18:38
アニメーションを抑制するなら、
(setq slime-startup-animation nil)

375:デフォルトの名無しさん
06/11/02 01:38:52
>371-372
shift-jis使えるの?

376:デフォルトの名無しさん
06/11/02 02:03:59
>>375
いつもの人がパッチ送ってくれてたよ。

CLX で日本語を表示させたくて、文字コードを JIS に変換する処理を書いた事があるけど、
ここら辺を参考にすれば自分で作るのも簡単だと思う。

URLリンク(sbcl.cvs.sourceforge.net)

377:デフォルトの名無しさん
06/11/02 03:06:02
パッチ当てれば普通に使えるみたい。
Windows で動かすにはコードページを alias として追加する必要があるのかな。

$ echo $LANG
ja_JP.SJIS
$ ./src/runtime/sbcl --core output/sbcl.core
This is SBCL 0.9.18.18, an implementation of ANSI Common Lisp.
More information about SBCL is available at <URLリンク(www.sbcl.org)

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
* sb-impl::*default-external-format*

:SJIS
* (coerce "表示" 'list)

(#▼U8868 #▼U793A)
* (string-to-octets "表示")                              

#(149 92 142 166)

378:デフォルトの名無しさん
06/11/02 18:50:54
実行ファイル作れるの?

379:デフォルトの名無しさん
06/11/02 23:03:14
>>378
作れるよ。ってか、もしかしてメーリングリスト見ながら書いてるノカ?
Windows でも cygwin/mingw があればいけるらしいけど…

380:デフォルトの名無しさん
06/11/02 23:13:35
えーと SBCL の話でいいのかな。
これの実行ファイル作成は
copy /b sbcl.exe + runtime.core runtime.exe
と同等の処理なので、必要なのは SBCL 自体だけ、cygwin も mingw も不要です。

381:デフォルトの名無しさん
06/11/02 23:28:36
ソカ、スマソ

382:デフォルトの名無しさん
06/11/03 00:18:38
それはともかく、Win32 で SBCL 使ってる香具師は
(sb-win32::ansi-codepage)
の内容を当てた patch を sbcl-devl に送れ。
1.0 で日本語 Windows がサポートされるかどうかの瀬戸際だぞ。

383:デフォルトの名無しさん
06/11/03 00:28:42
そういや SBCL は 1.0 の前にソースコードのクリーンアップがあると思ってたけど、
このままリリースに突入するっぽいね。kludge 系は潰すのかと思ってた。

384:デフォルトの名無しさん
06/11/03 00:49:23
何ヶ月か前の議論見ればわかるけど、SBCL が 0.10 ではなく 1.0 になるの
にはマーケティング的意味しかないよ。
とは言え多数の「いつかやろう」を「1.0 までにやろう」に push したのは
確かだから、充分に意味のあることだったと思う。

385:デフォルトの名無しさん
06/11/03 01:12:12
特に stabilize する意図は無いんだ。stable 版が出たらパッケージでも作ろうかとしてたんだけど、、、
1.0 は一般への影響はそれなりにあるのかな? SBCL を授業で使う大学とか出て来ると良いね。

386:デフォルトの名無しさん
06/11/03 09:49:45
quack.elに慣れると閉じ括弧を全部 ] で打つ癖がついてしまって困る。

387:デフォルトの名無しさん
06/11/04 21:04:21
SBCL on Windows でも日本語が使えるようになったよ。
URLリンク(article.gmane.org)
URLリンク(with2ch.net)
1.0 までにマージされるといいけど。

388:デフォルトの名無しさん
06/11/04 22:05:37
>>387
GJ!

389:デフォルトの名無しさん
06/11/06 01:14:32
SBCLのSTYLE-WARNINGは黙らせられないの?

390:デフォルトの名無しさん
06/11/06 22:06:13
schemeで、
(hoge a b c (hoge d e f) g)
のような式を書いたときに、
hogeが自分の括弧のネストレベルを判断して
動作を変えるようにしたいと思っています。
上の例でいえば、
1番目のhogeがネストレベル1の動作
2番目のhogeがネストレベル2の動作
をするようにしたいんですが、
やっぱりevalを定義し直すしか無いですか?

391:デフォルトの名無しさん
06/11/06 22:51:51
何をやりたいか、ではなく、何故そういうことをやりたいか、を書いた方が有用な助言が
得られる可能性は高いだろう。

392:デフォルトの名無しさん
06/11/06 23:14:18
>>391
俺は>>390じゃないけど、デバッグ用のユーティリティだと予想。

393:デフォルトの名無しさん
06/11/07 02:14:50
マクロにしろ関数にしろ、なんか変数にネストレベルを持って
それによって分岐するようにすればできるんじゃないの。

394:デフォルトの名無しさん
06/11/07 04:32:03
ネストの深さで動作が変わるのか?
読みにくそうだな。。。

>>390>>391のレスにきちんと応えてほしい。

395:デフォルトの名無しさん
06/11/08 00:11:03
DrSchemeを触り始めたんですが、補完はどうやったらできるんですか?
Ctrl+Spaceを押すと「自動拡張」とステータスバーに出るけど、
意味がわからない。何かキーを押すと普通に入力されるだけだし……

396:デフォルトの名無しさん
06/11/09 22:00:44
URLリンク(journal.mycom.co.jp)
Cusp の紹介。

内容には色々言いたい点もあるけど...

397:デフォルトの名無しさん
06/11/12 18:42:22
lambda age

398:デフォルトの名無しさん
06/11/12 20:08:26
LISPでJavaのtoStringメソッドのような機構ってどのようなものがありますか?

399:デフォルトの名無しさん
06/11/12 20:30:00
(format nil "~a" ■)

400:デフォルトの名無しさん
06/11/12 20:34:30
(write-to-string ■)

401:デフォルトの名無しさん
06/11/13 00:16:24
(defmethod print-object ((object ■) stream)
...)

402:デフォルトの名無しさん
06/11/13 01:51:59
なんかエロイ

403:デフォルトの名無しさん
06/11/13 01:54:35
○○な部分を■で隠してあるんだな

404:デフォルトの名無しさん
06/11/16 21:04:25
SICP is dead.


405:デフォルトの名無しさん
06/11/16 21:55:51
Why?


406:デフォルトの名無しさん
06/11/16 23:34:42
MIT is phasing out 6.001.


407:デフォルトの名無しさん
06/11/17 01:47:50
後継の講座は Python らしいね

408:デフォルトの名無しさん
06/11/17 01:50:43
CMUCL か

409:デフォルトの名無しさん
06/11/17 01:57:32
そのボケ方は
Lisper 以外にはまったく通じないんだぜ?

410:デフォルトの名無しさん
06/11/17 02:00:38
ここに Lisper 以外がいるとでも?

411:デフォルトの名無しさん
06/11/17 18:58:34
リスパー伊東

412:デフォルトの名無しさん
06/11/17 19:06:51
CASIO AI-1000

413:デフォルトの名無しさん
06/11/18 06:20:48
schemeのcurrent-continuationは失敗だと思う。
それだったらgccみたいなLabel as Valueとcurrent-environment
を導入してくれた方がありがたい。
協調型スレッドもどきを作れたとしても、コストが掛かりすぎる。
IPとその時の環境が見えればccは実装できるんだから、
個別に取得できるようにすべきだった。


414:デフォルトの名無しさん
06/11/19 06:27:57
今までSchemeには予約語がないと思っていたけど、R5RSを見ると
defineとかの<syntactic keyword>は<variable>に含まれないので
予約語なのね。大抵の処理系では束縛できてしまうから、知らなかった。

415:398
06/11/19 12:16:10
(format nil "~a" ■)

cのfprintfみたいなもの。

(write-to-string ■)

javaのSystem.out.print()みたいなもの

(defmethod print-object ((object ■) stream)
...)

オブジェクト指向をした場合の
JavaのtoStringのメソッド的なもの

と理解しててよいのでしょうか?

416:デフォルトの名無しさん
06/11/19 16:15:06
アナロジーは理解の助けになる場合もあるが、例え話だけで理解したつもりになるのは
危険でもある。「理解しててよいのでしょうか」と聞かれたら「駄目」と答えるだろう。
それ以上のことをきちんと知りたいなら、ちゃんと勉強したほうがいい。

417:デフォルトの名無しさん
06/11/19 16:17:39
つか write-to-string の例えは違うんじゃね

418:デフォルトの名無しさん
06/11/19 16:30:17
toString() に一番近いのは write-to-string だろうな

419:デフォルトの名無しさん
06/11/20 01:18:44
何でみんな MIT Scheme 使わないの?

420:デフォルトの名無しさん
06/11/20 01:23:20
なんで MIT Scheme 使うの?

421:デフォルトの名無しさん
06/11/20 01:38:47
Scheme 界では数少ないネイティブコンパイラやん。
他はネイティブでも JIT とかトランスレータとかやん。

422:デフォルトの名無しさん
06/11/20 01:48:42
その割に遅かった希ガス(最近試してないけど)

423:デフォルトの名無しさん
06/11/20 04:03:44
同じく最近試してないけど、unicode 周りが悪夢のようなことになっていたような。

424:デフォルトの名無しさん
06/11/20 06:44:12
FreeBSD 6 で SBCL 使ってる人、テストに協力してくだされ。

URLリンク(article.gmane.org)
URLリンク(article.gmane.org)

425:デフォルトの名無しさん
06/11/20 13:22:45
>>424
weft didn't produce an output.
といって表示されねーので説明きぼんぬ。

426:デフォルトの名無しさん
06/11/20 14:37:56
>>425
SBCL のスレッドを FreeBSD で動かすパッチです。

Google Groups の archive
URLリンク(groups.google.com)
URLリンク(groups.google.com)

427:デフォルトの名無しさん
06/11/20 15:56:58
caseを試してみましたが、
SCMでは
(case 'hoge (('hoge) #t) (else #f)) => #f
となってしまいます。
(eqv? 'hoge 'hoge) => #t
なのに、なぜ最初の式では#tが返らないのでしょうか。

428:デフォルトの名無しさん
06/11/20 16:04:19
(case 'hoge ((hoge) #t) (else #f)) => #t
caseラベルは定数しか書けないので、暗黙にquoteされる

429:427
06/11/20 16:31:41
>428
教えていただいてから気がついて、
r5rs 7.3のcaseのコードを読み直してみたら、
(if (memv key '(atom ...)) ...
となっているのを確認しました。
ありがとうございます。

430:デフォルトの名無しさん
06/11/20 23:12:24
>>413
同意

431:デフォルトの名無しさん
06/11/20 23:46:49
>>424
CVS に取り込まれたみたいだね。お疲れさん。
俺は FreeBSD ユーザじゃないので試せないけど。

432:デフォルトの名無しさん
06/11/21 07:27:09
>>424
乙。

433:デフォルトの名無しさん
06/11/21 11:28:26
>>424
神パッチキターーこれで FreeBSD でもスレッドが!! うひょぉ


434:デフォルトの名無しさん
06/11/23 08:41:03
ところで、昨日一昨日のFranzセミナーの件はどうなったの?

435:デフォルトの名無しさん
06/11/23 09:48:12
>>413
禿げ上がる程同意

436:デフォルトの名無しさん
06/11/23 15:16:59
>>435が10年後に悔やむスレになりそうだ。


437:デフォルトの名無しさん
06/11/23 15:31:18
誰かLispで2chブラウザ作って!

438:デフォルトの名無しさん
06/11/23 15:53:13
>>437
あるだろ。

439:デフォルトの名無しさん
06/11/23 18:36:08
詳しく

440:デフォルトの名無しさん
06/11/23 18:47:02
navi2ch?

441:デフォルトの名無しさん
06/11/23 19:30:41
なるほど、そゆことか

442:デフォルトの名無しさん
06/11/23 22:47:16
>>437
rep2好きの俺だがKahuaとかで2chブラウザ作ったら面白そうだな

443:デフォルトの名無しさん
06/11/24 02:27:42
Kahuaで2chブラウザとかワロスwwwwwwwwwwwwwww

444:デフォルトの名無しさん
06/11/24 02:45:21
なにそれ?Webアプリになってるってこと?

445:デフォルトの名無しさん
06/11/24 08:37:19
>>444
rep2ってphpでかかれた2chブラウザって言うか補助サーバがあるんよ。
(ブラウザって言うのにすごい抵抗があるんだが)


446:デフォルトの名無しさん
06/11/26 18:51:55
Schemeで

(string->???? "(lambda () 5)")
> 5

となるような関数ってありますか?

447:デフォルトの名無しさん
06/11/26 19:06:31
作ればある。でも宿題ならもうちょっとちゃんと問題文を書かないと…

[リストの三番目を返す?]
gosh> (define (string->???? str) (caddr (read-from-string str)))
string->????
gosh> (string->???? "(lambda () 5)")
5

[関数を評価する?]
gosh> (define (string->???? str) ((eval (read-from-string str) ())))
string->????
gosh> (string->???? "(lambda () 5)")
5


448:446
06/11/26 19:21:57
>>446

ありがとうございました。自作CUIにコピペさせて頂きます。

で、[関数を評価する]がしたかったのです。
類推で (string->list string) としたら
◯| ̄|_ だったもので…

449:デフォルトの名無しさん
06/11/26 22:10:11
◯| ̄|_がかえってくる関数

450:デフォルトの名無しさん
06/11/27 09:36:00
なるほどなあ。
string->number等との類推で考えればstring->listをread-from-stringみたいに
考えるのも一つの解釈か。

451:デフォルトの名無しさん
06/11/27 12:57:27
.NETでつかえるSchemeの実装ないですか
それあればそれなりに強力なライブラリと使える言語の両方が手に入るのに・・・(´・ω・`)

452:デフォルトの名無しさん
06/11/28 04:02:35
触ったことはないけど。
URLリンク(www.ccs.neu.edu)

453:デフォルトの名無しさん
06/11/28 06:44:04
◯| ̄|_
○| ̄|_

微妙に丸の文字が違うな。

454:デフォルトの名無しさん
06/11/28 07:01:54
   ◯◯◯
 ◯◯◯◯◯
◯| ̄|_ ̄ |◯ プカプカ
~~~~~~~~~~~~~~~~~~~~~~~~

455:デフォルトの名無しさん
06/11/29 11:37:32
◯| ̄|_
○| ̄|_
◯| ̄|_
○| ̄|_
◯| ̄|_
○| ̄|_
  |
  |
  |

456:デフォルトの名無しさん
06/11/30 15:15:55
SBCL 1.0!

457:デフォルトの名無しさん
06/12/01 05:32:39
遂に来たね。

458:デフォルトの名無しさん
06/12/01 20:20:00
srfiのtexiって無いですか?
infoでも良いんですが。
できれば全部揃っているとうれしいです...

459:デフォルトの名無しさん
06/12/01 20:34:05
URLリンク(slashdot.jp)

460:デフォルトの名無しさん
06/12/02 09:17:04
うわぁ。さすがスラドだね。

461:デフォルトの名無しさん
06/12/02 12:48:20
あらためて思うけどCLの実装系ていいよね
ちゃんと仕様のあるバカでかい関数群が確実にあるんだから

462:デフォルトの名無しさん
06/12/02 13:20:10
>>461
そうだね。よく「仕様が巨大」とか言われるけど、今の基準ではそれほどでもないと思う。
(JavaのクラスライブラリとかSRFIを全部入れたSchemeのほうが大きいんじゃないかな)
でも、そろそろXMLとかネットワークとかのいまどきの機能を加えたCLtL3を制定してほしい。

463:デフォルトの名無しさん
06/12/02 19:48:53
とりあえず「言語仕様」と「ライブラリ仕様」を分けて~
んで「ライブラリ仕様」は小刻みにupdateさせてやってほしい

464:デフォルトの名無しさん
06/12/02 22:12:11
CLRFI というのがあるけど流行ってないねえ。

標準化って実装するよりもパワーが必要だから、asdf を使って主要な処理系で
動くようにすればそれでいいじゃないかということなのかも。

465:デフォルトの名無しさん
06/12/03 01:11:03
lispはマクロが強力だとのことなので、
例えば(cl-to-scheme cl-func)みたいな感じでclのライブラリをscheme用に変換してくれるマクロがありそうな気がしますがどうなんですか?
また、schemeはコンパイラがないので、sbclとかを使うために、
(scheme-to-cl scheme-func)みたいなマクロがあると便利にlispはマクロが強力だとのことなので、
例えば(cl-to-scheme cl-func)みたいな感じでclのライブラリをscheme用に変換してくれるマクロがありそうな気がしますがどうなんですか?
また、schemeはコンパイラがないので、sbclとかを使うために、
(scheme-to-cl scheme-func)みたいなマクロがあると便利におもいますが、
存在するのでしょうか?おもいますが、
存在するのでしょうか?

466:デフォルトの名無しさん
06/12/03 01:14:43
lispはマクロが強力だとのことなので、
例えば(cl-to-scheme cl-func)みたいな感じでclのライブラリをscheme用に変換してくれるマクロがありそうな気がしますがどうなんですか?
また、schemeはコンパイラがないので、sbclとかを使うために、
(scheme-to-cl scheme-func)みたいなマクロがあると便利におもいますが、
存在するのでしょうか?

467:デフォルトの名無しさん
06/12/03 03:24:03
まぁ、CL で Shceme を実装することは可能だし、Scheme で CL を実装することもできるからな。
>>466 の言うようなマクロはどっちも可能だが、CL と Scheme は思想が異なるのでメリットはあまりない。
CL で Scheme を実装するのは結構簡単(Norvig の教科書だと 10 ページくらいでつくってた)なので
学生の課題などで結構見かける。 cl-to-scheme はメリットがあまりないのと、CL を実装するコストが
大きいのでだれもやらないんじゃないか。

468:デフォルトの名無しさん
06/12/03 03:26:19
2chもまともに使えない奴には教えてやらん

469:デフォルトの名無しさん
06/12/03 05:12:53
schemeにはコンパイラが無いなんてどこで聞いてきたんだい。

MIT-Scheme
Larceny
Chez
Chicken
Stalin
Bigloo
Gambit
PLT

あと何かあったっけ。歴史的にはRabbitとかTとか。

470:デフォルトの名無しさん
06/12/03 10:33:14
つうか荒しなんじゃね? c.l.l で暴れてる gavino みたいなタイプの。

471:デフォルトの名無しさん
06/12/03 12:03:45
Common Lisp と Scheme とでは reader の仕様が違うから、マクロでの実装は
無理なんじゃないかな。

472:デフォルトの名無しさん
06/12/03 12:22:36
URLリンク(unit.aist.go.jp)
テレビで見るたびに思ってたんだけど、このロボットはリスプっぽいよね

473:デフォルトの名無しさん
06/12/03 13:47:40
>>470
c.l.lなんて流量たくさんでとても読めない。どうやって読んでるの。

474:デフォルトの名無しさん
06/12/03 14:13:29
『Scheme について』
URLリンク(cl-www.msi.co.jp)

やっぱり Scheme は学習用ってことなのかね

475:デフォルトの名無しさん
06/12/03 14:30:33
>>459-460
あーそれは俺が酔っ払いながらタレコんだやつだな。
しかし、自分では実装側にいるつもりだったのに、使ったことない事情通扱い
されてたのにはまいった。

476:デフォルトの名無しさん
06/12/03 14:54:22
>>469
CL でいう SBCL みたいな位置付けのが無いね。
日本人はみんな Gauche を使ってるイメージだけど。

477:デフォルトの名無しさん
06/12/03 15:36:34
他言語との比較はいいけど、lisp 言語族の中くらいは仲良くやってほすぃ…

478:デフォルトの名無しさん
06/12/03 16:09:20
>>474
その判断をするのはスキーム設計者の反論を聞いてからの方が良いのではないかな?

479:デフォルトの名無しさん
06/12/03 17:23:57
反論聞きたいですねー

480:デフォルトの名無しさん
06/12/03 17:36:46
反論じゃないけど、継続(continuation)と関係あるような気がするんだよねー

481:デフォルトの名無しさん
06/12/03 17:57:36
schemeはいつまで経ってもオモチャレベルから脱しきれない印象があるんだよね。
これは多くの人が感じていることだと思う。
ただ、口に出すとはばかられるから、まあ、サイレントマジョリティって感じかな。

482:デフォルトの名無しさん
06/12/03 18:36:23
黒田寿男って何様のつもりなんだか・・・。

483:デフォルトの名無しさん
06/12/03 18:52:26
Scheme 好きも CL をバカにしたり見下す人が多いからお互い様だろ。
いちいち気にしないほうがいいと思うよ

484:デフォルトの名無しさん
06/12/03 18:55:42
ぜひ>474に対する意見聞いてみたい。
c.l.sあたりに簡単な翻訳つけて投下すれば良いんだろうか。

485:デフォルトの名無しさん
06/12/03 19:02:26
>>483
お互い様か。そうだったね。あまりいい評判がない guile だけど Linux で
成果をあげようと精進してるんだろうなーと思い直せた。黒田寿男みたいに
プロパガンダに走らないきちんとした議論をするには Scheme にもきちんと
したアプリケーションが必要なんだろう。ところで Scheme で書かれた一番
大きいアプリケーションってなんだろう?

486:デフォルトの名無しさん
06/12/03 19:05:08
>>484 それはウザいだけで何も得るところはないのでやめとけ。
Lsip-1 vs Lisp-2 とか定番のフレームになるだけ。

487:デフォルトの名無しさん
06/12/03 19:12:22
>>484
下らん煽りうぜーよ。好きなほう使えばいいだけじゃん。
そんな論争で得られるものなんてもうほとんど残っていない。
俺はCL派だが、Schemeを攻撃しようなんて思わんぞ。

488:デフォルトの名無しさん
06/12/03 19:13:01
煽る奴はたいていどちらかの経験しかない奴だな

489:デフォルトの名無しさん
06/12/03 19:19:18
これが後の黒田発言である。

490:デフォルトの名無しさん
06/12/03 19:29:26
LL言語批判くらいで止めとけばよかったのにねー

491:デフォルトの名無しさん
06/12/03 21:59:03
黒田の発言ってこれかな

URLリンク(practical-scheme.net)

> この事例を解説された数理システムの黒田氏は、懇親会とかでも
> 「SchemeなんかをCLと一緒にしないで欲しい。」とSchemeをけちょんけちょんに
> おっしゃるわけで、とても悔しいわけだが、それでもとにかく実際の業務を通して
> 実力を示しておられるからこそ、あそこまで自信を持って主張できるのだろう。

しかし Scheme 好きの人間の前でこれを言うってすごいなぁ

492:デフォルトの名無しさん
06/12/03 22:33:07
おまえらおちつけよ。もうちょっと心を広くもてよ。
どっちがというと CL のセミナーで CL マンセー発言を聞いて気分を害するほうがどうかと…


493:デフォルトの名無しさん
06/12/03 23:57:12
2 蓑輪 太郎Mona OSにおける次世代Schemeシェルの開発

詳細キボンヌ

494:デフォルトの名無しさん
06/12/04 00:09:01
Common Lisp 好きだけど、スクリプト言語批判の ANSI CL には無駄な仕様が
*1つも* 無いってのはどうかと思った。
loop マクロはともかく、X3J13 自身が deprecated だと言ってる -if-not 系
の関数とか、format の ~R や ~P などの「それは本当にフォーマット文字列で
指定すべきことなのか?」な仕様とか。

495:デフォルトの名無しさん
06/12/04 00:23:29
~r のような冗談機能はやっぱり必要ですよ

496:デフォルトの名無しさん
06/12/04 01:30:39
>>494 「Lisp の良いとこを取ろうと思ったら~」省略していい無駄な仕様はないってことだろう。
つうか、後半の文章を読むとコンパイラ周りやスペシャル変数なんかを備えずに、ほんの一部の機能だけを
実装しただけで、Lisp の良いところを備えたとか Lisp を超えたとか主張するのを苦々しく思ってたんだろうね。

ふと、R な言語の人の昔 Lisp セミナーの印象に関する記事読んで苦々しく思ったのを思いだした。
> ソースは全然見てないんだけど、印象からは、AllegroServeの完成度は、 WEBrickといい勝負と見た。
発表者の力量不足もあったかもしれんけど、そりゃねーだろ。

497:デフォルトの名無しさん
06/12/04 03:40:18
>>474 のマクロが作れないってどういう事?

498:デフォルトの名無しさん
06/12/04 03:46:15
schemeはdefine-syntax系だけでdefmacro相当なのはないんじゃないっけ?
まあだいたい処理系毎にあるんだろうけど。


499:デフォルトの名無しさん
06/12/04 03:52:30
Scheme は Lisp ではないってところが気になる。

500:デフォルトの名無しさん
06/12/04 03:56:41
SchemeはCommon Lispではない、の間違いではないかと。

501:デフォルトの名無しさん
06/12/04 04:09:14
>>474 のは、>>486 みたいな理解でおけ?
Scheme の勉強始めようと思って、環境をつくろうとしてたところなので、
出鼻をくじかれたような感じで。

502:デフォルトの名無しさん
06/12/04 04:35:48
つまんでみれば実際どうなのかわかるんじゃねえの?

503:デフォルトの名無しさん
06/12/04 05:11:11
つまんだくらいで、lispはプログラムを書くプログラムが書けるってのがわかるのか…
しかも、scheme と common lisp の違いまで。

504:デフォルトの名無しさん
06/12/04 06:18:38
少なくとも、つまんでみなきゃなんにもわからんだろ?

505:デフォルトの名無しさん
06/12/04 06:54:34
> 少なくとも
ホントに「少なく」なったな

506:デフォルトの名無しさん
06/12/04 07:02:49
つまんね

507:デフォルトの名無しさん
06/12/04 07:05:03
つまんでますよ、どっちも。

508:デフォルトの名無しさん
06/12/04 07:42:32
まぁ、自分に都合の悪い流れは誰でもつまらない。

509:デフォルトの名無しさん
06/12/04 13:16:10
>>501
少なくともまだ勉強してない人には関係ない話だ
万一Schemeが無駄なものであってもSchemeの勉強は無駄にはならないから安心して勉強汁w

510:デフォルトの名無しさん
06/12/04 14:37:19
どれだけ立派な肩書きがあろうと自社の製品のためだけに他を中傷して自分の利益を
はかろうとする人間は技術者として失格だと思う。自分のオナニーのために他人を
レイプして楽しんでるように見えた。

511:デフォルトの名無しさん
06/12/04 14:57:46
>>510
それコの業界の人ほとんどみんな当てはまっちゃうよ……(LinusタンからBillGまで)。

512:デフォルトの名無しさん
06/12/04 16:57:55
>>510
レイプした時点で既にオナニーではないと思う

513:デフォルトの名無しさん
06/12/04 17:23:41
レイプは、相手の気持ちを無視して自己完結しているという意味で、
オナニーと同類。

514:デフォルトの名無しさん
06/12/04 21:24:04
つかshiroさん呼んでるくせに普通に失礼だよなw

515:デフォルトの名無しさん
06/12/04 21:38:43
「朝まで生テレビ」方式だな。意図的に話が噛み合わないとを期待したメンバ。w

516:デフォルトの名無しさん
06/12/04 23:36:19
>>514
呼んではないみたいよ
ハワイからの中継でやったみたい

517:デフォルトの名無しさん
06/12/05 06:22:54
FreeBSDで動くお薦めのCommon Lisp処理系を教えてくだされ。

518:デフォルトの名無しさん
06/12/05 08:20:56
sbcl

519:デフォルトの名無しさん
06/12/05 08:31:53
ラムダ式の意味について質問です.
λxyz.MNO という式は,以下のコードと同じことを意味している
のでしょうか?

(lambda (x y z)
((M N) O))

520:デフォルトの名無しさん
06/12/05 09:00:28
日本語でおk

521:デフォルトの名無しさん
06/12/05 14:02:07
>>519
違う。

522:519
06/12/05 14:49:40
では,λxyz.MNO というラムダ式を Scheme の表現に対応
させて表すことはできるでしょうか? できるとしたら,どんな
表現になるでしょうか?


523:デフォルトの名無しさん
06/12/05 14:52:43
M、N、O、がそれぞれ何かによる

524:デフォルトの名無しさん
06/12/05 15:21:54
λxyz を (lambda (x y z) ...) と書いちゃう時点でだめだめ。
細切れで質問されても面倒なだけだから宿題なら問題文を全部書け。

525:519
06/12/05 17:25:21
>>523
M, N, O は,それぞれ任意のラムダ式,ではどうでしょう?

>>524
学生ではないので...

ラムダ計算がどんなものなのか知りたくなって本など読み始めたんです
が,入り口の記法のところですでにつまづいているので,Scheme に対
応させれば多少は理解しやすくならないかと思って質問しています.

526:デフォルトの名無しさん
06/12/05 18:50:32
さあもりあがってまいりました

527:デフォルトの名無しさん
06/12/05 18:51:17
カリー化云々言わなけりゃ合ってね?

528:デフォルトの名無しさん
06/12/05 19:01:18
ラムダ計算=LISP ではないので、スレ違い。
ラムダ計算の話がしたいのなら、数学とかの板へ池。

529:デフォルトの名無しさん
06/12/05 19:07:48
(lambda (x) (lambda (y) (lambda (z) ((M N) O)))) じゃね?

530:519
06/12/05 21:43:21
>>527
> カリー化云々言わなけりゃ合ってね?

なるほど.カリー化を省略しなければ,

>>529
> (lambda (x) (lambda (y) (lambda (z) ((M N) O)))) じゃね?

になる,っていう理解でいいんですかね.

>>528
数学板だと,今度は Scheme がスレ違いっぽいので...

Scheme や Lisp をやってから理論的背景のラムダ計算に興味を
持つ人って多そうですし,ラムダ計算に詳しい人も多いんじゃ
ないかと思ってここで聞いてみました.


531:デフォルトの名無しさん
06/12/05 23:36:32
λ式と対応させるなら haskell の方が楽だと思うけど

532:デフォルトの名無しさん
06/12/06 01:12:19
λ計算を学ぼうとする Schemer への助言としては、lambda 式にたとえて
理解しようとするのはやめとけ。
たとえば、λxyz.z x y ≡ λxy.λz.z x y つまり cons というのは
(lambda (x y z) (z x y)) と置き換えてちゃわからんぞ。

533:デフォルトの名無しさん
06/12/06 01:41:46
お前にはセンスが無いの一言で片づければOK


534:デフォルトの名無しさん
06/12/06 02:29:35
533 がセンスありそうには見えない

535:デフォルトの名無しさん
06/12/06 03:48:42
>>533の1行でセンスの有無をはかれるとは思えないが、
それをはかれるつもりでいる>>534の1行レスからは
負のセンスに対する悪寒みたいなもんを感じる。

536:デフォルトの名無しさん
06/12/06 11:16:07
(λ計算の)λ式において関数抽象 λ は結合がゆるく,関数適用は結合がきつくて左結合
さらに λxy.M は λx.(λy.M) の略記
だから λxyz.MNO = λx.(λy.(λz.MNO)) = λx.(λy.(λz.((MN)O)))

λ計算ではCurry化は当たり前のように使われるけど,
SchemeにはCurry化がないから ; つまり (lambda (x y) ...) != (lambda (x) (lambda (y) ...))
λ計算の実例としては不適当
有名な "SKK = I" を試そうとS, Kを定義して ((S K K) 'x) とやっても途中で「引数が足りません」になっちゃうね
Curry化のあるOcamlかHaskellをお薦めする

ここにはλ計算を知ってる人が多いのは確かだと思うよ

537:519
06/12/06 22:45:28
>>532
> λxyz.z x y ≡ λxy.λz.z x y
がラムダ式の規則でそうなる,というのはわかります.
また,
> λxy.λz.z x y つまり cons
も,SICP の Exercise 2.4 あたりにあるように,
(define (cons x y) (lambda (z) (z x y)))
の話だろうという見当はつきます.でも,
> λxyz.z x y ≡ λxy.λz.z x y つまり cons
となると何が言いたいのかよくわからないのですが...
また,
> (lambda (x y z) (z x y))
というのはどのラムダ式を置き換えてるんでしょうか?
λxyz.z x y を
(lambda (x) (lambda (y) (lambda (z) ((z x) y))))
と置き換えてもわからない? なにが???

>>536
解説ありがとうございます.
どうもカリー化が鍵の一つのようなので,
>>531
Haskell もぼちぼち勉強してみます.

538:デフォルトの名無しさん
06/12/06 23:59:54
haskell だとYコンビネータが

y f = f (y f)

で終わりなのが気持ちいいな

539:デフォルトの名無しさん
06/12/08 23:15:57
黒田がスクリプトをボロクソに言っているヤツってこれか
URLリンク(cl-www.msi.co.jp)

Common Lisp 教の狂信者だなw

540:デフォルトの名無しさん
06/12/08 23:48:25
孤高の絶対王者という己の脳内ポジションを
アジ文章で楽しく消費してみました、ってだけの文章だな・・・。
理解されたいのかされたくないのか、とても微妙な乙女心を感じる。

541:デフォルトの名無しさん
06/12/09 19:57:43
>>539
これ結局のところ
現場で使って大丈夫なんですか?(ほかの連中ついてこれるの?の意)
と問われたときに困るだけなんだよね。

文句言う位なら普通に仕事でつかってアピールできるように浸透させないといけないんだけど
それをやるのは俺様の様な人間のすることではないって感じで反感しかわかなくなるんだよね。

<チラシの裏>
好きな言語ほどその言語の愛好者が怖い人やキモチワルイ人ばっかりな今日この頃だなぁ~
</チラシの裏>


542:デフォルトの名無しさん
06/12/09 21:22:15
できる人は協調するより自分で全部やったほうが速いのも事実

543:デフォルトの名無しさん
06/12/09 22:10:17
Common Lispに標準規格が存在する利点は
それができる人間(できなきゃ学べ)前提の仕事場にできるってことだろ。
その条件に当て嵌らない奴ばっかの環境にわざわざ引き降ろして論じても
意味がない。

> 文句言う位なら普通に仕事でつかってアピールできるように浸透させないといけないんだけど
> それをやるのは俺様の様な人間のすることではない

当然だろ。後者の環境にいる決定権のない奴固有の事情なのだから、その解決を
既にそういう(前者の)環境にいる人間に要求するのは筋違い。

544:デフォルトの名無しさん
06/12/09 22:40:06
規格書が読めるレベルがようやく一人前、だとは思う
だけどそのレベル以下の奴って山ほどいるんだよな…

545:デフォルトの名無しさん
06/12/09 23:09:17
>>543
> Common Lispに標準規格が存在する利点は
> それができる人間(できなきゃ学べ)前提の仕事場にできるってことだろ。
あまり現実的でない利点だと思う。
標準規格が無かろうが「できなきゃ学べ」は仕事場の前提であり、
しかし標準規格があろうが、その前提がまっとうに機能する保証はあまりない。

「できない人を居丈高に自信満々に罵る際の、精神的後ろ盾」
という程度の利点だね、これは実質的には。

546:デフォルトの名無しさん
06/12/09 23:18:07
しかしさあ、ANSI X3.226-1994 が実用的かというと、イマドキの用途に使うに
は国際化もソケットもスレッドも正規表現も XML もないわけで、結局実装次第
なわけだろ。

んで、実装次第ということであれば Scheme だってちゃんと選択肢に入るんじゃ
ないか? 言語仕様自体はちゃんと標準化されてるわけだし。

まあ Scheme で hygienic なマクロが書けないなんて言っちゃう人の Scheme
批判なんてまともに読むだけ無駄なのかもしれんが。

547:デフォルトの名無しさん
06/12/10 00:11:46
>>546
正規表現はリーダーマクロがあるから不要、
XMLは所詮劣化S式だから無視、とか言うんじゃね?w
国際化はなんて言うのか聞きたいねぇ。

548:デフォルトの名無しさん
06/12/10 00:31:49
>>547
>とか言うんじゃね?w

知ってるんじゃん…

549:デフォルトの名無しさん
06/12/10 00:57:42
なんかムキになってる?

>>545
仕事でつかう事を考えれば、なるべく厳密な仕様があったほうがいいだろう?
言語のコア部分が実装依存って結構キツいよ。で、仕様は最小限であるべき、と
できるだけリッチであるべきという思想の違いだろ。

>>546
名前の衝突とかいってるから r5rs にパッケージシステムがないっつー事をいってんじゃない?
複数人で並行で別々のモジュールを作るとさ、パッケージがないときついからな。あと、俺たち
Scheme 派も CL の末尾再帰の最適化が処理系依存だとか文句いってるからおたがいさまだろ。
不毛なフレームを避けるためにも、かるくスルーすればいいだろう。

あと、ソケットとか XML は普通言語仕様には入れないと思うよ。r6rs にも入らないだろう。
つうか、そんなの入ったらヤダ。r7rs くらいには並列計算が進歩してネットワークあたりまえ
とかなってるかもしれんけど、少なくとも今はねぇ。


550:デフォルトの名無しさん
06/12/10 01:39:47
いやホント、なんでそんなムキになってるの

551:デフォルトの名無しさん
06/12/10 01:47:41
べつにレベル低い話じゃなけりゃムキになってもいいと思うけど

552:デフォルトの名無しさん
06/12/10 02:11:02
でも、見た目よりレベル低いと思うよ。単に頑固な人じゃないかな。

553:デフォルトの名無しさん
06/12/10 02:18:18
どのへんがレベル低いか教えて

554:デフォルトの名無しさん
06/12/10 02:35:51
人としてだと思う


555:デフォルトの名無しさん
06/12/10 02:38:25
>>553
規格をユーザーとしてしか読んでない。たぶん CLOS の実装すらしたことない。

556:デフォルトの名無しさん
06/12/10 02:46:21
なるほど、実装経験者でなければ
レベルが低い議論にしかならないということですね。

557:デフォルトの名無しさん
06/12/10 04:18:26
>>556
馬鹿な誤読なのか馬鹿な皮肉なのが微妙だけど、
いずれにせよピント外れだなぁそれ。

558:デフォルトの名無しさん
06/12/10 09:37:25
>>545
> その条件に当て嵌らない奴ばっかの環境にわざわざ引き降ろして論じても
> 意味がない。

自分の都合と合わないことは直後に書いてあっても読まないのかww

559:デフォルトの名無しさん
06/12/10 10:13:40
その箇所が543の言い分をどう支えるのか、まったく意味不明だけど。
文末に草生やすくらい「じしんまんまん」みたいだから、よかったら説明してよ。

560:デフォルトの名無しさん
06/12/10 10:31:17
URLリンク(cl-www.msi.co.jp)
で書かれていることはgensymで他と重ならない名前を作り出せるかってこと ?

で、ほとんどのScheme(少なくともGaucheでは)
(規格には入ってないオプショナルなものだけど)
できるってことでおk ?

でもScheme的には同様なことはdefine-syntaxつかえよって
いう認識でよろしいでしょうか ?

561:デフォルトの名無しさん
06/12/10 12:08:58
本当に不毛な論争になったね。

Lisp & Schemeに栄光あれ。
pythonに負けるな…

562:デフォルトの名無しさん
06/12/10 13:37:42
不毛はC++の役割。
Lisp系はカッコつけなきゃね。

563:デフォルトの名無しさん
06/12/10 13:52:02
ズッ

564:デフォルトの名無しさん
06/12/10 14:46:31
(/ 1 4)

565:デフォルトの名無しさん
06/12/10 15:29:13
そういえば、タグ付き有理数みたいなのを実装した処理系ってあるのかな。
64bit 環境だと 29bit / 29bit くらいは楽勝で埋め込めそうだけど。

566:デフォルトの名無しさん
06/12/10 16:00:34
>>561
rails の流行で ruby が来そう

567:デフォルトの名無しさん
06/12/10 16:25:56
RoR は Ruby ならではってわけじゃないからなあ。LoL なんかもあるし。

568:デフォルトの名無しさん
06/12/10 22:47:30
AllegroServe + AllegroCache は負けてないと思うけど、情報や人材が・・・

569:デフォルトの名無しさん
06/12/10 22:49:34
>>568
良いんだけど、あの値段はさすがに躊躇するのだよな。
サーバ増えたときコストが重くのしかかる。

570:デフォルトの名無しさん
06/12/10 23:03:45
common lispと心中する気がないと個人じゃ買えないとか。
企業でも使えないと判断したときのリスクが高いとか。


571:デフォルトの名無しさん
06/12/10 23:22:20
Professional なら個人でも買えるだろ…一昔前の開発環境だと思えば。
Kahua ってどうなのかなー?どっかで運用実績ある?


572:デフォルトの名無しさん
06/12/10 23:25:28
web で allegro は無いだろう。
負荷に応じてスケールアウトしてくには高杉。

573:デフォルトの名無しさん
06/12/10 23:40:24
用途次第じゃないでしょうか。 まぁ、バックエンドの Oracle は定番でしょうねぇ。
つうか RDB 以外は評価の対象にすらならないけど。

574:デフォルトの名無しさん
06/12/10 23:58:56
Kahua って最近どうなのかね?
このスレでも話題でないけど開発低調なの?

575:デフォルトの名無しさん
06/12/11 00:05:00
kahuaはチャット(lingrのgauche部屋)ではたまに話題になってるっぽいよ。
MOPとかいう手法を使って負荷分散するのがどうのとか書いてたが
ほとんど理解できてないので進んでるのか進んでないのかよくわからんかった。
過去ログも見れるので興味あるなら見てみればいんでね?

576:デフォルトの名無しさん
06/12/11 00:09:59
>lingrのgauche部屋
URLリンク(www.lingr.com)

ここだな。

577:デフォルトの名無しさん
06/12/13 00:33:46
>>567
Rubyならではってのは無いけど十分牽引力になってるみたい

Editors' Choice 2006 | Linux Journal
URLリンク(www.linuxjournal.com)

ここの言語部門でRubyがベストチョイスにされているあたり確実に流れが来ているのでは

まぁRubyはマクロが無いのが弱いと思うんだけどねぇ

578:デフォルトの名無しさん
06/12/13 12:55:12
syntax-rulesって、
パターンごとに自分自身の名前を書かなきゃならないですけど、
あれって無くてもいいような気がするんですがどうなんでしょう。

たとえば、
(define-syntax begin
(syntax-rules ()
((begin exp ...)
((lambda () exp ...)))))
は、
(define-syntax begin
(syntax-rules ()
((exp ...)
((lambda () exp ...)))))

と書けても良い気がします。

579:デフォルトの名無しさん
06/12/13 13:05:06
素人なんで良く知らんけど名前書かないと (foo . args) みたいなのが表現出来ないんじゃなかろうか。
あと名前じゃなくて適当なシンボルならなんでもいいような気がする。

580:デフォルトの名無しさん
06/12/13 13:05:56
君が知りたいのは "_" か?

581:デフォルトの名無しさん
06/12/13 13:09:22
それはだから適当なシンボルでしょ

582:デフォルトの名無しさん
06/12/13 13:12:47
580は579を見る前に書いたので悪しからず

583:578
06/12/13 13:19:18
>579
すいませんよくわからないんで、
もう少し詳しくお願いします。

>580
"_"ってなんですか?
r5rsのindexには無いみたいなんですが...



584:デフォルトの名無しさん
06/12/13 13:24:28
(define-syntax begin
(syntax-rules ()
((_ exp ...)
((lambda () exp ...)))))

585:デフォルトの名無しさん
06/12/13 13:28:14
>>583
こんなんとか

(define-syntax foo
  (syntax-rules ()
    ((_ x) x)
    ((_ . x) 'x)))

(foo '(1 2 3)) => (1 2 3)
(foo 1 2 3) => (1 2 3)

586:578
06/12/13 13:48:14
>584
なるほど、そんな書き方もあるんですね。
ありがとうございます。

>585
それだったら、
lambda式がやっているような感じで、

(define-syntax foo
  (syntax-rules ()
    ((x) x)
    (x 'x)))

の様にすれば良い気がします。
ただ、(x 'x)はわかり難いので、
何か別の表記をいれた方が良い気もしますが。


つまるところ、syntaxをlambda式みたいに使えないのか
って事なんです...


587:デフォルトの名無しさん
06/12/13 13:50:41
俺言語作るのならありかもしれんが、とりあえずSchemeはそう決まってるってことだろ

588:デフォルトの名無しさん
06/12/13 14:00:50
>>586
syntax-rules がそうなっているのは名前がある方が再帰を書きやすいからかな

(define-syntax and
  (syntax-rules ()
    ((and) #t)
    ((and test) test)
    ((and test1 test2 ...)
     (if test1 (and test2 ...) #f))))

589:578
06/12/13 14:12:09
>587
すいません質問のしかたが悪かったみたいです。

なぜschemeはsyntax-ruleの各々のパターンの先頭に
自身の名前を書くような設計を選択したのだろうか、
ということです。

たまたまそういう書式を選択したのか、
それとも>578みたいな事をすると、
何か問題が発生するのかどうかということを知りたいんです。

>588
それはありますね。
ただ、再帰関数を書くときは無くても何とかやっているので、
同じでもよくないか、とか考えているんですが...


590:デフォルトの名無しさん
06/12/13 14:15:58
引数のパターンじゃなくて、評価しようとする式のパターンなんじゃね?

591:578
06/12/13 14:29:56
>590
なるほど、説得力がありますね。

592:デフォルトの名無しさん
06/12/13 18:48:03
Schemeでマクロと継続はすげーわかりにくいんだが、
R5RSではサラっと流しすぎじゃね?
もっと細かく説明した公式な文章ってある?

593:デフォルトの名無しさん
06/12/13 19:26:11
R5RSは仕様であって解説とかチュートリアルではないからね。
公式になるのかどうかわからんか、細かいこと知りたければ論文だろう。
R5RSのマクロなら、ClingerとReesの"Macros That Work" (POPL91) とか。
継続は何がいいかな。すげー基本的な概念なんで、初出とか思いつかない。
チュートリアル的なものならFriedmanのPOPL88のノートなんてどうだ。
URLリンク(www.cs.indiana.edu)



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