((Common Lisp) (Sche ..
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)
594:デフォルトの名無しさん
06/12/13 22:16:13
>>593
わかりにくいだけじゃなくて、
あれで挙動を規定できてるのか?
595:デフォルトの名無しさん
06/12/13 22:42:30
>>594
規定できてなかったら
処理系の実装者が「ここが曖昧だあー」って騒ぐんじゃないか?
596:デフォルトの名無しさん
06/12/14 02:45:25
>>595
「変数とは何か」くらい自明なものとみなされてる,とか
597:デフォルトの名無しさん
06/12/14 04:08:24
小さい処理系のソースを見りゃ良いんじゃないか。
598:デフォルトの名無しさん
06/12/14 04:45:33
>>594
まあ、comp.lang.schemeあたりを見てると変なケースについてこれは
どうなんだって議論が時々出るから、完璧じゃないな。
継続については7.2章もあるし、かなり良く理解されていると思う。
但し、dynamic-windのbefore/after thunkの継続が未定義になってる
のは欠点。(R6RS案では明確になってたはず)
マクロについても、特にマクロを生成するマクロについて曖昧な点が
あったような気がする。
>>596
「変数とは何か」は7.2章に書いてあるのでだめかな。
だがR5RSに突っ込むならもっとでかい穴がある。マクロで生成される
internal defineとか、トップレベルのセマンティクスとか。
599:デフォルトの名無しさん
06/12/15 04:28:38
SBCL を最初に知ったのはこのスレだったのでご報告。
「お前のパッチ多過ぎ、自分でコミットしろ」と言われて developer になる
ことになりました。このスレがなければ SBCL と出会えなかったかもしれない。
感謝。
600:デフォルトの名無しさん
06/12/15 04:36:53
!素敵
601:デフォルトの名無しさん
06/12/15 07:50:54
>>598 おめでとー。SBCL にはお世話になってます。今後ともがんばってください。
602:デフォルトの名無しさん
06/12/15 08:06:32
599すげえ。
めでたいのでage
603:デフォルトの名無しさん
06/12/15 15:31:01
すげー。sbcl とλ の未来のためにがんがってくれ!
おれもclで何か作ってみようかなぁ
604:デフォルトの名無しさん
06/12/16 02:05:34
乙!
605:デフォルトの名無しさん
06/12/16 10:18:38
リーダーマクロなるものがあるそうで使ってみたいと思っています。
どうすれば使えるんでしょうか。
scheme、CommonLisp問わず、
ごぞんじ処理系について教えてください。
606:デフォルトの名無しさん
06/12/16 13:10:12
Common Lispならもれなく付いてくる。使い方はCLtL2でも読むよろし。
607:デフォルトの名無しさん
06/12/16 20:29:18
>>474 の黒田のScheme叩きにShiro氏がなんか書いてるね
Scheme:マクロ:CommonLispとの比較
URLリンク(practical-scheme.net)
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5405日前に更新/211 KB
担当:undef