Lisp Scheme Part17
..
263:デフォルトの名無しさん
07/05/15 22:43:49
>>260
普通の正規表現も入ってもいいけど、パターンをS式で書けたりするとさらに萌えるな
264:デフォルトの名無しさん
07/05/15 22:51:48
Schemeにマクロはないっていうがsytax-rurlesとかは何でマクロじゃないんだ?
あと、sytax-caseは非標準だけど、これはマクロなのか?
まあ、これがマクロなら、ほとんどの処理系syntax-case備えてることから、
Schemeには実質マクロがあるようなもんだといっていいと思うのだが。
265:デフォルトの名無しさん
07/05/15 22:51:52
>>259
さっそくshiroたんが反論してるね。
残念ながらレベル高すぎてついていけないorz
266:デフォルトの名無しさん
07/05/15 22:56:02
あの文字列の形が正規表現の正規表現たる所以であって、S式にしたらぶちこわしだ。
マクロでもってオートマトンコードに変えるんなら意味なくもないが。
267:デフォルトの名無しさん
07/05/15 23:15:31
>>262
焼酎飲みながらのことが多いですが、何度か通読しておるですよ。
6-2-3の冒頭なんかが端的にその精神を表しているように思うのですけれど。
規定されていない部分についての実装の挙動の規定というのは、シラフでじっくり読んでもほんの僅かしか確認できないし。
268:デフォルトの名無しさん
07/05/15 23:26:23
>>263
elispにあるみたいな表記?
269:デフォルトの名無しさん
07/05/15 23:31:35
反論ってこれかぁ
Scheme:マクロ:CommonLispとの比較:意味論
URLリンク(practical-scheme.net)
オレもさっぱりだw
270:デフォルトの名無しさん
07/05/15 23:48:53
>>266
perl6 の rule 見たいな感じ?
271:デフォルトの名無しさん
07/05/16 03:39:20
とりあえず現時点(R5RS)では、黒田の指摘は的を射ているということは分かった。
実装的に問題なければいーじゃんとする立場からは遠く離れた高みでの議論ですなあ。
272:デフォルトの名無しさん
07/05/16 16:30:23
おれC厨だけど、変数の代入はしないように気をつけてるよ。
273:デフォルトの名無しさん
07/05/16 16:32:04
Cは関数型言語だからな。それくらいの配慮は欲しいところだ。
274:デフォルトの名無しさん
07/05/16 16:40:36
>>273
> Cは関数型言語だからな。
???
275:デフォルトの名無しさん
07/05/16 17:09:59
関数型... 関数を通して返す値が常にあるもの。y=f(x)の関係さ。
これが一番広い意味の関数型言語の定義だと思うんだが。
純粋か不純かは関数の中で、変数の値を変化させる事が可能かどうかの
違いじゃなかったっけ?
Cはvoid型のように返す値がないものもあるので、関数型とは言わない。
276:デフォルトの名無しさん
07/05/16 17:12:34
ということは、「scheme界へ黒船襲来」に迎撃出来なかったってことか。
277:デフォルトの名無しさん
07/05/16 18:09:03
Haskellの勉強をしてからC言語やると天才になれる。
C言語で関数言語的なスタイルでプログラミングするんだ。
Lisp厨には理解出来ないか?
278:デフォルトの名無しさん
07/05/16 18:48:52
毎度のことながら言語比較厨は馬鹿っぽいな
279:デフォルトの名無しさん
07/05/16 18:57:16
馬鹿はおまえだよ
自覚しろ
280:デフォルトの名無しさん
07/05/16 19:21:08
>>277
>C言語で関数言語的なスタイルでプログラミングするんだ。
不可能ではないが、Cで関数言語的な事をやりたいならば、
関数ポインタは押さえておきなさい。
あとは、こちらより、haskellのスレに出かけて師を探せ。
じゃあがんばれよ。
281:デフォルトの名無しさん
07/05/16 19:24:18
高階関数がムズいぜ。
282:デフォルトの名無しさん
07/05/16 19:31:55
281 :デフォルトの名無しさん :2007/05/16(水) 19:24:18
高階関数がムズいぜ。
むしろ痒いよw
283:デフォルトの名無しさん
07/05/16 19:59:44
間を取ってムズ痒い
284:デフォルトの名無しさん
07/05/16 20:39:41
>>275
> 関数型... 関数を通して返す値が常にあるもの。y=f(x)の関係さ。
scheme の set-car! とかは関数だけど値を返してるといえるんだろうか。
> 純粋か不純かは関数の中で、変数の値を変化させる事が可能かどうかの
> 違いじゃなかったっけ?
代入があれば純粋ではないのはそうだろうけど、
代入がないからって純粋とは限らないんじゃないかな。
普通は副作用をもたないものを純粋というのでは?
285:デフォルトの名無しさん
07/05/16 20:57:24
純粋な関数型言語と言われているHaskellでも間接的な方法でなら代入できるよ
値を返す関数を関数の中に織り込むの
286:デフォルトの名無しさん
07/05/16 21:12:03
関数型厨は巣に帰れ。Lispが関数型かどうかなんてLisperにとってはどうでもいい問題だ。
287:デフォルトの名無しさん
07/05/16 21:38:51
カルト乙w
288:デフォルトの名無しさん
07/05/16 22:11:29
>>284
schemeのset-car!みてぽかーんとしてしまった。#t #fどっちか
返せばいいのに。
>普通は副作用をもたないものを純粋というのでは?
代入の事を指していたのではなくて、このことを指していた。
関数の中で変数が変化するのは、破壊的だと考えられる。
一度決まった変数をいじらないことをさしていて、代入の有無ではないです。
289:デフォルトの名無しさん
07/05/16 22:22:54
>>274
ほら、アレじゃね。C++ は参照透明な言語ですっていう一連のネタの続きじゃないの。
副作用の為のシンタックスシュガーが豊富に用意されていますって奴w
290:デフォルトの名無しさん
07/05/16 22:26:02
ん?
関数型言語でしょ?
URLリンク(d.hatena.ne.jp)
291:デフォルトの名無しさん
07/05/16 22:33:10
Immature Lisp 萌えw
292:デフォルトの名無しさん
07/05/16 23:17:02
ruby スレ痛い事になってるな
293:デフォルトの名無しさん
07/05/16 23:21:12
何その嵐依頼
294:デフォルトの名無しさん
07/05/17 21:01:47
R5RSとにらめっこしながらSchemeを勉強中なのですが、
未束縛のxがあるとして、
(define-syntax foo
(syntax-rules () ((_) (define x 100))))
(foo)
としたあと、xが100になる処理系(Gauche,scm,guile)とxが未束縛のままの処理系(Gambit-C,scheme48,MzScheme)があるのですが
マクロ変換子のスコープってどうなってるんでしょうか
予想としては(syntax-rules ... )まで(後者の挙動)かなぁ、と思うのですが
295:デフォルトの名無しさん
07/05/17 21:49:50
トップレベルじゃなければ大体の処理系では前者になるんじゃね?
296:デフォルトの名無しさん
07/05/17 21:52:11
>>294-295
petite chez schemeではそのマクロを定義しようとした時点でエラーになった。
297:デフォルトの名無しさん
07/05/17 21:54:04
>>296
ハイジニックな性質を守るためにはそれが正解だろう。
298:デフォルトの名無しさん
07/05/17 22:38:01
>>296
ならねーよ。
もしかして全角空白ごとコピペしたんじゃね?
299:294
07/05/17 22:42:27
Gaucheは
> (foo)
> x
→ 100
なのに
> ((lambda () (foo) x))
だと、未定義もしくはlambda呼び出しの前の値です
((lambda () (foo) x))が100を返すけどトップレベル束縛にならない処理系もあって訳分からなくなってきました…
(foo)でスコープが閉じてその外では100にならないのが正しいと思うのですが
300:デフォルトの名無しさん
07/05/17 23:00:07
マクロのかわりができなきゃ何のために導入するの?
301:デフォルトの名無しさん
07/05/17 23:01:20
そういうのにストレス感じる人はコモンリスプへいらっしゃいw
302:294
07/05/17 23:05:20
>>300
defineは内部定義になってもset!は可視の束縛場所の値の変更ですから
使えるのではないでしょうか
内部定義だからxは自由参照じゃないからリネームされて外側のスコープの値を変更しない…んですよね?
保険的マクロ二加えて古典的マクロとgensymをR6RSに入れてくれれば良いのに
303:デフォルトの名無しさん
07/05/17 23:18:22
>>302
syntax-caseが導入予定。
古典的マクロはsyntax-caseで実装可能。
304:294
07/05/18 14:41:54
>>303
syntax-rulesの表現力に不満がある訳じゃなくて
(まだ自分はそんなレベルじゃないです)
実装が難しくて挙動が処理系依存になっているのなら
ポータブルな古典的マクロも標準に入れてほしいと思っただけです
syntax-rulesでスコープが閉じてるとしたら
マクロでdefineを使用すると必ず内部定義になってしまうから
R5RSのマクロの項でトップレベル定義のdefineについて言及していることへの辻褄が合わなくなってしまいますね
でも閉じてない(マクロ使用と同じスコープ)なら
そのマクロは定義が許される文脈でしか使用できなくなりますね
でも識別子の衝突を避けるためにリネームされるってことは
新しいスコープができている事に他ならない気もしますし
どっちなんでしょうか
305:デフォルトの名無しさん
07/05/18 15:33:40
Scheme用のいいGUIツールキットってないかな・・・
306:デフォルトの名無しさん
07/05/18 17:39:53
処理系によりけり。
307:デフォルトの名無しさん
07/05/18 17:56:30
同じOS上でも処理系毎に違うのなんとかならんのだろうか?
308:294
07/05/18 18:40:13
言葉がわかりづらい…
束縛→場所をユニークに表すもの
束縛する→識別子を場所またはマクロ変換子に対応づける
参照→場所から値を取り出す事
という解釈で良いんでしょうかね
束縛するはともかく他の2つは直感的な理解と違う解釈な気がしますけど
内部定義のduplicate bindingについてはR5RSでは言及されてないようですけど
内部定義のdefineは完全に等価なletrec変換できるって書いてあるので
暗黙的にduplicate bindingは禁止なんでしょうね
でも処理系によって許すものと許さないものがあるようです
syntax-caseで使用する識別子'_'はマクロ名を表すって説明してるサイトもありますけど
必ずしもそうじゃないんですね
パターンリストの先頭の識別子はパターン変数にならず、
マクロ名と見なされるってだけなので
(define-syntax foo (syntax-rules () ((bar _) (begin (display _) (newline)))))
見たいに書くとパターン変数として使えるんですね
309:デフォルトの名無しさん
07/05/18 20:00:03
>>306
じゃあGaucheで
310:294
07/05/18 20:08:42
あ、自分のレスみて気がつきましたが
パターン変数はいわばメタ変数で実体を持たないから
束縛を隠蔽する事はあっても新しい束縛の導入にならないんですね
じゃあR5RSの4.3のマクロの項で述べられている「束縛の挿入」は束縛コンストラクタを指している
そしてその束縛は(リネームされるから)マクロ使用の周りのものとは異なるわけですね
だからmzschemeやGambit-Cやscheme48の挙動が正しい
311:デフォルトの名無しさん
07/05/18 21:45:48
>>308
束縛という日本語が、Lispを無駄に難解な言語だと誤解させている部分はあるかもしれないねえ。
単にまんまバインドと言うほうがわかりやすかったりして。言葉の意味をあまり考えないで済む分。
似たようなのに「関数」てのがあるね。もともとfunctionの中国語読みを無理やり函数なんて漢字に当てたもんだから、
プログラミングを初めて学ぶ人の中には、関数て語で混乱する人も少なくないらしい。
遠山啓先生なんかは何十年も前の著作で、functionは「函数」じゃなくて「機能」でいいじゃないかと書いていらっしゃる。
312:デフォルトの名無しさん
07/05/18 21:49:07
支離滅裂だな
「私は漢字苦手です」の一言で済むだろ
313:デフォルトの名無しさん
07/05/18 22:03:55
オレも用語法に付いては同意見だな。 >> 英語そのままで良い
関数は違和感を覚える前に慣れてしまったけど、
理系の人間の国語センスの無さには絶望する。
314:294
07/05/18 22:05:51
うーん、あまり複雑に考えなくていいのかもしれません
構文束縛を除いて考えると
束縛とは
({let,let*,letrec} ((ここにある識別子 value) ...) body)
(lambda (ここにある識別子 ...) body)
(内部定義のdefine ここにある識別子 expression)
(トップレベルのdefine ここにある識別子、ただし未束縛 expression)
参照とは
識別子のうち、束縛でないもの
束縛の別名が束縛識別子、参照の別名が自由識別子って言う解釈で良いのでしょうか
>>311
束縛変数、自由変数だけならλ式みたいで分かりやすいんですけどね
束縛する、束縛、〜に対する束縛、〜への束縛、いろいろ種類があるので分かりにくいです
315:294
07/05/18 22:11:33
「識別子は場所に束縛される」
この表現は解釈の余地もなく分かりやすいのですが
それ以外の「束縛する」、「束縛」などが分かりにくいですね
316:デフォルトの名無しさん
07/05/18 22:13:20
用語なんて慣れの問題だと思うけどね
317:デフォルトの名無しさん
07/05/18 22:27:27
>>313
functionなんて、今の関数よりはもともとの函数のほうが箱(函)をイメージして意訳してるので、
数学的な意味では関数よりも原語に近いイメージなんだけど、んなもん言われなきゃ気づかないよってのが痛いよなあ。
函→関に変わったのも、函の数て何よ?てなことからなんだろうし。
その点、「実装」てのは実に優秀な訳だと思う。見た瞬間にイメージが沸く。
318:デフォルトの名無しさん
07/05/18 22:45:17
まぁでも "Lisp" という単語を、日本語として適当な語句に訳せって言われたら難しいよね。
何か以前も同じ様な話題があった様な気がするけど…
;; 無理矢理話題をスレの趣旨に近付けてみた。
319:デフォルトの名無しさん
07/05/18 22:45:37
>>317
函→関は当用(か常用)漢字の問題
320:317
07/05/18 22:57:22
>>319
恥ずかしながら存じませんでした。勉強になりました。
しかし、音が同じってだけで漢字を変えるってのもどうかとw
321:デフォルトの名無しさん
07/05/18 22:59:31
ま、周りに混乱を撒き散らして俺擁護を定着させるより
今定着している擁護で理解するほうがよっぽど楽だな。
322:294
07/05/18 23:00:34
314は全然間違いでしたね
(lambda () x)と((lambda () x))では違いますから
評価される識別子→参照
評価されない識別子→束縛
ならいいでしょうか
323:294
07/05/18 23:05:48
あー、でも'xとかを束縛とは呼べない気がしますから
今は評価されていないけどいずれ評価されうる識別子→束縛
かな?
324:デフォルトの名無しさん
07/05/18 23:08:09
>>320
音だけの問題じゃないぞ。
数と数の関連を表してるという意訳でもある。
325:デフォルトの名無しさん
07/05/18 23:47:31
>>323
(eval 'x)
……とか言ってみる
いや、そんなによくわかってないんだけど
326:デフォルトの名無しさん
07/05/19 00:17:17
関数の結果が解っつうのも…
関連性ほどけちゃってるじゃん
327:デフォルトの名無しさん
07/05/19 00:49:34
お前らがLispからイメージする色ってなによ?
たとえばRuby=>赤、Perl=>青、Python=>俺は紫なんだけど
Lispってイメージわかないんだよなぁ。しいて言えば無職ってかんじ。
328:327
07/05/19 00:50:54
oops
x無職
o無色
329:デフォルトの名無しさん
07/05/19 00:53:08
黄色に決まってるじゃん
330:デフォルトの名無しさん
07/05/19 01:04:20
Perlは黄色で、Lispの方が青っぽいなあ
Lispは透明感がある感じ。
331:デフォルトの名無しさん
07/05/19 01:11:55
>>327
緑
332:デフォルトの名無しさん
07/05/19 01:15:30
紫かなあ。ANSI Common Lisp の表紙が紫だから。
333:デフォルトの名無しさん
07/05/19 01:23:10
Ruby ・・・ ルビー色
Perl ・・・ 真珠色
Python ・・・ ニシキ蛇色
Lisp ・・・ ポール色
334:デフォルトの名無しさん
07/05/19 01:26:40
Python 青紫 Common Lisp 透明で少し青みがかかってるちょいとつや消し
Ruby 赤 Perl 黄 Scheme 明るい青
C やや白っぽい黄 C++ ドドメ色
AWK 赤茶色 sed 黄
Ocaml 肌色
335:デフォルトの名無しさん
07/05/19 07:28:21
>>316
君が思うまでもなく、みんな慣れの問題についての話をしてるんだよ。
何のメリットも無いのに、慣れるための壁を高くしてそうな日本語訳についての話。
336:デフォルトの名無しさん
07/05/19 09:22:35
Perl で黄色ってのはどういう連想なんだろう?
俺はCPANが水色だから水色を連想した。
>>334
>C やや白っぽい黄
なんかエロイな。
337:デフォルトの名無しさん
07/05/19 09:54:54
どうでもいいです。ネタがないなら無理して書き込まなくて結構です。
338:294
07/05/19 14:18:23
>>325
結局C的に言えば
参照→*&x
束縛→&x
になりますかね
339:294
07/05/19 15:35:47
いろいろ考えすぎてました
識別子は場所に束縛される
束縛は識別子が束縛されている場所
参照は識別子が束縛されている場所から値を得る
ですね
340:294
07/05/19 16:32:40
いろいろな処理系の挙動を観察してみましたが
結論としてはdefine-syntax内ではdefineは使わないほうが良いようですね
他の束縛コンストラクタは閉じ括弧によって明示的にスコープも閉じられるので解釈に曖昧さがありませんが
defineはスコープの終端が明示的ではないので処理系によって挙動がずいぶん違うようです
というか内部定義のdefineなんてものが諸悪の根源のような気もします
341:デフォルトの名無しさん
07/05/19 18:28:42
用語なんて慣れの問題
342:デフォルトの名無しさん
07/05/19 18:33:35
あだだだだだ・・・・・・
イタイねぇw
343:デフォルトの名無しさん
07/05/19 18:40:28
今日も痛いの湧いてんなぁ
344:デフォルトの名無しさん
07/05/19 18:49:10
↑なんか湧いてるぞ
345:デフォルトの名無しさん
07/05/19 18:55:09
>>339
なんか別の言葉で再定義して満足してるだけじゃね?
346:デフォルトの名無しさん
07/05/19 20:36:40
Ruby スレを荒らしてたキチガイだろ。調子のって Ruby スレで暴れてたら
Lisper が居て泣きながら帰ってきたってとこか。迷惑な…。
Ruby スレでもいらない子。Lisp スレにもどってきてもやっぱりいらない子。
347:デフォルトの名無しさん
07/05/19 20:44:33
セルビオゲゼルが提唱している、減価する貨幣。
私はそれを実現するべくLispの勉強を始めたのでした。
348:デフォルトの名無しさん
07/05/19 21:02:57
>>346
ライブラリが無いから実用的じゃないという流れでACL出されて
その後論点がまるで変わっているように見えるんだけどなぁ
というかこどもっぽい反応が目に付くような
349:294
07/05/19 21:30:05
>>342-4 >>346
スレを汚して申し訳ないですけど
私はRubyスレをのぞいた事も書き込んだ事もないですし、
CLとschemeは勿論、それ以外の言語をけなす意図もないです
>>345
新しい概念の理解ではないので、自分の理解している言葉に置き換えただけです
350:デフォルトの名無しさん
07/05/19 21:45:33
>>348
つか Ruby スレで Lisp 話やるのがスレ違いで叩き出されて当然だろ。
戻ってこられても迷惑だけど。
351:デフォルトの名無しさん
07/05/19 21:48:21
見てきただけの俺に言われても困るんだが…
352:デフォルトの名無しさん
07/05/19 21:58:47
>>350
キミも荒らしている一人じゃないか?
ほぼ書式が一緒だが
701 名前:デフォルトの名無しさん[sage] 投稿日:2007/05/19(土) 00:16:07
>>689 バカはお前だよ。CL コミュでもライブラリ不足は長い事問題になってんじゃん。
で、他言語のライブラリを活用しようとかって話でてるじゃん。ILC とか c.l.l とか読んでるんか?
きみのような頭が病気な人が一人いるだけで Lisper としては迷惑なんだよ。ここは Ruby スレだし。
まぁ Lisp 厨を装った荒しなんだろうけど、困ったもんだ…。
710 名前:デフォルトの名無しさん[sage] 投稿日:2007/05/19(土) 01:29:24
>>702 救い難いキチガイだな。なんで SBCL だと思ったんだ?妄想?
残念だけど Allegro CL 使ってるっつーの。そんでも Ruby を使うこともある。
そんで敬意は払う。おまえみたいに比較ばっかりで何一つ使いこなせないのが一番タチ悪いよ。
720 名前:デフォルトの名無しさん[sage] 投稿日:2007/05/19(土) 08:35:03
ちょwwww 荒し君 >>714 バカとかしか出なくなwww 小学生かよ。荒らし君涙目?売りは粘着だけか?
つかどっかで半端な知識でも聞きかじってきたんだろうが、Ruby スレで Lisp ネタで論破されるとは
どんだけヘタレなんだよ……Ruby ユーザーかつ Lisp ユーザーみたいな層の存在を考えなかったのか。
353:デフォルトの名無しさん
07/05/19 22:07:06
>>852
このスレを荒らすなよ
354:350
07/05/19 22:14:32
>>352
なんか妄想入ってきたな。Ruby スレの奴も navi2ch 使ってそうだと推測はできるけど。
355:デフォルトの名無しさん
07/05/19 23:08:23
またRUBYキチガイが暴れてるの?
アレはほんと迷惑だな
356:デフォルトの名無しさん
07/05/19 23:15:35
両方荒らして「おれってすげー」ってほくそえんでいる、寂しい奴が一人というのが正解。
357:デフォルトの名無しさん
07/05/19 23:50:16
今なら言える
ぬるぽ!
358:デフォルトの名無しさん
07/05/19 23:55:32
>>357
ガ
ッ
359:デフォルトの名無しさん
07/05/20 00:04:47
ちん剣士
360:デフォルトの名無しさん
07/05/20 00:07:29
>>354
どこら辺が妄想に見える?
361:デフォルトの名無しさん
07/05/20 00:18:03
lisp/scheme で処理系に ヌルポ って云わせてみたいんですけど
どうすればいいんでしょうか?
362:デフォルトの名無しさん
07/05/20 00:19:17
'ヌルポ
363:デフォルトの名無しさん
07/05/20 00:23:32
>>361
そんな当たり前の答えは期待していないんですけどorz
364:デフォルトの名無しさん
07/05/20 00:49:57
>>327
Rubyは赤葡萄酒色
Perlは茶色
Pythonは鉛色(ちょいメタリックぽい色)の縞柄
Lispはエメラルド色
365:デフォルトの名無しさん
07/05/20 00:56:58
>>363
そりゃ、当たり前な答えしか返ってこない聞き方してるからじゃないか?
どんな答えを期待してるのか書いてくれなきゃわからんよ
366:デフォルトの名無しさん
07/05/20 00:58:17
>>362
'ガッ
367:デフォルトの名無しさん
07/05/20 01:11:16
>>360
荒らしはいろんなところでウザがられるのが当然じゃないか?
Rubyスレのぞいたけど >>352 に引用されてる記事の前に荒らしてるから煽られてんだろ
368:デフォルトの名無しさん
07/05/20 01:19:16
>>367
2chの鉄則「荒らしに反応した奴も荒らし」
>>352は「反応する」の域を明らかに超えてるな
というか「煽ってる」って自覚があるんだな
369:デフォルトの名無しさん
07/05/20 01:29:55
自覚て。俺 (367) も同一人物ってこと?
370:デフォルトの名無しさん
07/05/20 05:25:04
香ばしい展開
371:デフォルトの名無しさん
07/05/20 09:20:54
まぁこういうアホな会話を育ててしまうという経験を積んでいくうちに
「あれ、どうやら俺は、自分で思っていたほど賢くないみたいだぞ?」
っていうのを学んでいくんですよ。
一生「会話がアホになったのは俺と違って相手がバカだから」の一点張りで生き続けるのも
たまに居ますが。
372:デフォルトの名無しさん
07/05/20 14:01:12
>>369
バレてないつもりなのか
>>367にもそのレスにもまだ特定できるほどの特徴が残ってるんだよ
373:デフォルトの名無しさん
07/05/20 14:28:42
ここで Ruby スレみたいな話をするのは止めておくれ
374:デフォルトの名無しさん
07/05/20 14:44:53
>>373
そりゃ駄目だよ
こういう馬鹿がRubyスレとか他のスレで暴れる前に釘を刺しておかないと
お前の事だけどな
375:デフォルトの名無しさん
07/05/20 14:48:14
>>372の後でも特定されるようなレスをするのはわざとなんだろうか
第三者のなりきりかな?
376:デフォルトの名無しさん
07/05/20 14:51:32
そこまで執着する理由が分からんけど、何かトラウマでもあるの?
377:デフォルトの名無しさん
07/05/20 14:54:25
>>375
もしかして自分が間違ってるかもと思ったら、それが正解だよ。
これ、俺からのアドバイスね。
378:デフォルトの名無しさん
07/05/20 15:11:51
それはチョンの陰謀
379:デフォルトの名無しさん
07/05/20 15:50:01
>>352 に引用されてるやつは元レスの荒らしが酷いからRubyスレ住人がキレたんだろ。
なんでそんなに特定したがってんだ??
689
CommonLisp が実用的じゃないって Ruby 厨はどれだけアホなんだw
で、Gauche の方が実用的だって?
Shiro 氏自身が実用で使うなら Gauche より CommonLisp とるって言っているのにwwww
702
SBCLで仕事しようとするからだろ
アホか
714
>>710は真性のアホだなw
380:デフォルトの名無しさん
07/05/20 15:58:09
>>379
こんな見え見えの釣り針に>>352って小学生同士の喧嘩か
381:デフォルトの名無しさん
07/05/20 16:01:00
>>379
「特定したがってる」んじゃなくて、
別人を装って>>352に引用されてる奴を擁護してるからお前に突っ込んでるんだよw
382:デフォルトの名無しさん
07/05/20 16:03:13
ぽ
こ
ち
ぬ
383:デフォルトの名無しさん
07/05/20 16:04:36
なんでこのスレ定期的に炎上するの?w
384:デフォルトの名無しさん
07/05/20 16:07:07
ところで君たちは何をそんなにムキになってるのかね?
Ruby スレがどうしたとかなんとか、そんなにムキになるほどの
ことなのかね?
そもそも何を怒ってるんだ君たちは?
385:デフォルトの名無しさん
07/05/20 17:02:31
本人キター
386:デフォルトの名無しさん
07/05/20 18:07:02
\(^o^)/オワタ
URLリンク(www.unsymmetry.org)
387:デフォルトの名無しさん
07/05/20 18:26:41
>>386
すごい勢いだな。
388:デフォルトの名無しさん
07/05/20 18:28:43
>>386
実は奥の二人の方がが、手前の人よりも重要なんだよね(;゚∀゚)=3
389:デフォルトの名無しさん
07/05/20 18:39:58
なんで乳をそんなとこから出してんの? 不思議!
390:デフォルトの名無しさん
07/05/20 20:30:42
GaucheNight前
Lisp実装時の疑問に答えるスレ
GaucheNight後
GaucheNightの記事でLispを知ったLL信者に答えるスレ
391:デフォルトの名無しさん
07/05/20 21:04:45
ここはRuby支配下ですか?
他の言語は完全に支配下に置いたんですけどねぇ・・・
392:デフォルトの名無しさん
07/05/20 21:07:38
なんか痛いのがきた
393:デフォルトの名無しさん
07/05/20 22:51:04
>>379
というかこれ自体は別に嘘言ってないよなあ
ライブラリが少ないから実用的じゃないみたいなツッコミに
商用パッケージ使わないからと言っているだけだし
相手が小学生みたいな反応に見える
394:デフォルトの名無しさん
07/05/21 03:31:13
>>391
グレアムおじちゃんがお口にλつけて仕舞いにくるぞ
395:デフォルトの名無しさん
07/05/21 05:51:37
「支配」っていうのは、とてもRuby的な概念だよね。
自己顕示欲ともPerlコンプレックスともつかない、Rubyユーザーの野望がよく出てる単語というか。
とても人間的。
Lispはどっちかというと「わかる奴だけ使う最強兵器」みたいな位置だし、
ユーザーもそういう位置で満たされてるから、言語トーク自体を楽しむ意気込みはあっても、
そこで支配というワードが来ると、それどーゆー意味だったっけ的な溝を感じる。
396:デフォルトの名無しさん
07/05/21 10:51:46
ふーん
397:デフォルトの名無しさん
07/05/21 14:13:14
「最強兵器」も「支配」といい勝負ではないか?
398:デフォルトの名無しさん
07/05/21 14:41:11
頭悪そう
399:デフォルトの名無しさん
07/05/21 14:46:33
「支配」っていうのは、とてもボールペン的な概念だよね。
自己顕示欲とも万年筆コンプレックスともつかない、ボールペンユーザーの野望がよく出てる単語というか。
とても人間的。
筆ペンはどっちかというと「わかる奴だけ使う最強兵器」みたいな位置だし、
ユーザーもそういう位置で満たされてるから、筆記用具トーク自体を楽しむ意気込みはあっても、
そこで支配というワードが来ると、それどーゆー意味だったっけ的な溝を感じる。
400:デフォルトの名無しさん
07/05/21 15:31:15
Schemeは毛筆、と。メモメモφ(・∀・)
401:デフォルトの名無しさん
07/05/21 16:34:30
鉛筆最強
402:デフォルトの名無しさん
07/05/21 18:35:45
schemeはチョークじゃなかったっけ
403:デフォルトの名無しさん
07/05/21 18:45:51
メモメモφ(・∀・)
smalltalk (n.) [smo?to?k]] 1.文房具談義、筆記用具トーク 2. 小型のチョーク (→数奇夢)
404:デフォルトの名無しさん
07/05/21 19:55:41
Ruby信者はいつも元気だな
405:デフォルトの名無しさん
07/05/21 21:18:17
Common Lispは山羊の毛の毛筆
Schemeは馬の尾の毛だな
406:デフォルトの名無しさん
07/05/21 21:46:39
>>405
どう違うの?
407:デフォルトの名無しさん
07/05/21 21:55:05
山羊の毛は(()())で
馬の尾の毛は(().())
408:デフォルトの名無しさん
07/05/21 21:58:49
俺様Lispはあそこの毛で作りました
409:デフォルトの名無しさん
07/05/21 22:04:42
(
)
(
)
410:デフォルトの名無しさん
07/05/21 22:18:54
(
)
(
)
411:デフォルトの名無しさん
07/05/21 22:19:36
λ
(())
412:デフォルトの名無しさん
07/05/22 12:48:02
黒板偉大なり
413:デフォルトの名無しさん
07/05/22 14:22:56
今、ウェブ・サービスの多くが、
Javaや.NETベースのアプリケーションサーバや、
Perl/Ruby/PHP/Python等のLightweight Languageの上に構築されていますが、
なぜそこにLispが含まれていないのでしょうか?
414:デフォルトの名無しさん
07/05/22 14:36:04
これはひどい一本釣りですね
415:デフォルトの名無しさん
07/05/22 18:42:36
(lambda
416:デフォルトの名無しさん
07/05/22 20:08:35
らんぶだ!
417:デフォルトの名無しさん
07/05/22 21:07:15
lambda! と申したか
酷い仕様だな
418:デフォルトの名無しさん
07/05/22 21:42:35
(lambada () '石井明美)
419:デフォルトの名無しさん
07/05/22 22:03:47
>>418
それはラマダン!
420:デフォルトの名無しさん
07/05/22 22:04:44
>>419
むしろラバンバ。
421:デフォルトの名無しさん
07/05/22 22:09:05
lamborghini
422:デフォルトの名無しさん
07/05/22 23:21:41
俺ははじめてlambdaを見たとき
ふつーにランバダってよんでたな。
423:デフォルトの名無しさん
07/05/23 00:36:40
俺は脳内でラムブダとつぶやきながら書いてる。
424:デフォルトの名無しさん
07/05/23 01:01:47
馬鹿が多くてちょっとほっとした
425:デフォルトの名無しさん
07/05/23 02:13:32
ホッとするのは底なしに危険だぜ
426:デフォルトの名無しさん
07/05/23 02:22:37
底なしなど幻想だ
427:デフォルトの名無しさん
07/05/23 05:59:23
「実質的に無限」というのは「有限」という意味だからね。
なんかこう、Lisperは特にそう考えたがりそうだね。
428:デフォルトの名無しさん
07/05/24 20:48:16
lispは見なす事が自然と身に付く
それができない頭硬いバカチンに使いこなすのは無理
429:デフォルトの名無しさん
07/05/24 22:21:39
迷惑だから Ruby スレで暴れているヤツ引き取ってくれ
430:デフォルトの名無しさん
07/05/24 22:26:26
実際そうしたい
431:デフォルトの名無しさん
07/05/24 22:31:47
>>429
暴れてるのはお前だろ
432:デフォルトの名無しさん
07/05/24 23:26:53
そもそも「引き取る」という概念がおかしいな。
スレッドと訪問者の関係を、チームと選手の関係みたいに思ってるんじゃないのか。
433:デフォルトの名無しさん
07/05/24 23:30:54
ゴミはGCへ
434:デフォルトの名無しさん
07/05/24 23:42:04
クロージャー体操
はっじまっるよーーーーーー
435:デフォルトの名無しさん
07/05/26 08:24:50
>>428
>...バチカンに使いこなすのは無理 に見えた。
言語論争の次は宗教論争かと思った。
436:デフォルトの名無しさん
07/05/26 09:10:00
オーソドックスなネタですね。
437:デフォルトの名無しさん
07/05/26 09:22:46
ウェブ技術系のブログを見ると、
「やっぱPHP最強だわ」などの表現が見当たりますが、
Lispはどうなのでしょうか。
438:デフォルトの名無しさん
07/05/26 09:50:39
括弧の数なら負ける気がしないぜ!
439:デフォルトの名無しさん
07/05/26 10:06:29
少しはカッコを減らす努力をしないと
ポール・グレアムに嘲笑われるぞ
440:ジュリー
07/05/26 10:14:38
勝手にしやがれ( ゜∀゜)
441:デフォルトの名無しさん
07/05/26 13:00:49
>>438-439
URLリンク(srfi.schemers.org)
442:ジュリー
07/05/26 13:03:34
♪せめて〜 少しはカッコ付けさせてくれ〜
443:デフォルトの名無しさん
07/05/26 21:50:17
>>441
それめっちゃ気持ち悪い。dylan? やっぱりかっこがいい。
かっこいいの!
444:デフォルトの名無しさん
07/05/26 22:10:11
>>442 藁。
445:デフォルトの名無しさん
07/05/26 22:33:45
curlってどうなったの?
446:デフォルトの名無しさん
07/05/26 23:41:43
>>441
なんかスカスカで見た目にかっこわるい
447:デフォルトの名無しさん
07/05/27 00:39:40
>>441
python 以上にキモい……
448:デフォルトの名無しさん
07/05/27 15:07:27
なんかMLみたいになっちゃってるね。
449:デフォルトの名無しさん
07/05/27 16:33:48
これがそんなにキモイか?
define (fac x)
if (= x 0) 1
* x
fac (- x 1)
じゃあこうしよう
define (fac x)
{
if (= x 0)
{
1 (* x)
}
{
fac (- x 1)
}
}
450:デフォルトの名無しさん
07/05/27 16:40:56
K&R派なオレはそのifの書き方見るとイライラしてくるんだよねw
451:デフォルトの名無しさん
07/05/27 16:44:10
>>449
{ } の代わりに ( ) にしてみてもいいかも
452:デフォルトの名無しさん
07/05/27 16:47:59
>>449
どうでもいいが式が間違ってるぞ
まあ前者はインデントが浅すぎでキモく見えるだけじゃないのか?
453:デフォルトの名無しさん
07/05/27 16:52:20
インデント文法で一番有名なPythonは20年後はもう衰退していると思うが、
この手法はSchemeと一緒に30年後も生き残っていそう。
それで、インデント文法はSchemeが元ネタだ! と騒ぐ信者が出現
454:デフォルトの名無しさん
07/05/27 16:55:51
>>442
山口百恵のロックンロールウィドウもよろしく
455:デフォルトの名無しさん
07/05/27 22:28:34
Schemeのマクロについてなんですけど、
本体の展開よりも引数の評価を先にするようなトリックってありませんかね?
構造体を定義するマクロを自分でも書いてみようと思ったんですけど、
構造体名structure-nameを与えられてmake-structure-nameという名前の関数を定義する事さえ難しいという現実に直面してしまいました。
グローバル定義だけならevalでお茶を濁す手もあるんですが…
R6RSで導入予定というsyntax-caseもちょっと使ってみたんですが、
まだ標準化されていないせいか、処理系によって違いが結構あるので
今は乗り換えるのを見送ろうと思ってます。
456:デフォルトの名無しさん
07/05/27 22:59:32
よく思うことなんだが、言葉でくどくど説明されてもよくわからん。
簡単なテストケースを書いてくれ
457:デフォルトの名無しさん
07/05/27 23:10:37
;(define-syntax my-define-structure
; (syntax-rules () ((my-define-structure name slot ...)
; (define (string->symbol (string-append "make-" (symbol->string name))) (lambda (…
などとして、新しいシンボルを作ってそれを束縛したいのです。
defineは第1引数に式はおろか、準引用すら許しませんから困ってます。
そこで、マクロに展開されてdefineが評価される前に引数がシンボルに展開されれば、と考えました。
これは黒田氏が指摘している問題の一つな気がします。
Shiro氏も
・せめてシンボルの生成くらいはr5rs内で出来て欲しいってのはありますね。
とおっしゃってますし、正攻法ではどうも解決できない気がします。
プリプロセサを書くしかないのでしょうか?
458:デフォルトの名無しさん
07/05/27 23:14:04
混乱してるからクドクドとなるんであって、
簡単にはテストケースを書けないんだろ。
459:デフォルトの名無しさん
07/05/27 23:15:44
defineは第一引数に関数呼び出しはおろか、特別式すら、が正しかったですね
460:デフォルトの名無しさん
07/05/27 23:18:21
>>457
前スレ172みたいなのをコンパイル時にやりたいっつーことだな。
それならやっぱsyntax-case必要だろう。
461:デフォルトの名無しさん
07/05/27 23:29:23
define-macroでできるだろ
462:デフォルトの名無しさん
07/05/27 23:30:37
>>460
うわぁ、古い方の過去ログは読んだのですが、最近のは読んでませんでした。
全く同じですね。
syntax-case使うなら、やっぱりchezでしょうか?
私は主にmzschemeかscheme48かGambit-Cなので、syntax-caseはmzschemeしか使えないし、
chezのものとは少し違うようなので、
ポータビリティを考えたらCL的マクロに逃げるのがベターか、などと考えてます。
あまり関係ありませんが、Gambit-Cのsyntax-rulesを使えるようにするファイルは、syntax-caseが使えないのになんでsyntax-case.scmなのでしょうね。
463:デフォルトの名無しさん
07/05/27 23:31:31
>>461
もちろん、CL的アプローチでは簡単です。
標準仕様の範囲でできるかどうか、という問題です。
464:デフォルトの名無しさん
07/05/27 23:49:36
syntax-caseで書くならこんなカンジか?
(define-syntax define&
(lambda(x)
(syntax-case x ()
((k sym obj)
(with-syntax
((s
(datum->syntax-object (syntax k)
(eval (syntax-object->datum (syntax sym))
(interaction-environment)))))
(syntax (define s obj)))))))
petite chez schemeで試してみたが、こういうテストケースでは動くことを確認した。
(define& (string->symbol (string-append "a" "b")) 1)
ab ;-> 1
結局のところ、今はschemeに足りないところがあるのはそのとおりだと思う。
でもな、完成されたものを使うだけってつまらないと思うわけ。
マクロに関しても色んな提案があってそれぞれ細かい部分で利点も問題点もかかえてて、
それがどう収束していくかってなかなか面白いことじゃないか。
ま、仕事で使うならそうもいってられんのだろうが。
465:デフォルトの名無しさん
07/05/28 00:05:51
仕事で Scheme 使っている人ってここにいるんですかね
466:デフォルトの名無しさん
07/05/28 00:10:20
使ってた。納品物ではなく自家ツール用だけど。最近はCommon Lispのほうが多い。
467:デフォルトの名無しさん
07/05/28 00:11:34
>>464
あなたのプログラムを見て初めて私のsyntax-caseがうまく動かなかった理由が分かりました!
ありがとうございました。
IBMにあるメタプログラミング技法を読んでsyntax-caseを勉強したのですが、
datum->syntax-objectの第1引数の(syntax k)のkはマクロ名にマッチする識別子だったんですね。
syntax-rulesではマクロ名にマッチした識別子は特に使い道がなかったので気がつきませんでした。
468:464 ◆3.JjF77I26
07/05/28 00:26:11
>>467
ここにsrfi-93の日本語訳があるぞ。
URLリンク(www.katch.ne.jp)
> 手続き datum->syntax は引き数として、
> テンプレート識別子 template-id と任意の値 datum のふたつをとる。
>
> (datum->syntax template-id datum)
>
> この手続きは template-id と同一の文脈情報をもつ、
> datum の構文オブジェクト表現を返す。 このとき、
> この構文オブジェクトは datum (訳注: template-id か)が
> 挿入されたのと同時にコードに挿入されたかのようにあつかわれる。
schemeのマクロではただシンボルを置き換えればいいってもんじゃなく、
文脈がからんでくるってこと。
ところでこの文書ではdatum->syntaxってなってるけど、
chez schemeを含むいくつかの系ではdatum->syntax-objectって名前なので注意。
469:デフォルトの名無しさん
07/05/28 01:05:53
>>468
ありがとうございます。
読んでみました。
いろいろ勘違いしているところもありました。
しばらくsyntax-caseの勉強に励もうと思います。
470:デフォルトの名無しさん
07/05/28 13:38:52
462でGambit-Cはsyntax-caseが使えないと書きましたけど
ちゃんと使えますね。
なぜか勘違いしてたみたいです。
471:デフォルトの名無しさん
07/05/28 18:02:01
syntax-caseて処理系に依存するの?
472:デフォルトの名無しさん
07/05/29 00:38:39
syntax-case 面倒臭すぎる
阿呆な質問なんだが scheme にも cl のパッケージの概念導入
できないものなんだろうか…?何か問題でもあるの?
473:デフォルトの名無しさん
07/05/29 00:39:19
srfi を書いて提案しましょう
474:デフォルトの名無しさん
07/05/29 01:05:37
Mona OS が関数型言語 Scheme のシェルを搭載してリリース
URLリンク(slashdot.jp)
475:デフォルトの名無しさん
07/05/29 01:41:35
>>472
schemeでは名前空間を分離しない(?)原則みたいなのがあるとかなんとか言ってなかっったっけ?
476:デフォルトの名無しさん
07/05/29 07:30:57
R6RSに入るんじゃなかった?>パッケージもどき
477:デフォルトの名無しさん
07/05/29 09:42:05
R6RSって出ないんじゃなかったっけ?
478:デフォルトの名無しさん
07/05/29 09:48:50
じゃR7RSで
479:デフォルトの名無しさん
07/05/29 22:22:37
もうR2D2でいいよ。
480:デフォルトの名無しさん
07/05/29 22:29:12
むしろR2D2の方がいいよ
481:デフォルトの名無しさん
07/05/29 22:34:26
100万言語に対応してるんだっけ?
482:デフォルトの名無しさん
07/05/29 22:34:41
schemeから派生した言語って何かありますか?
luaがそれっぽいですが
483:デフォルトの名無しさん
07/05/29 22:56:26
Tとか
484:デフォルトの名無しさん
07/05/29 23:14:15
4/1にc.l.lでr7rsは発布されとったよ。w
URLリンク(groups.google.co.jp)
485:デフォルトの名無しさん
07/05/30 00:29:39
luaはべつにschemeと関係ないよ
486:デフォルトの名無しさん
07/05/30 04:02:59
このスレ住人としてluaの存在ってどうよ
末尾再帰とかゲームで採用されたりとかむかつかね?
しめとくか?
487:デフォルトの名無しさん
07/05/30 04:14:07
schemeも採用すればよかんべ。
488:デフォルトの名無しさん
07/05/30 05:21:59
schemeがシェルに採用されたMonaOSが話題にならない件
489:デフォルトの名無しさん
07/05/30 05:52:53
Scheme流行りの昨今
490:デフォルトの名無しさん
07/05/30 06:00:40
Schemeは黒板専用言語のくせになまいきだな
491:デフォルトの名無しさん
07/05/30 08:54:57
確かにリリカルLispは黒板使ってたなww
492:デフォルトの名無しさん
07/05/30 10:59:04
>>486
むかつく理由が理解できない
493:デフォルトの名無しさん
07/05/30 15:20:35
>>486 は常に敵を探しているタイプ
494:デフォルトの名無しさん
07/05/30 17:36:51
小鳥みたいですね
495:デフォルトの名無しさん
07/05/30 19:36:20
歌が好きだったりしますか?
496:デフォルトの名無しさん
07/05/30 20:33:49
>>495
俺が好きなのは君だけさ
497:デフォルトの名無しさん
07/05/31 11:09:22
read-from-stringは多値を返すのですが、
それぞれを別の変数に入れる方法はありますか?
(read-from-string "459")
459
3
たとえば xとyに 459と3を入れる方法が知りたいです。
498:デフォルトの名無しさん
07/05/31 11:27:35
>>497
multiple-value-bind
499:デフォルトの名無しさん
07/05/31 11:32:57
>>498
ありがとう
失礼ですが、LISP暦は何年でしょうか?
500:デフォルトの名無しさん
07/05/31 11:35:49
multiple-value-bind とか multiple-value-setq とか。
CL-USER> (multiple-value-bind (x y) (read-from-string "459") (list x y))
(459 3)
CL-USER> (multiple-value-setq (x y) (read-from-string "459"))
459
CL-USER> x
459
CL-USER> y
3
501:デフォルトの名無しさん
07/05/31 12:55:18
letでレキシカル変数(LISPでは何?)として定義したhyoを成功のパターンで試すと正しくできますが、
失敗パターンのように要素?を""で囲むと正しく取得できません。
要素を""で囲っても正しく表引きしたいのですがLISPではどうするのでしょうか?
;=== 成功 ===
(let (
(hyo '((A 80) (B 70) (C 100))))
(print (assoc 'A hyo))
"OK"
)
○結果
(A 80)
"OK"
;=== 失敗 ===
(let (
(hyo '(("A" 80) ("B" 70) ("C" 100))))
(print (assoc "A" hyo))
"OUT"
)
×結果
nil
"OUT"
まだよくわかっていないのですが、
""とすると文字列限定される?ということでしょうか?
502:デフォルトの名無しさん
07/05/31 13:13:22
(assoc "A" hyo :test 'equal)
503:デフォルトの名無しさん
07/05/31 13:16:53
assocは普通はequal比較だから同じ文字列なら見つかると思うのだが、
数あるlisp方言の中にはそうでないのもあるのかな?
ちなみにemacs lispで実行してみたらこうなった。
(let (
(hyo '(("A" 80) ("B" 70) ("C" 100))))
(print (assoc "A" hyo))
"OUT"
)
("A" 80)
"OUT"
使ってる処理系が何かを示せばより的確な回答を返せる人がいるかもね。
504:デフォルトの名無しさん
07/05/31 13:16:56
>>502
ありがとう
皆さん、簡単に答えますね。
うらやましいです。
505:デフォルトの名無しさん
07/05/31 13:22:59
'eaualより#'equalの方がいくない?
506:デフォルトの名無しさん
07/05/31 13:41:37
>>503
えー、初心者危険
ちなみに xyzzyです。
507:デフォルトの名無しさん
07/05/31 14:07:30
>>505
なぜ?
508:デフォルトの名無しさん
07/05/31 21:46:17
>>499
エディタのカスタマイズ以外にはあんまり使ってないけど三年ちょっとぐらい
>>503
Common Lisp だと eql だよ
509:デフォルトの名無しさん
07/05/31 22:20:34
eq? アドレスの一致
eqv? 値の一致
equal? 構造の一致
文字列の一致に使えるのって
なんとなくeqv?かと思ったけど違うのね。
eqv?の立ち位置って微妙じゃね?
文字列もアトムと考えればeqv?で良い気がするけど。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5369日前に更新/220 KB
担当:undef