1 名前:デフォルトの名無しさん mailto:sage [04/02/01 19:10] 過去スレ Part1: piza2.2ch.net/tech/kako/987/987169286.html Part2: pc.2ch.net/test/read.cgi/tech/1002584344/ Part3: pc.2ch.net/test/read.cgi/tech/1008220265/ Part4: pc.2ch.net/test/read.cgi/tech/1016211619/ Part5: pc3.2ch.net/test/read.cgi/tech/1023091882/ Part6: pc3.2ch.net/test/read.cgi/tech/1031560687/ Part7: ruku.qp.tc/dat2ch/0311/20/1042167213.html Part8: pc2.2ch.net/test/read.cgi/tech/1058263391/ Part9: pc2.2ch.net/test/read.cgi/tech/1069594582/ 前、"Schemeスレはあるのになんでcommonlispスレはないの?"とか言って別のスレを建てた大馬鹿者がいたので、 標題にCommonLispと付けておきました。 Lispの話題でCommonLisp,Scheme,EmacsLisp(専用スレッドがある)以外のものが出ることはこのスレの歴史上でも 稀なので問題はほとんどないかと思います。 関連リンクは>>2-10 あたり
2 名前:デフォルトの名無しさん mailto:sage [04/02/01 19:12] □参考リンク□ 日本Lispユーザ会(日本語) jp.franz.com/jlug/index.html ここにかなりの情報があります。 jp.franz.com/ 削るとAllegro Common Lispのページへ プログラミング言語Scheme(日本語) ttp://www.sci.toyama-u.ac.jp/~iwao/Scheme/scheme.html Schemeの人はまずここを見ましょう。 Lisper への道(日本語) ttp://www.geocities.co.jp/SiliconValley-Oakland/1680/rakup.html 判りやすいLISP入門サイト。 Schemeへの道(日本語) ttp://www.stdio.h.kyoto-u.ac.jp/~hioki/gairon-enshuu/SchemeNotes/scheme.html ここはschemeの入門サイト。
3 名前:デフォルトの名無しさん mailto:sage [04/02/01 19:13] 慶応の授業のページ・記号処理プログラミング 2001 buri.sfc.keio.ac.jp/lisp/menu.html Practical Scheme(日本語) ttp://www.shiro.dreamhost.com/scheme/index-j.html 「普通のやつらの上を行け」など、興味深い文書を沢山翻訳されてます。 (Gaucheという完成度の高いscheme処理系作者さんのページでもあります。) Scheme Hash(英語) okmij.org/ftp/Scheme/index.html S式でXMLを使える様にするSXMLなど John McCarthy's Home Page www-formal.stanford.edu/jmc/ LISPの生みの親、J・マッカーシーのページだそうです。 Association of Lisp Users www.alu.org/alu/home 米国のLispユーザ会
4 名前:デフォルトの名無しさん mailto:sage [04/02/01 19:14] □SICP関係□ SICP(英語) mitpress.mit.edu/sicp/full-text/book/book.html 「計算機プログラムの構造と解釈」の原書です。 全てオンラインで読めます。 計算機プログラムの構造と解釈 第二版 (snip) に関連するホームページ www.ipl.t.u-tokyo.ac.jp/sicp/ SICPの回答集 www.melt.kyutech.ac.jp/~gogogo/sicp_ex/ pluto.aurorasd.co.jp/~mkama/sicp/ www.ipl.t.u-tokyo.ac.jp/sicp/solution.root.html www.sampou.org/scheme/sicp/answer/
5 名前:デフォルトの名無しさん mailto:sage [04/02/01 19:15] □その他□ Schemeで書かれた正規表現ライブラリ ttp://www.cs.rice.edu/~dorai/pregexp/pregexp.html 幻の「入門Scheme」 ttp://www4.ocn.ne.jp/~inukai/scheme_primer_j.html オンラインで読める 各種scheme処理系をcygwin上からビルドする方法など。 ttp://www.geocities.co.jp/SiliconValley-PaloAlto/7043/ Bit - Implantation compacte de Scheme www.iro.umontreal.ca/~dube/ mini-schemeよりも小さい(?)bytecode変換系 Lisp 言語処理系: CAMPUS LIsP, Lemon version aten.aial.hiroshima-u.ac.jp/~kakugawa/clisp/index-ja.shtml Cコードによるわずか1000行の実装 Cliki www.cliki.net/index CommonLispのプログラムがたくさん紹介されているのでここを当たるべし。
6 名前:デフォルトの名無しさん mailto:sage [04/02/01 19:19] encyCMUCLopedia www.isr.ist.utl.pt/library/docs/encycmuclopedia/doc/ cmucl以外でも有益なはず CMUのLisp Repository ftp://ftp.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/0.html 新旧様々なプログラムが置いてある Tiny CLOS Tutorial home.adelphi.edu/~sbloch/class/272/tclos/tutorial.shtml Schemix www.abstractnonsense.com/schemix/ Linuxのkernelへのパッチで、/dev/として扱えるTinyScheme Bibliography of Scheme-related Research library.readscheme.org/ Scheme関連の論文リンク集
7 名前:デフォルトの名無しさん mailto:sage [04/02/01 19:20] ごめん、こっちだった 過去スレ Part1: piza2.2ch.net/tech/kako/987/987169286.html Part2: pc.2ch.net/tech/kako/1002/10025/1002584344.html Part3: pc.2ch.net/tech/kako/1008/10082/1008220265.html Part4: pc.2ch.net/tech/kako/1016/10162/1016211619.html Part5: pc3.2ch.net/tech/kako/1023/10230/1023091882.html Part6: pc3.2ch.net/tech/kako/1031/10315/1031560687.html Part7: ruku.qp.tc/dat2ch/0311/20/1042167213.html Part8: pc2.2ch.net/tech/kako/1058/10582/1058263391.html Part9: pc2.2ch.net/test/read.cgi/tech/1069594582/
8 名前:デフォルトの名無しさん mailto:sage [04/02/01 19:21] その他よさそうなリンク awkで書かれたわずか500行のLispインタプリタ awklispを読めばLispが理解できる ttp://www.accesscom.com/~darius/ Emacs Lisp 2 pc2.2ch.net/test/read.cgi/tech/1068467385/ * Hotdog Scheme rover.cs.nwu.edu/~scheme/ MS が金出してたみたい * Bigloo www-sop.inria.fr/mimosa/fp/Bigloo/ CLR 用のコードを吐けるようになったらしい 継続 なんでも継続 ttp://www.shiro.dreamhost.com/scheme/docs/cont-j.html Schemeへの道:継続 www.stdio.h.kyoto-u.ac.jp/~hioki/gairon-enshuu/SchemeNotes/continuation.html 継続の使い方 www.geocities.co.jp/SiliconValley-PaloAlto/7043/index.html#continuation 継続の使用法 www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/block.html CPS(継続渡しスタイル)の説明 www.csl.sony.co.jp/person/masui/Forum/data/20011215023622/
9 名前:デフォルトの名無しさん mailto:sage [04/02/01 19:22] 乙彼〜 >>7 君もやっちまったか(w
10 名前:デフォルトの名無しさん mailto:sage [04/02/01 19:22] 独習 Scheme 三週間 www.sampou.org/scheme/t-y-scheme/t-y-scheme-Z-H-1.html Schemeの教科書 よろずや www.geocities.co.jp/SiliconValley-SanJose/7474/ lispの実用的な情報が色々。
11 名前:デフォルトの名無しさん mailto:sage [04/02/01 19:29] Arc ttp://www.paulgraham.com/arc.html
12 名前:デフォルトの名無しさん mailto:sage [04/02/01 19:31] ∧_∧ ( ・∀・) | | ガッ と ) | | Y /ノ 人 / ) < >_∧∩ _/し' //. V`Д´)/ ←11 (_フ彡 /
13 名前:デフォルトの名無しさん mailto:sage [04/02/01 19:52] 仕様関係) CLtL2: Common Lisp the Language 2nd edition www-2.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html CLHS: Common Lisp Hyper Spec www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/FrontMatter/Chapter-Index.html R5RS: Revised(5) Scheme(ja) www.sci.toyama-u.ac.jp/~iwao/Scheme/r5rsj/html/r5rsj.html 便利な情報リソース) The Common Lisp Cookbook: いわゆる Cookbook cl-cookbook.sourceforge.net/ 小さい実装) SECDR-Scheme: SECD machine model に基づく実装 ttp://lily.fan.gr.jp/~kmd/adhoc/view.rhtml?n=SECDR-Scheme_woyomu Minischeme: 1 ファイルに凝縮された Scheme 処理系 tinyscheme.sourceforge.net/minischeme.tar.gz TinyScheme: Minischeme を色々弄ったもの tinyscheme.sourceforge.net/ KI-Scheme, AM-Scheme, etc... www.nifty.com/download/dos/prog/lisp/ LispMe: Palm 上で動く Scheme 処理系. これも SECD virtual machine.  www.lispme.de/lispme/
14 名前:デフォルトの名無しさん mailto:sage [04/02/01 19:56] リンクとかはどこかに置いとけばいいんじゃないかな。
15 名前:デフォルトの名無しさん mailto:sage [04/02/01 23:08] 過去スレ LISP Scheme pc2.2ch.net/test/read.cgi/tech/987169286/l50 LISP Scheme Part2 pc2.2ch.net/test/read.cgi/tech/1002584344/l50 LISP Scheme Part3 pc2.2ch.net/test/read.cgi/tech/1008220265/l50 LISP Scheme Part4 pc2.2ch.net/test/read.cgi/tech/1016211619/l50 LISP Scheme Part5 pc2.2ch.net/test/read.cgi/tech/1023091882/l50 LISP Scheme Part6 pc2.2ch.net/test/read.cgi/tech/1031560687/l50 LISP Scheme Part7 pc2.2ch.net/test/read.cgi/tech/1042167213/l50 LISP Scheme Part8 pc2.2ch.net/test/read.cgi/tech/1058263391/l50 LISP Scheme Part9 pc2.2ch.net/test/read.cgi/tech/1069594582/l50
16 名前:デフォルトの名無しさん mailto:sage [04/02/02 02:04] MacLispスレ立てていいですか?
17 名前:デフォルトの名無しさん mailto:sage [04/02/02 02:09] >>16 いい加減にしてください。
18 名前:デフォルトの名無しさん mailto:sage [04/02/02 02:17] >>16 まず、LISPスレ見てる様な奴は、ほとんどが他のLISP系スレも 同時に見てる、という事を忘れないでくれ。 ここのスレタイが`CommonLISP'となった以上、話題提供したり 自分で盛り立てたりして維持できると思うのなら立てるのは自由だ。 本当に立てるならスレタイを「マイナーLISP隔離スレ」みたいな感じに してくれると再利用しやすいと思う。 まあよく考えれ。
19 名前:デフォルトの名無しさん mailto:sage [04/02/02 03:19] schemeでxyzzyみたいな軽いエディターを作ってくれるなら ゆるし、う、うご、、、ごめんなさい
20 名前:デフォルトの名無しさん mailto:sage [04/02/02 14:54] >>19 guile-emacs
21 名前:デフォルトの名無しさん mailto:sage [04/02/02 17:37] 1/29のレス 15 1/30のレス 41 1/31のレス 24 2/01のレス 89 驚異的だなw
22 名前:デフォルトの名無しさん mailto:sage [04/02/02 20:40] >>14 どこかって? WiLiKi に置いちゃうとか?
23 名前:デフォルトの名無しさん mailto:sage [04/02/02 21:45] >22 CL的にはこっちかとw ttp://cgi.at.infoseek.co.jp/lambda_list/cgi-bin/lambda.cgi?name=CommonLisp#7
24 名前:デフォルトの名無しさん mailto:sage [04/02/03 00:14] >>23 Weblog って要するに日記ツールでしょ? CLISP って遅いって聞くし。 >>22 の言うように WiLiKi みたいな Wiki のほうがまとめとか書き込めて 嬉しいんじゃないかな。でも Shiro さんとことかに書くのはマズイ予感。 2ch 色がついたら WiLiKi とかのイメージダウンになるかもしれないし…。
25 名前:デフォルトの名無しさん [04/02/03 01:52] 少々の2ch色だったら平気だと思うんだけど。
26 名前:デフォルトの名無しさん mailto:sage [04/02/03 02:20] >>1 大馬鹿者はおまえ
27 名前:デフォルトの名無しさん mailto:sage [04/02/03 14:14] >>25 2ch ねらーが数人とかならともかく,スレのまとめとか FAQ とかあるのが 少々か?世の中には 2ch 嫌いな人も居るわけで,そーゆう人が引いてしま うんじゃないかとちょっと心配.
28 名前:デフォルトの名無しさん mailto:sage [04/02/03 15:16] つまり、wikiが使えて、無料のウェブホスティングサービスを探せということか。
29 名前:デフォルトの名無しさん mailto:sage [04/02/03 16:14] そんな便利なものがあるわけが
30 名前:デフォルトの名無しさん mailto:sage [04/02/03 16:38] CGIでPerlが使えるとかありそうな気もするけどな。SourceForgeはソフトウェアだけか. 太っ腹な個人に期待か。
31 名前:デフォルトの名無しさん mailto:sage [04/02/03 16:55] Perlで書かれたCommonLispの処理系とかって見たことありますか?
32 名前:デフォルトの名無しさん mailto:sage [04/02/03 17:00] 無料ホスティングサービスは perl ばっかりかと思っていましたが, python, ruby が動かせるところも当たり前になってきましたね. # もちろん重いのは禁止ですが. lisp も...
33 名前:デフォルトの名無しさん mailto:sage [04/02/03 17:14] つーか、システムとしてWikiが動いてりゃ、裏でそれがPerlだろうと何で書かれていても 構わないって話じゃないの? >>32 そういう無料ホスティングサービスあるんだ。Wikiも動かせるよね、重そうじゃないし。 >>31 Perlで書かれたCLじゃなくて、Common LispをPerlに直すトランスレータの話題は 最近、comp.lang.lispであったな。
34 名前:デフォルトの名無しさん mailto:sage [04/02/03 18:35] >>24 weblog っても /(weblog 10) ← 10 日数分の日記を表示するコマンド みたいなのがあるだけで、基本的には Wiki だよ。データをメモリに 読みこんで動作するらしいし、ローカルで動かす分には CLISP でも 全然遅さは感じない。しかしリンクが _(Link) みたいな非標準な形式だし HTML の生成機能とか不要な機能もついてるし、みんなで使う Wiki にはちょとねぇ。
35 名前:flatline@Vim%Chalice ◆r6EONKKhcc mailto:sage [04/02/03 19:10] ttp://www.komaba.utmc.or.jp/~flatline/wiliki.cgi いつまで存在するか保証はしません
36 名前:デフォルトの名無しさん mailto:sage [04/02/03 19:37] キタ─wwヘ√レvv〜(゚∀゚)─wwヘ√レvv〜─ !!
37 名前:デフォルトの名無しさん mailto:sage [04/02/03 20:29] >>35 onlisp.pdf頂きました。アリガトソ
38 名前:デフォルトの名無しさん mailto:sage [04/02/03 20:36] flatlineって誰だっけ
39 名前:デフォルトの名無しさん mailto:sage [04/02/03 20:43] R5RS に書いてある、Scheme がメッセージ送信的な記述をサポートしているという のは、↓にある様な事が出来るという事ですよね? ttp://www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/actor/actor.html メッセージ送信と聞くと、オブジェクト指向言語を思い浮かべるのですが、何らかの 繋がりがあるのでしょうか。Act1 の資料を探したのですが、見つかりませんでした。
40 名前:デフォルトの名無しさん mailto:sage [04/02/03 22:31] Act1の資料て何?
41 名前:25 mailto:sage [04/02/03 22:39] >>35 さん ありがとうごさいます。 >>25 は初心者スレとの勘違いした上に文章削って、 「やっぱ辞めとこ」って"キャンセルボタン"を押した つもりが"OK"ボタンだったりする2重の誤射です。 おちゅーしゃのお気に入りの中に、旧スレとここと初心者が 並んでてついうっかりというか…。 lisp初心者どころかプログラム初心者ですが利用させて いただきます。といってQ&Aを拾うことくらいで、 読ませて頂くことがほとんどだと思いますが。
42 名前:デフォルトの名無しさん mailto:sage [04/02/03 22:46] >39 ちょうどbitの掲載号を読み返してた所だったりw 教えてくれてありがd!
43 名前:デフォルトの名無しさん mailto:sage [04/02/03 23:58] >>35 に感謝しながら >>14 はリンク切り貼りする事。 いいだしっぺにやってもらおうじゃないか。
44 名前:デフォルトの名無しさん mailto:sage [04/02/04 08:32] 基地外に感謝するのは嫌。
45 名前:デフォルトの名無しさん mailto:sage [04/02/04 09:06] >>44 うすっぺらいやっちゃな。
46 名前:デフォルトの名無しさん [04/02/04 09:31] >>44 が基地外
47 名前:デフォルトの名無しさん mailto:sage [04/02/04 10:04] >>35 > ttp://www.komaba.utmc.or.jp/~flatline/wiliki.cgi > いつまで存在するか保証はしません ありがとう。内容がたまってきたら、定期的にバックアップをどっかに おいておいてくれませんか。バックアップの負担を分散しておけば、 何かあったときに、復旧できる可能性が増すでしょ。
48 名前:デフォルトの名無しさん mailto:sage [04/02/04 10:07] つまり、tar玉かなにかを誰でもダウソできる場所においておくということね。 無理にやってくれなくてもいいけど。
49 名前:デフォルトの名無しさん mailto:sage [04/02/04 10:18] www.komaba.utmc.or.jp/~flatline/wiliki.cgi にすこし書いときました。Wikiは初めてなので、もっといいフォーマット があるかも。
50 名前:デフォルトの名無しさん mailto:sage [04/02/04 10:24] >>47 どっか CGI の使える無料鯖とかでミラーできるかもしれないしね。 閲覧だけならそっちを勧めれば本家に負荷かけずに済んでウマー
51 名前:デフォルトの名無しさん mailto:sage [04/02/04 10:30] >>50 > どっか CGI の使える無料鯖とかでミラーできるかもしれないしね。 ミラーとなると... Wilikiってschemeで書かれているんだよね? schemeを使わせてくれる無料サーバがあるかな? もしかして、Wilikiって文法レベルで他の言語処理系で実装されている Wikiシステムと互換性があるのかな?
52 名前:デフォルトの名無しさん mailto:sage [04/02/04 10:43] >>51 基本的な構文くらいなら Perl で作っても比較的簡単でしょ。マクロは厳しいかもし れないけど。まー最悪 HTML にしちゃうって手もあるわけで。 # でもファイルのアップロードとかできる Perl 製 Wiki も捨てがたいなー。WiLiKi # だとスレのアーカイブをウプするのとか管理者にやってもらわなきゃいけないよね?
53 名前:デフォルトの名無しさん mailto:sage [04/02/04 14:51] wilikiにschemeの項目を少し追加しました。 といっても項目だけなので内容はどなたか宜しう。 既存のもの(toyama-uとか本家WiLiKiとか)と同じのを作ってもしょうがないので ここでの質問などを纏めてFAQなどを充実できたらいいなあ。
54 名前:デフォルトの名無しさん mailto:sage [04/02/04 17:29] CMUCLのCVSにアクセスできん.... cvs -d :pserver:anonymous@anoncvs.cons.org:/home/anoncvs/CVS-cmucl login -> unknown host となるので、MLを見てどうやらマシンが不調なのか別のサーバに切り替わったらしい。 cvs2.cons.orgかtrumpet.cons.orgが使えるらしいので cvs -d :pserver:anonymous@cvs2.cons.org:/home/CVS-cmucl login cvs -d :pserver:anonymous@trumpet.cons.org:/home/CVS-cmucl login とやってもunknown hostとなる。MLには新サーバのIPが207.22.2.3となっていたので cvs -d :pserver:anonymous@207.22.2.3:/home/CVS-cmucl login とやったが、これは永遠と待たされてタイムアウト。 誰かCVSにアクセスできてる御仁はおらぬか。
55 名前:デフォルトの名無しさん mailto:sage [04/02/04 17:38] 永遠と日本語勉強するよろし。
56 名前:デフォルトの名無しさん mailto:sage [04/02/04 17:48] >>54 > となるので、MLを見てどうやらマシンが不調なのか別のサーバに切り替わったらしい。 ほんとに ML 読んだのか? 切り替わっ *た* と? とりあえずマターリ待つかもっかい ML 読み直すか汁。
57 名前:デフォルトの名無しさん mailto:sage [04/02/04 18:35] マシンが切り替わったかどうかははっきりと読んでいないのだが、少なくともアクセスする場所は変わったような。 "update on CVS repository"で The new IP number for cvs2.cons.org (trumpet.cons.org) is 207.22.2.3. I put an entry in my /etc/hosts file to map cvs2.cons.org to that new number and was able to access the repository OK. と、Werkowski氏が言っておられるので、この二つのドメインにアクセスしてみた。 それがunknown hostになるので、 "I put an entry in my /etc/hosts file"と言っているところからして、 グローバルなドメインには含まれていない予感がしたので、 207.22.2.3に直に cvs -d :pserver:anonymous@207.22.2.3:/home/CVS-cmucl login とやってみたがタイムアウト。cmuclのwebの例に倣って cvs -d :pserver:anonymous@207.22.2.3:/home/anoncvs/CVS-cmucl login としてもやはりタイムアウト。 Toy氏がupdateに15分かかる云々と言っているが、loginに5分以上かかるということはあるまい と考えて、思案に暮れている次第。 その他、 www2.cons.org/ftp-area/cmucl/CVS-cmucl/ でブラウズしようとしても404。 ftp2.cons.orgやcmucl.cons.orgもやはり使えない状態。 "Status of CVS machine","Hosting the CVS machine"も読んだが解決せず。 しかし、cvs-commitにはtoy氏によるcvsアップデートの知らせが続々と届き、 そのCVSサーバはtrumpet.cons.org(207.22.2.3) なのでもはや私には理解不能ということでここに助けを求めました。
58 名前:デフォルトの名無しさん mailto:sage [04/02/04 18:55] なんで解決しないのか不思議だが Martin タンの↓のメールを全て読み飛したのか? マターリ待てと逝っているだろーが。2ch で聞いてどうにかなる話じゃない。 1/16 Martin: we are still fiddling with the wires and I won't make it this weekend, sorry. 1/23 Martin: We still need more time to create the physical (cable, floor) space for the machine but we will do it. Sorry for the delay, shouldn't be too long anymore now. 1/27 Martin: However, I decided to exchange some of the hardware. ITA will host it where I don't have instant physical access, so I will move the installation/harddisk to one of my former Quakestations^H^H^H known-good battletested PCs and while I'm at it upgrade to the newest FreeBSD. Things are coming along, though and it looks like we get a cozy, well-connected place.
59 名前:デフォルトの名無しさん mailto:sage [04/02/04 19:01] >2ch で聞いてどうにかなる話じゃない。 いえ、それを聞いて理解しました。 cvs-commitの日付を読み違えていて、21日以降cvsへのアクセスがないことに気付きませんでした。スマソ。
60 名前:デフォルトの名無しさん [04/02/05 16:29] Gauche release 0.7.4 リリースage でもバグがあった為、バグフィックス版0.7.4.1を だすそうです。
61 名前:flatline@Vim%Chalice ◆r6EONKKhcc mailto:テスト勉sage [04/02/05 16:51] 例えば,Javaというプログラミング言語があります. 現在,JavaかPerlの求人多いみたいですね. システム何とか学科の知合いによれば,猫も杓子もWebアプリって感じで(レベルは一様に低い). Common LispがJavaに敵いそうもない分野とは? GUIは,これだけ引きはなされてしまってはまず追い抜くのは無理でしょう. でも,SwingだのAWTだのが使えるのはスタンドアローンアプリ. Javaでスタンドアローンアプリ開発を大々的に行っている所ってどこよ? (あるんでしょうけど) JavaでJEditみたいなエディタ作れると就職にいいですか? 現在のJavaは,DBやWebなどサーバサイドに活路を見出しているらしい. それなら,Common Lispがどうして敵わないことがあろうか. そりゃライブラリだってフレームワークだって現在ではJavaのN分の一だろうけど, Common Lispは言語としては本質的にJavaより優れている.完全に動的なその性格からして. (Javaさあ,クラスキャストなんぞしてるんなら静的型システムの意味ないって) Lispは遅い? 何と比べて? Javaより遅いんですか? Javaが狙っている分野は,Lispの主戦場ですよ.みなさん,ぜひぜひがんばって下さいよ.
62 名前:デフォルトの名無しさん [04/02/05 17:00] だからflatlineって誰だっけ
63 名前:デフォルトの名無しさん mailto:sage [04/02/05 17:07] James Goslingって、LispとCの中間的な言語を作るの好きみたいだね。 Gosling EmacsのMock Lispといい、Javaといい。 Gosling EmacsはGNU Emacsに負けたけど、Javaはどうなるかな。 Sunが潰れたら、意外と簡単に逝ってしまいそうな気もする。 それとも、もう臨界値をこえて普及したから簡単には死なない? プログラミングしやすさで考えると、C++ならJavaでいいやって 気もするけど、それならC#のほうがもっと気持いい?
64 名前:デフォルトの名無しさん mailto:sage [04/02/05 17:09] >>62 On Lispのボランティア翻訳者。
65 名前:デフォルトの名無しさん mailto:sage [04/02/05 17:16] flatlineの元ネタはたぶん「ニューロマンサー」 ああ、80年代は遠くなりにけり。
66 名前:デフォルトの名無しさん mailto:sage [04/02/05 17:57] 正直 〜より優れている とか 勝つ とか 負ける とかはあんまり興味を持てないんだ よな.他の言語の良い面は積極的に取り入れるべきだと思うし.(Java だとパッケー ジシステムとか豊富なライブラリとか?).あと Common Lisp は完全に動的じゃな いぞ.型とか型とか型とか.オプショナルな型システム大好きな漏れにはこれがツボ なわけだが(必須だとウザーだけど無いと物足りない). Web 関連とかってどうなのかねぇ? Common Lisp だと Aserve + WebAction だろう けど趣味で遊べるようなもんでもないしねぇ.もっと気軽にあそべる環境がないと人 気でないと思われ.Portable Aserve とかもスレッド使える実装ってフリーじゃあん まりないし.IMHO も慣れてないと使うの大変だろうし.他になんかあったっけ?
67 名前:デフォルトの名無しさん mailto:sage [04/02/05 19:18] cl-httpってのもあるね。 cl-httpを解説してた本があったな。
68 名前:デフォルトの名無しさん mailto:sage [04/02/05 19:59] たぶん MCL を題材にした ASCII の本だったと思われ。 cl-http が気軽に遊べるかどうかは微妙だが……
69 名前:デフォルトの名無しさん mailto:sage [04/02/05 21:56] >>60 すでに 0.7.4.1 になってるね。インスコした記念 age
70 名前:デフォルトの名無しさん mailto:sage [04/02/06 08:53] >>66 どの言語がどの言語に対してどんな場面で、なにがどういうふうに勝っているのか を分析しなくては、言語が発展しないのでは? ただの印象批評で、カッタ、マケタ、ワショーイ、 ではは面白くないけど。 まぁ、俺は単純に言語の栄枯盛衰をみているだけでも楽しいけどね。 Common Lispの型システムよりも、より動的な型システムを持つ言語を教えて くれないかな? >>67 cl-httpってライセンスが曖昧だった気がする。大統領関連の公式ウェブサイト の一部でcl-httpが使われていた(いる?)って話があったね。
71 名前:66 mailto:sage [04/02/06 12:25] >>70 他の言語の良い面は見習うべきだと言ってるつもりなんだけど ……例えば Java だ とインターフェースに対してプログラムするスタイルとか CLOS にインタフェースを MOP で組み込んでみればいいわけで. より動的な型システムってのはどーゆうのかよくわかりません.物分りが悪くてスマソ
72 名前:デフォルトの名無しさん mailto:sage [04/02/06 12:40] >>71 > 他の言語の良い面は見習うべきだと言ってるつもりなんだけど うまくできるのなら賛成。 > 例えば Java だ > とインターフェースに対してプログラムするスタイルとか CLOS にインタフェースを > MOP で組み込んでみればいいわけで. Javaのインターフェイスというと、メソッドのシグナチャの一群をインターフェイスと 呼んで一まとめにしてあつかうやつだよね。これって、CLOSだと多重継承とGeneric関数で 実現できるのでは? >>66 > あと Common Lisp は完全に動的じゃな > いぞ.型とか型とか型とか.オプショナルな型システム大好きな漏れにはこれがツボ > なわけだが(必須だとウザーだけど無いと物足りない). 上の記述を見て、66さんが好きな型システムを実現している言語ってどんなんかなと 思ったわけ。CLより、もっと「ユルイ」型システムかなとか。
73 名前:66 mailto:sage [04/02/06 17:48] >>72 漏れは Common Lisp にも(オプショナルで)静的な型がある == "完全に動的" ってわけじゃない というつもりですた.で,これが好きだと言ってるつもりだったんです. 作るだけなら動的だけでも良いけど動かす時には性能が必要なとこもあるじゃん.
74 名前:デフォルトの名無しさん [04/02/06 22:13] Gauche-0.6.8/FreeBSD で sys-access が変なので syslib.c の if defined(FreeBSD) をはずしてみました。 一見直ってるけどいいのかな。 FAQ?
75 名前:デフォルトの名無しさん mailto:sage [04/02/06 22:18] >>35 Wiliki のデータベースって他の環境でも使いまわせるのかな? とりあえずダウンロード可能なところに置いて頂けると嬉しいなぁ。
76 名前:デフォルトの名無しさん mailto:sage [04/02/06 22:23] >>74 0.7.4.1 使わないのはなんで?
77 名前:デフォルトの名無しさん mailto:sage [04/02/06 23:24] ports が 0.6.8 で止まってるからと予想。
78 名前:デフォルトの名無しさん [04/02/06 23:28] >>76 恐れ入ります。 FreeBSDで make したらなんか新しいの取りに行ったと思ったら。
79 名前:デフォルトの名無しさん mailto:sage [04/02/07 05:29] あれ、まだこれ貼ってないの? flatline 氏のサイト user.ecc.u-tokyo.ac.jp/~g340299/ Paul Graham『On Lisp』邦訳 user.ecc.u-tokyo.ac.jp/~g340299/onlisp_j.pdf user.ecc.u-tokyo.ac.jp/~g340299/onlisp_j.tex (最終更新日:2004.02.01 翻訳済み:18章/全25章) おまけ。PDF から引用。 > 翻訳に手を付けたのは2003 年の始め位だったのですがね. > 受験勉強から逃避していたあの頃からもう1 年以上経ってしまったのか. 受験生のうちからこんな高水準の翻訳を…。 # スレ違いだが、Vim を Scheme ベースで作り直してくれる人がいたら # 現人神として終生、たたえられると思う。
80 名前:デフォルトの名無しさん mailto:sage [04/02/07 13:04] ついに CMUCL が Mac OS X に来たね。 www.pmsf.de/personal/darwin/ article.gmane.org/gmane.lisp.cmucl.devel/4901
81 名前:デフォルトの名無しさん mailto:sage [04/02/07 13:21] え、まだなかったっけ? sparcあるから既にPowerPCもあるかと思ったよ。 じゃあ残るはWindows(←なぜかportできない)だけだね。
82 名前:デフォルトの名無しさん mailto:sage [04/02/07 13:24] >>81 "(←だれも port しない)" の間違いだろう。何故か、なんてのは自明だろ。 主要開発者がだれも Windows 使ってないから。
83 名前:デフォルトの名無しさん mailto:sage [04/02/07 14:19] 元ネタ的には、"(←なぜかportされない)" だろうね
84 名前:デフォルトの名無しさん mailto:sage [04/02/07 14:42] まあ、cygwinでも使わないと非現実的だよな。
85 名前:デフォルトの名無しさん mailto:sage [04/02/07 14:45] なんだっけ、ブートストラップさせるんだよな スゲー面倒そう 処理系2つ作り置きするようなもんだろ?
86 名前:デフォルトの名無しさん mailto:sage [04/02/07 14:51] build script 入ったのにね > ( ´д)ヒソ(´д`)ヒソ(д` ) < コマンド 4 回打つのも "スゲー面倒" なんだって というのは冗談として、そのへんは勘弁してください。そんなに珍しい事でもないでしょう?
87 名前:デフォルトの名無しさん mailto:sage [04/02/07 15:11] cygwinでcmuclが使用しているメモリとシグナルのシステムコールがエミュレートされているのかな? cygwinのライセンスが多分GPL系ということで、cmuclの大部分がパブリックドメインであることを 考えると、ライセンス的に縛りがきつくなるね、cygwin使うと。 cmuclのメーリングリストへ、windowsポートに金だすよと言ってた人がいたけど、どうしたかな。
88 名前:デフォルトの名無しさん mailto:sage [04/02/07 15:22] できたら金を払うよ〜と言われても興味ないもんはだれもやらんでしょ。Lisper を 雇うとか汁。どうしても欲しければ仕事として頼むという手もある。pmai タンを一年 も雇ってフルタイムで移植してもらえば Win32 ネイティブで移植できるんじゃねーの。
89 名前:デフォルトの名無しさん mailto:sage [04/02/07 15:31] 「Portしてくれたら金を払ってでも使う」じゃなくて 「WindowsにPortしたいので金を払うからやってくれるLisper募集」 していました。それで、元のライセンス(パブリックドメイン)から変更したくないので、 cygwinは使わない方向で考えていると言っていました。俺の知る限り、1人がやりたいと 名乗りをあげていました。あとSBCLの方へいってみれば、とも言われていました。
90 名前:デフォルトの名無しさん mailto:sage [04/02/07 17:34] >元のライセンス(パブリックドメイン) これが結構色々な面で障壁になってるよね。
91 名前:デフォルトの名無しさん mailto:sage [04/02/07 17:40] >>90 そうか? パブリックドメインよりも制限のないライセンス形態ってあるの?
92 名前:デフォルトの名無しさん mailto:sage [04/02/07 18:04] >>90 >>91 「元のライセンスを保つためには,伝播性をもつライセンスのものと組み合わせられない」 ということなら,GPLなどの伝播性が問題ということでしょう. ところで私はGPLの要求は真っ当なものだと思う. この辺の悩みは健全な開発に必要不可欠なコストでしょう.
93 名前:デフォルトの名無しさん mailto:sage [04/02/07 18:34] 制限がないから障壁なんじゃないか。 この意味が分からないとしたら、>>91 はオープンソースライセンスをほとんど知らないんだろうね。
94 名前:デフォルトの名無しさん mailto:sage [04/02/07 18:39] GPL キモい。他所でやってくれ。
95 名前:デフォルトの名無しさん mailto:sage [04/02/07 19:01] >>94 煽りは他所でやってくれ
96 名前:デフォルトの名無しさん mailto:sage [04/02/07 20:03] Kahua: 継続ベースのアプリケーションサーバー ttp://www.kahua.org/
97 名前:デフォルトの名無しさん mailto:sage [04/02/08 01:01] >>96 で?低脳な漏れにもわかるように、もちっと紹介してくれょぅ。 ドキュメント読んでも利点がよくわからん。どこがどうすごいの?
98 名前:デフォルトの名無しさん mailto:sage [04/02/08 02:29] >>97 かっこいい
99 名前:デフォルトの名無しさん mailto:sage [04/02/08 03:14] >>97 貴君はまずこの辺から。 www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi?Scheme%3aCPS
100 名前:デフォルトの名無しさん mailto:sage [04/02/08 10:33] >>93 > 制限がないから障壁なんじゃないか。 > この意味が分からないとしたら、>>91 はオープンソースライセンスをほとんど知らないんだろうね。 意味が分かりません。障壁とはなんですか? 具体例をあげていただけますか?
101 名前:デフォルトの名無しさん mailto:sage [04/02/08 10:44] win32oleできるScheme処理系ってありますか? ググったらそれらしいのが出てきたけど、いまいち手がかりが つかめず…
102 名前:デフォルトの名無しさん mailto:sage [04/02/08 13:03] >>101 COM/ActiveX なら DrScheme (MysterX) がサポートしていますけど。 実際にはどういうことをやりたいのかな? ドキュメントへのオブジェクト埋め込みかな。
103 名前:デフォルトの名無しさん mailto:sage [04/02/08 13:05] >>102 WSH の完全な代替.ナンチャッテ
104 名前:100 mailto:sage [04/02/08 13:05] えーと、煽りと間違われると無念なので、少し説明。 俺は、オープンソースライセンスやパブリックドメインについての議論を 多少なりともフォローしてきているつもりです。 今後、cmuclを使用する上で、何かライセンス的にハマるといやなので、 パブリックドメインに置かれているソフトウェアが誰にどういう面で 障壁になっているのか教えてくれませんか? >>92 > 「元のライセンスを保つためには,伝播性をもつライセンスのものと組み合わせられない」 > ということなら,GPLなどの伝播性が問題ということでしょう. どのように組み合わせるかによって、GPLが持つ伝播性の影響がでるかどうか変わるでしょう。
105 名前:デフォルトの名無しさん mailto:sage [04/02/08 13:11] >>100 つまりこういうことじゃないかな。 GPL,LGPLみたいなライセンスが使われているライブラリ(など)は、 まったく制限のないパブリックドメインのソフトウェアには使えないと。 例えば、cmuclが(GPLだと反発する香具師が多そうなので)LGPLでリリースされていたとすると、 cmuclの中に取り込めるコードがどのくらいあるか考えてみるといい(何もLispのコードに限ったことじゃないわけだし)。 そして、それらが現状の(パブリックドメインの)cmuclに取り込められるかどうか、をね。 オープンソースの現状は sourceforge.net/softwaremap/trove_list.php?form_cat=14 になっているわけで、GPL/LGPLキモイとか言っても、無視することはできないだろ。
106 名前:デフォルトの名無しさん mailto:sage [04/02/08 13:14] 要するにこの場面で極論するとcygwinが使えないのが障壁とw まあ、パブリックドメインなら派生ソフトウェアは自由にライセンスを選べるわけだし、 気に入らないなら派生作ってGPLにしたっていい(保守する人が少なければ廃れるのがオチだけど)。 だから、そこまで深刻な問題でもないよな。
107 名前:デフォルトの名無しさん mailto:sage [04/02/08 13:20] SFUが.NETみたいに標準搭載になればいいのにねえ。 WinFXでWin32を順次置き換えていくらしいから、 もう既にWin32で囲い込みする必要もないだろうに。 サポートの手間がメンドクサイからまあ、なさそうだけど。
108 名前:デフォルトの名無しさん mailto:sage [04/02/08 13:37] >GPL,LGPLみたいなライセンスが使われているライブラリ(など)は、 >まったく制限のないパブリックドメインのソフトウェアには使えないと。 まず、自分で使用するだけなら法的に問題なく使えるよね。 ソフトウェアを配布する場合でも、パブリックドメインになっている ソフトウェアをGPL(など制限のきつい方)にライセンスしなおせば、 問題なく使えて配布できるでしょ? > 例えば、cmuclが(GPLだと反発する香具師が多そうなので)LGPLでリリースされていたとすると、 > cmuclの中に取り込めるコードがどのくらいあるか考えてみるといい(何もLispのコードに限ったことじゃないわけだし)。 パブリックドメインにあるソフトウェアはいつでも、ライセンスを変更する自由があるという点が一つ。 これから、もしGPL, LGPLと互換性がないソフトウェア群が非常に多くなったときにどうするか? FSFと一蓮托生でいいのか。 そこらへんを考えると、パブリックドメインにあるソフトウェアが障壁になっているという 言い方はあべこべだと思う。
109 名前:デフォルトの名無しさん mailto:sage [04/02/08 13:45] GPL厨的には、プロプラエタリで非オープンなものに転用できてしまう パプリックドメインなソフトは、GPLの普及にとって障壁になっていると 考えられるんじゃないの?
110 名前:デフォルトの名無しさん mailto:sage [04/02/08 13:48] ああ、そういう視点ですか。
111 名前:デフォルトの名無しさん mailto:sage [04/02/08 15:16] >まず、自分で使用するだけなら法的に問題なく使えるよね。 もちろんそう。 これはデベロッパサイドの問題。すなわち>>89 の"cygwinが使えない"とか他にも"readlineが使えない"とかね。 >ソフトウェアを配布する場合でも、パブリックドメインになっている >ソフトウェアをGPL(など制限のきつい方)にライセンスしなおせば、 >問題なく使えて配布できるでしょ? GPLでリリースしたらそれはGPLのソフトウェアであってパブリックドメインではないからそもそも前提が違う。 CMUCLプロジェクトがGPL/LGPLを選択するか否かという問題ではcygwinの件で既に蹴っているではないか。 >パブリックドメインにあるソフトウェアはいつでも、ライセンスを変更する自由があるという点が一つ。 これも上に同じ。ライセンスを変更したらそのソフトウェアはパブリックドメインではない。 そのソフトウェアがパブリックドメインを続ける限りはcygwinもreadlineも使えないし、"GPLに変えたら使えるじゃん"というのは"cmuclがパブリックドメインを続けようとしていて、その方針をとることによるcmuclプロジェクトへの制限"という話のすり替え。 >これから、もしGPL, LGPLと互換性がないソフトウェア群が非常に多くなったときにどうするか? >FSFと一蓮托生でいいのか。 明らかなプロバガンダ。GPLでリリースしたソフトウェアはFSFに支配されるようになるみたいな言い方だな。
112 名前:デフォルトの名無しさん mailto:sage [04/02/08 15:39] >>99 スマソそれは読んだ事あるんだ。で、ついに継続ベース Web アプリケーション鯖デターーー とおもったんだけどサンプルとかあんま載ってないからさ。こうスゲーとわかるような サンプルキボンヌ。
113 名前:デフォルトの名無しさん mailto:sage [04/02/08 15:51] >GPLでリリースしたらそれはGPLのソフトウェアであってパブリックドメインではないからそもそも前提が違う。 いいたいことが分かりにくいな。cmuclプロジェクトに加わっていない人が、 cmuclの成果だけ持って来て、ライセンスだけGPLにして定期的にリリースするとか できるでしょ? つまり、フォークしてもGPL側はいつでもパブリックドメインのコード を利用できると。 >CMUCLプロジェクトがGPL/LGPLを選択するか否かという問題ではcygwinの件で既に蹴っているではないか。 これも分かりにくいな。CMUCLプロジェクト内での議論でcygwinはライセンスが問題だから cygwin使うのよそうやという意見の一致はないと思うよ。ただ、cygwin使ったらパブリックドメイン のままにはできないかもねという認識があるだけ。 > そのソフトウェアがパブリックドメインを続ける限りはcygwinもreadlineも使えないし、 > "GPLに変えたら使えるじゃん"というのは "cmuclがパブリックドメインを続けようとしていて、 > その方針をとることによるcmuclプロジェクトへの制限"という話のすり替え。 なんか陰謀説みたいな話だけど、単純にcygwinかreadline使いたい人は使えばいいし、それを 配布したい人は、GPLかLGPLでcmuclをフォークすればいいだけでしょ? だれもだれかを制限しようと なんてしていないでしょ? > >これから、もしGPL, LGPLと互換性がないソフトウェア群が非常に多くなったときにどうするか? > >FSFと一蓮托生でいいのか。 > 明らかなプロバガンダ。GPLでリリースしたソフトウェアはFSFに支配されるようになるみたいな言い方だな。 じゃあプロパガンダを消した残りの部分はどう?
114 名前:101 mailto:sage [04/02/08 16:03] >>102 ありがとうございます! Excel, Word文書の自動作成をSchemeで書いてみたかったので。 とりあえず、こんなことができました。 (require (lib "mysterx.ss" "mysterx")) (require (lib "class.ss")) (define excel (cci/progid "Excel.Application")) (com-set-property! excel "Visible" #t) (com-invoke excel "Quit")
115 名前:デフォルトの名無しさん mailto:sage [04/02/08 16:11] 面白そうですね.Dr. Scheme って日本語ダメポって聞くけど,文字列としてなら Excel とかに渡せるのかな?その辺が可能なら Dr. Scheme インスコしてみようかな.
116 名前:デフォルトの名無しさん mailto:sage [04/02/08 17:21] >>113 そもそも議論の前提がちょっと。GPLの第0項を引用しておく。 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. 著作権保持者でなければGPLに出来ない。PDSには著作権保持者がいないのでそ のままGPLではリリースできない。GPLに限らずライセンスは通常、著作権保持 者との契約なので、PDSに無改変のままでライセンスを付けるのは問題がある。 もう一つ考えとく必要があるのは、日本のように著作権を完全には放棄できな い国があること。アメリカで権利を放棄して著作権表記をしなくても、同じも のが日本の法律では著作権が自動的に発生して保護の対象になる。 Lisp関係では書き手が研究者のことがままある。研究者にはええかげんな人間 が多い。著作権表記がないものでも、ヒモつき研究活動の成果で実は著作権保 持者は勤務先なんてことがありがち。だから、ホントにPDSかは不安。GPL で も修正BSDでも何でもいいからライセンス付けてくれれば善意の第三者ぶれる ので少しは安心。 # あ〜、不安になってきた。明日勤務先の規定調べないと。確か委託研究以外 # はコピーライト俺でいいはずなんだけど。
117 名前:デフォルトの名無しさん mailto:sage [04/02/08 17:59] >cmuclの成果だけ持って来て、ライセンスだけGPLにして定期的にリリースするとかできるでしょ? ... >なんか陰謀説みたいな話だけど、単純にcygwinかreadline使いたい人は使えばいいし、それを >配布したい人は、GPLかLGPLでcmuclをフォークすればいいだけでしょ? だれもだれかを制限しようと >なんてしていないでしょ? それを"出来る"(=GPL/LGPL/BSD...に出来る)というのはお前の云う通り。 しかし、例えば、誰かが"cmuclをcygwinに移植しようかな"と言い出したとき、技術がそこそこあってそれが可能な人達というのは まさにcmuclプロジェクトの彼らのことだろ(他にもたくさんいるだろうが、まず注目されるの彼ら)。 cmuclが現在パブリックドメインであることはこれ(=cygwinに移植しようかな)を多少なりとも足踏させる結果になっただろ? 可能論じゃなくって実際にそれをやる人が居るかを考えたときに、cmuclがオープンソースであることとcmuclがパブリックドメインであることには意識の違いが出てくると思わないか? >じゃあプロパガンダを消した残りの部分はどう? とりあえず >>FSFと一蓮托生でいいのか。 についてはっきりと釈明しろと。で、これ >これから、もしGPL, LGPLと互換性がないソフトウェア群が非常に多くなったときにどうするか? 別に何もしないでしょ。何か問題になる? これまでの資産は sourceforge.net/softwaremap/trove_list.php?form_cat=14 莫大にあるというのに。
118 名前:デフォルトの名無しさん mailto:sage [04/02/08 18:00] ライセンス話ウザイ。
119 名前:117 mailto:sage [04/02/08 18:02] >もう一つ考えとく必要があるのは、日本のように著作権を完全には放棄できない国があること。 これは忘れてたな。そういえばsourceforge.jpにはpdsがなかったなあ。 これって、もしかしてcmuclプロジェクトに参加できない...ってことじゃないよな。
120 名前:デフォルトの名無しさん mailto:sage [04/02/08 18:04] ライセンスの話でlispがスレが埋まる現状はちょっと..... 頼むから、お 前 ら C o m m o n L i s p の 話 題 に 戻 ってくれ。 スレが伸びてもライセンスについての議論じゃあ、lispスレとしての価値がない ↓新鮮な話題を希望
121 名前:デフォルトの名無しさん mailto:sage [04/02/08 18:29] >>112 CVSに入ってるnqueenが面白いですよ
122 名前:デフォルトの名無しさん mailto:sage [04/02/08 18:42] S c h e m e の 話 題 に 戻 っ て く れ >>121 マンセーこいつぁ面白そうだ。最初っからこのくれー宣伝汁 ! でもまだ Anonymous CVS はないのか。今後に期待〜
123 名前:デフォルトの名無しさん mailto:sage [04/02/08 18:45] ---新鮮な話題--- 新しいlispの実装ができましたよ。 (defun lisp () (loop (format t "~%* ") (prin1 (eval (read)))))
124 名前:デフォルトの名無しさん mailto:sage [04/02/08 18:49] cygwin上のgaucheとWindowsのapacheでWilikiを動かすと 書き込みのときに unbound variable: alist-delete って出るんですけど 対処法ありますか? (リロードすると書き込めてるんですが・・・)
125 名前:デフォルトの名無しさん mailto:sage [04/02/08 18:50] 誰か解答求む
126 名前:デフォルトの名無しさん mailto:sage [04/02/08 18:52] あります
127 名前:デフォルトの名無しさん mailto:sage [04/02/08 18:57] 教えてください
128 名前:124 mailto:sage [04/02/08 19:01] wilikiのdb.scmの (define-module wiliki.db (use srfi-13) の部分に (define-module wiliki.db (use srfi-1) (use srfi-13) てやったら オケーぽいけど これでいいのかな?
129 名前:92@Vim%Chalice ◆r6EONKKhcc mailto:sage [04/02/08 20:33] 藻前らこっちにきなさい ライセンスあれこれ pc.2ch.net/test/read.cgi/unix/1032702590/ たまたま別スレの都合で数日前に書き込んだんですけど.
130 名前:デフォルトの名無しさん mailto:sage [04/02/09 19:09] >>129 誤爆? 宣伝?
131 名前: [04/02/10 19:06] (define make-structure (lambda (n) (lambda (d) (lambda (m) ((m n) d))))) (define select (lambda (c) (c (lambda (a) (lambda (b) a))))) の意味がいまいちわかりません。 例えば、 (select ((make-structure (+ 7 5)) (- 9 3))) とした時のラムダ計算の課程を教えてくれませんか。
132 名前:デフォルトの名無しさん mailto:sage [04/02/10 19:17] >>131 n := 7 + 5 => 12 d := 9 - 3 => 6 c := (lambda (m) ((m 12) 6)) => #<closure> m := (lambda (a) (lambda (b) a)) => #<closure> a := 12 => 12 b := 6 => 6 => 12
133 名前: [04/02/10 19:38] >>131 ありがとうございます、ホントに。助かりました。
134 名前:デフォルトの名無しさん mailto:sage [04/02/11 20:29] .net系でlisp.netみたいなものってないの? 誰か作ってそうなもんだが。
135 名前:デフォルトの名無しさん mailto:sage [04/02/11 20:50] common-lisp.net/
136 名前:デフォルトの名無しさん mailto:sage [04/02/11 21:26] これのことですか. ttp://dotlisp.sourceforge.net/ Activity Percentile (last week): 19.2626%
137 名前:デフォルトの名無しさん mailto:sage [04/02/12 02:48] ecl をインストールしてみた。ドキュメントに書いてあるように hello world の スタンドアローンプログラムを作ってみたら約 3MB の実行ファイルが出来た @ Mac OS X. こんなもんかな。 ところで、数ある Lisp レベルのスレッドの実装ってマルチプロセッサ下でどの位 スケールする物なのでしょうか? 実装依存 && 環境依存でしょうか。
138 名前:デフォルトの名無しさん mailto:sage [04/02/12 04:00] clisp と ecl をたらいまわし簡易ベンチで比較してみました。ソースはここから。 最速スクリプト言語決定戦! pc2.2ch.net/test/read.cgi/tech/1074996153 結果) 非コンパイル: clisp tarai.lsp 101.07s user 0.36s system 96% cpu 1:44.59 total ロード -> コンパイル -> 実行: clisp -C tarai.lsp 9.30s user 0.03s system 99% cpu 9.380 total コンパイル済: clisp tarai.fasl 9.28s user 0.06s system 99% cpu 9.342 total ロード -> コンパイル -> 実行: ecl -load tarai.lsp 67.55s user 19.54s system 93% cpu 1:33.05 total コンパイル済: ./taraiecl 1.89s user 0.05s system 100% cpu 1.935 total バージョンとか) gcc (GCC) 3.3 20030304 (Apple Computer, Inc. build 1495) GNU CLISP 2.32 (2003-12-29) (built 3285246448) ECL (Embeddable Common-Lisp) 0.9c
139 名前:デフォルトの名無しさん mailto:sage [04/02/12 07:51] >>137 C で書いたプログラムを動かすには C のランタイムが必要だ。 Java で書いたプログラムを動かすには java のランタイムが必要だ。 Lisp で書いたプログラムを動かすには Lisp のランタイムが必要だ。 で、通常 C のランタイムはシステム標準で付いてくるので意識する人が 少ないだけ。 寡聞にして Lisp レベルのスレッドの実装が複数あるとは知らなかった。 商用 Lisp は大抵 OS のネイティブスレッドだろうしなぁ……。まぁ Lisp レベルのスレッドだとあんまりマルチプロセッサだから〜とか 期待しないほうがいいんじゃないかな。ネイティブスレッドのほうが どう見ても有利だろう。
140 名前:デフォルトの名無しさん mailto:sage [04/02/12 08:06] >>139 >寡聞にして Lisp レベルのスレッドの実装が複数あるとは知らなかった。 すんません。嘘書きました。CMUCL 以外の処理系がネイティブである 事をあまりにも強調してるので、混乱してました。 >商用 Lisp は大抵 OS のネイティブスレッドだろうしなぁ……。まぁ >Lisp レベルのスレッドだとあんまりマルチプロセッサだから〜とか >期待しないほうがいいんじゃないかな。ネイティブスレッドのほうが >どう見ても有利だろう。 御意。 ファイルサイズの件について、ECL はデフォルトで共有ライブラリ化 されるみたいなので Mac 以外でも試してみます。現状でも特に不満は 無いです。
141 名前:デフォルトの名無しさん mailto:sage [04/02/13 14:31] ttp://boost.cppll.jp/HEAD/libs/preprocessor/doc/topics/techniques.html キモッ
142 名前:デフォルトの名無しさん mailto:sage [04/02/13 15:46] >>141 俺にゃぁこーゆうのは複雑怪奇に見えるが,それでも、lisp よりはマシだとか思う 人も多いのだろうな。
143 名前:デフォルトの名無しさん mailto:sage [04/02/13 16:12] GNUがm4なんて捨ててGuileをGNUツールの中心に据えるなんて話を 大分昔に聞いたんだけど、どうなったんだろう。親分の思惑とは 離れて、LISP嫌いのUNIXユーザが多すぎるんだろうな。arcなんてのも 最近は更新されてないし。
144 名前:デフォルトの名無しさん mailto:sage [04/02/13 16:17] 多過ぎるって程でもないんじゃないのかな。elispは結構使われてるし。
145 名前:デフォルトの名無しさん mailto:sage [04/02/13 16:21] >>141 ##の使い方見てて切なくなった(w
146 名前:デフォルトの名無しさん mailto:sage [04/02/13 19:34] 俺は元大したことないLisper。CLOSなんかでprogramming。 今はC++のtemplateを使ったgeneric programmingに萌え。
147 名前:デフォルトの名無しさん mailto:sage [04/02/13 23:00] 漏れは大したことのないC++コード書き。template使ってgeneric&generativeなprogramming。 最近興味本位で触ったLispのマクロにくらくらしてる。
148 名前:デフォルトの名無しさん mailto:sage [04/02/14 08:20] リストが循環構造かどうか、って判定する方法ある? いちいち全部比較してくよりは、GCのマーク&スイープみたいに マーク付けながら辿っていった方がいいかな。
149 名前:デフォルトの名無しさん mailto:sage [04/02/14 08:37] >>148 hare and tortoise
150 名前:デフォルトの名無しさん mailto:sage [04/02/14 15:30] "tortoise and hare" algorithm は guile/libguile/list.c の scm_ilength() を見たらよいよ。
151 名前:デフォルトの名無しさん mailto:sage [04/02/14 23:02] SICPの例題をこなすのにお勧めのSchemeの処理系はありますか? 環境は、Win2000 です。
152 名前:デフォルトの名無しさん mailto:sage [04/02/14 23:52] 何でもいいに決まってる。
153 名前:デフォルトの名無しさん mailto:sage [04/02/15 01:43] >>151 DrSceme が簡単でいいんじゃないの? cygwin + gauche という手もあるけど。
154 名前:デフォルトの名無しさん mailto:sage [04/02/15 02:44] >>153 漏れ、最初DrScheme使ってt-y-schemeやったけど、 売りのトレースとかが、初心者モード(ほとんど何にもできない)でしか使えなくて泣いた。
155 名前:デフォルトの名無しさん mailto:sage [04/02/15 03:02] >>151 SICPのサンプルコードはSCMかMIT-Schemeだった気がするので、 Cygwinで動くようならこれが無難? win2kならPetite Chez + ChezEditも良いかもしんない。
156 名前:151 mailto:sage [04/02/15 11:17] MIT-Schemeってこれ www.gnu.org/software/mit-scheme/ ですか? Windows binary 版をインストールしてみました。 EDwinって言うEmacs見たいなエディタも付属してます。 つか、殆どEmacs。。。 Lisp/Scheme やるには Emacs も覚えなあかんの。 _| ̄|○ Schemeの処理系って小さいイメージがあったけど MIT-Schemeって一式で35Mbyteもあるのね。
157 名前:デフォルトの名無しさん mailto:sage [04/02/15 11:42] >Emacs も覚えなあかんの。 _| ̄|○ Win環境の人からすると異常だけど、 UNIXのソフトって全体的にemacsのキーバインドに沿ったものが多いからね。
158 名前:デフォルトの名無しさん mailto:sage [04/02/15 14:16] >>156 さあ、*nix文化へいらっしゃい。 今までM$に飼い頃されてたのはなんだったんだ、と開眼するから。
159 名前:デフォルトの名無しさん mailto:sage [04/02/15 15:31] vi>>>>>>>>>>>>>>>>>>emacs
160 名前:デフォルトの名無しさん mailto:sage [04/02/15 15:57] 秀丸>>>>>>>vi
161 名前:デフォルトの名無しさん mailto:sage [04/02/15 16:07] Emacs>>>>>秀丸 さてどうしよう。
162 名前:140 mailto:sage [04/02/15 18:55] Scheme についても調べてみました。ネイティブコードコンパイル可能な処理系では、chicken と mzScheme は Lisp レベルでの thread みたいでした。RScheme はサイトが落ちていて不明。 ECL で --enable-threads するとビルド出来ない(最新 CVS 版)のですが、Linux 限定なのかな。
163 名前:デフォルトの名無しさん mailto:sage [04/02/15 20:13] >>157 , 158 一応、vi (ex, ed) は使えるんですけどね。漏れって vi 信者。w などと言いながら emacs のマニュアル本買って来ました。
164 名前:デフォルトの名無しさん mailto:sage [04/02/15 21:15] Kahua セミナー逝った香具師、レポートしてください。 地方在住 lisper は逝きたくても逝けないのです。おながいします。
165 名前:デフォルトの名無しさん mailto:sage [04/02/15 22:31] >>158 ウイソのプログラムでメシを食ってる漏れとしてはそんな事は口が裂けても・・・
166 名前:これってどうよ? mailto:sage [04/02/16 10:40] Pythonによるcommon lispのフロントエンド "lython" www.caddr.com/code/lython/ スラドの記事 slashdot.jp/developers/04/02/15/1528254.shtml?topic=93
167 名前:デフォルトの名無しさん mailto:sage [04/02/16 11:30] あくまで、Common Lisp風ね。だからScheme風といってもいいだろうし。 (import os) (:= out "/tmp/lythontest") (if (os.path.exists out) (os.unlink out) (print "target file does not exist")) (:= f (open "/tmp/lythontest" "w+")) (f.write "Hello World from Lython!")
168 名前:デフォルトの名無しさん mailto:sage [04/02/17 05:50] pythonのライブラリが使えるlispモドキかな。 ちょっと前に話になったスクリプト云々の話は これに食われそうだね。 ポータブルな実装としてはベースがpythonなら問題ないだろうし。
169 名前:デフォルトの名無しさん mailto:sage [04/02/17 14:26] 前も話題に出たけど、pythonと共存できて何か意味あるのか? 速度: pythonはバイトコード ライブラリ: pythonよりもC/C++のライブラリの方が膨大
170 名前:デフォルトの名無しさん mailto:sage [04/02/17 14:49] > ライブラリ: pythonよりもC/C++のライブラリの方が膨大 FFI が面倒なので Python のライブラリでウマーって事でしょう. まぁ,中途半端な Lisp モドキよりは普通に Python 使ったほうが いいような気がしますがね…
171 名前:デフォルトの名無しさん mailto:sage [04/02/17 16:09] #define BEGIN { と似たような一抹の虚しさがただような。 ライブラリを手軽に使うのだけが目的なら、Common LispかSchemeと言語仕様を同じにしなくちゃね。 ただ、ここから新しい言語として羽ばたかせようというなら話は別だけど。 Arcみたいにね。 まぁ、ただ面白そうだからやってみたんだろうけど。
172 名前:デフォルトの名無しさん mailto:sage [04/02/17 16:32] おまえらこんなとこでケチつけてないで、今 後 に 期 待 し と け
173 名前:デフォルトの名無しさん mailto:sage [04/02/17 16:47] >>172 そんな言い方じゃ、話が面白くならないよ。今後に期待できるようなことは何かあるの?
174 名前:デフォルトの名無しさん mailto:sage [04/02/17 16:57] pythonが超ポピュラーになってライブラリが暴発的に増えるとかいう展望を抱けw
175 名前:デフォルトの名無しさん mailto:sage [04/02/17 17:10] lythonダウンロードしてみました。ウェブサイトやコードを見た限り、まだまだ、 孵化する日は先で、生まれたてのホヤホヤという感じです。 みんなが作るのが好きな俺Lispの1つですね。 しかし、よくSlashdotが取り上げたね。それが悪いというわけじゃないけど。
176 名前:175 mailto:sage [04/02/17 17:13] あっ、つけるの忘れてた。最後にwをつけて読んでください。
177 名前:デフォルトの名無しさん mailto:sage [04/02/17 17:37] (´-`).。oO(孵化してないのに産まれたて。。。)
178 名前:デフォルトの名無しさん mailto:sage [04/02/17 17:41] (・A・)lython!!
179 名前:デフォルトの名無しさん mailto:sage [04/02/17 22:46] 大蛇は卵生だから、産まれてから孵るまで時間がかかるんじゃないの。 しかし、インデントのかわりにS式使ってる感じだね。 そういえば、Parrot上のSchemeはどうなったんだろ。Parrot自体が資金ショー トという噂も聞いたこともあるけど。
180 名前:デフォルトの名無しさん mailto:sage [04/02/18 01:45] えーとguileやgaucheは「組み込みLispライブラリ」としての用途も意図されているわけですが, 実際に組み込むためのHOWTO文書とかチュートリアルってあります? けっこう検索したんだが見付からない. guileを組み込んだGNUプロジェクトのアプリはいくつかあるけど,大き過ぎて見る気がしない. なんか「Schemeで拡張できるtail(1)を作ってみました」みたいな文書ないもんですかね.
181 名前:デフォルトの名無しさん mailto:sage [04/02/18 11:00] >>180 guileの現状は知らないんですが、すこし前までは、guile自体の発展速度が 速すぎて、非互換な変更とかがけっこうあって、アプリに組み込んだ人が苦労した という話がありました。とかいうふうに一度、レッテルを貼られると、それを取り除く のに苦労しますよね。GNUはマニュアルをちゃんと書く習慣があると思うんだけど、 guileのマニュアルにアプリへの組み込みチュートリアルないのかな? >>179 つーか、Parrotをやってる人たちって金もらっているのですか? ParrotがJVMレベルのバーチャルマシンとしてみんなに認められれば、オモロ。
182 名前:デフォルトの名無しさん mailto:sage [04/02/18 17:14] >>181 とりあえず去年の今ごろのParrot/Perl6の紹介には金が足りないというのがあっ た。www.newsfactor.com/perl/story/20748.html CVSにはscheme用もあったけど動くのか不明。ぱっと見、まだ途中かなという 感じがした。H"なんで下して試す元気がないから、誰が試してくれるとうれし い。 ;; 遅れぎみ(婉曲的な表現)なんで、逆に誰かがどれでもいいから別のVM上に ;; Perl6を実装しちゃえば英雄になれるかも。
183 名前:180 mailto:sage [04/02/19 01:04] >>181 GuileのinfoのPart 3がそれっぽいんですが,どうもイマイチ実感が... マトモなサンプルになってないんですよ. ドローソフトの組み込みにするために,いかに「図形」をSchemeオブジェクトとして Cレベルで定義するかが主眼らしいんだけど. そんな高尚なことよりとりあえずS式の設定ファイルを読みたいだけなのにな. ま,がんばったらできそうなので文書にするかも.
184 名前:デフォルトの名無しさん mailto:sage [04/02/19 19:52] >>180 Gaucheはドキュメントはまだ無いみたいだけど、インタプリタであるgoshが 「Gaucheライブラリのサンプルアプリ」という位置付けらしいのでソース見るのが早い。 goshはlibgaucheを初期化してrepl起動してるだけだから本当に小さいし。
185 名前:デフォルトの名無しさん [04/02/20 23:00] Gauche0.7.4.1 で gdbm はどうやって使うのでしょうか。 gdbm.so が ext/Makefile から外されてる gdbm.c はコンパイルできない。エラー多すぎ までは調べました
186 名前:デフォルトの名無しさん [04/02/20 23:04] 半分解決 ndbm 使うと perl コンパチのファイルができたみたい・・ なので gdbmは不要となりました。
187 名前:デフォルトの名無しさん mailto:sage [04/02/20 23:18] 確か、configure時にgdbmの存在をチェックしてると 思うので、それが見つけられていないのでは。 gdbmが/usr/localとかにインストールしてあるなら、 ./configure --with-local=/usr/local みたいにするとか。
188 名前:デフォルトの名無しさん mailto:sage [04/02/21 00:11] 恐れ入ります。 config.log 見て納得しました。 perl は p5-GDBM 入れないと駄目なんですね。 gdbm はあまり使われてないと。
189 名前:デフォルトの名無しさん mailto:sage [04/02/21 11:11] multiple-value-bind の属性リスト版を書いたんですけど、 どうやったら gensym を使うように改良できますか? 使い方は、(setq alist '((a 2) (b 3))) と代入しておいてから (alist-bind alist (print (+ a b)) (* a b)) を評価すると、 5 を印字してから 6 を返すような関数です。 現状はこんな感じです。 (defmacro alist-bind (alist &body body) (let ((alist-bind-internal-variable (eval alist))) `(multiple-value-bind ,(values (mapcar #'car alist-bind-internal-variable)) ,(cons 'values (mapcar #'cadr alist-bind-internal-variable)) ,@body))) バッククオートを入れ子にして使うのがどうしてもうまくいかなくて ほかと重ならない変数名で逃げてます。実用上は問題ないんですが もっとスマートな解決策はないものでしょうか。
190 名前:デフォルトの名無しさん mailto:sage [04/02/21 11:13] >>189 >5 を印字してから 6 を返すような関数です マクロの typo です。
191 名前:デフォルトの名無しさん mailto:sage [04/02/21 12:28] >>189 ちょっとあなたのと仕様が違いますが、昔書いたものを。 (defmacro alist-bind ((&rest vars) alist &body body) (let ((tmp (gensym))) `(let ((,tmp ,alist)) (let ,(mapcar #'(lambda (var) `(,var (cdr (assoc ',var ,tmp :test #'eq)))) vars) ,@body)))) (setq data '((a . 1) (b . 2) (c . 3))) (alist-bind (b c a) data (list b c a)) => (2 3 1) (macroexpand-1 '(alist-bind (b c a) data (list b c a))) => (LET ((#:G219 DATA)) (LET ((B (CDR (ASSOC 'B #:G219 :TEST #'EQ))) (C (CDR (ASSOC 'C #:G219 :TEST #'EQ))) (A (CDR (ASSOC 'A #:G219 :TEST #'EQ)))) (LIST B C A)))
192 名前:189 mailto:sage [04/02/22 22:00] >>191 let の変数定義をマクロ展開の結果に置き換えるマクロを書くわけですね。 勉強になります。alist-bind がレキシカルコンテキストを参照できるので、 こちらの方が優れてますね。その代わり、vars に与える変数一覧を事前に 与えないといけないので、今やりたい用途には使えないですね。 いま欲しいのは、destrucuring-bind の複数版で、1個の値に対して パターンを複数与えることができるようなマクロです。最初のパターンに うまくマッチしなければ次のパターンを試し、マッチしたパターンがあれば そこで変数を束縛して、対応する式を順次評価して最後の式の値を返すと いうような物です。最後のパターンにもマッチしなかったばあいは nil と いうことで。 (let ((x 2)) (dbind* (list (+ 3 4) 5) ; 最初に評価して(7 5)を得る ((a b c) (list a b c)) ; マッチしないので実行されない ((a b) (incf x) (list a b x)))) ; (7 5 3) になる というような dbind* がうまくできなくて困ってます。 まず値を集めて、後から展開するという方針が間違ってるのかもしれません。 どうしても評価のレベルが一致しないんですよね。
193 名前:デフォルトの名無しさん mailto:sage [04/02/22 22:20] 先に進んじゃってるとろスマンけど、>>189 ってちゃんと動くのか? (setq alist '((a 1) (b 2))) (alist-bind alist (print (+ a b)) (* a b)) とかいたファイルをコンパイルしたら、alist-bind の展開時に まだ alist がバインドされてないとかでエラーになるような…。
194 名前:デフォルトの名無しさん mailto:sage [04/02/22 23:00] >>192 パターンが単純であればこんな感じかな? destructuring-bind と同等のことがしたい場合は、 もっと複雑なことをしなければならないが。 (defmacro dbind* (list &body forms) (let ((vals (gensym))) `(let ((,vals ,list)) (case (length ,vals) ,@(mapcar #'(lambda (form) (let ((vars (car form))) `(,(length vars) (let ,(mapcar #'(lambda (var) `(,var (pop ,vals))) vars) ,@(cdr form))))) forms)))))
195 名前:189 mailto:sage [04/02/22 23:50] >>193 やってみたら、compile-file でエラーが出ました。load したら 3 が印字されて t が 返りましたけど。>>192 がうまく動かないはそのせいなのかもしれません。
196 名前:189 mailto:sage [04/02/23 00:21] >>194 すみません、調べてみたら destructuring-bind よりもっと複雑な仕様でした。 例えば (dbind* '(a (2 3 4)) (('a (b 3 c)) (+ b c))) がマッチして、6 が返されます。 シンボル以外のアトムや quote されたシンボルをネストした S 式の中に書くことができ、 パターンの同じ場所に eq になるアトムが存在するときに、マッチするものと見なされます。 上の例の 3 や a がそれです。このとき、a はシンボル a に束縛されます。
197 名前:デフォルトの名無しさん mailto:sage [04/02/23 01:50] >>196 ふむ、若干面倒だね。とりあえず、パターンのシンボルに リストがマッチするものとして書いてみた。 (defun match (vars vals) (do ((vars vars (cdr vars)) (vals vals (cdr vals))) ((or (null vars) (null vals)) (not (or vars vals))) (let ((var (car vars)) (val (car vals))) (unless (cond ((eq var val) t) ((symbolp var) t) ((atom var) nil) ((eq (car var) 'quote) (eq (cadr var) val)) ((atom val) nil) (t (match var val))) (return)))))
198 名前:197 mailto:sage [04/02/23 01:50] 続き (defmacro dbind* (list &body forms) (let ((dummy (gensym)) (vals (gensym))) (labels ((bind (vars vals) (mapcan #'(lambda (var) (cond ((atom var) `((,(if (symbolp var) var dummy) (pop ,vals)))) ((eq (car var) 'quote) `((,(if (symbolp (cadr var)) (cadr var) dummy) (pop ,vals)))) (t (let ((temp (gensym))) `((,temp (pop ,vals)) ,@(bind var temp)))))) vars))) `(let ((,vals ,list)) (cond ,@(mapcar #'(lambda (form) (let ((vars (car form))) `((match ',vars ,vals) (let* (,@(bind vars vals)) ,@(cdr form))))) forms))))))
199 名前:デフォルトの名無しさん mailto:sage [04/02/23 05:51] Gauche0.7.4.1をインストールして (string-concatenate-reverse '(" must be" "Hello, I") " going.XXXX" 7) っていう式を評価させたらエラーになったんだけど、 SRFI-13ではそういう実装も許されてるの? それともインストール失敗しただけ?
200 名前:デフォルトの名無しさん mailto:sage [04/02/23 06:21] >>199 バグじゃん? wilikiにでも報告するよろし。
201 名前:デフォルトの名無しさん [04/02/23 18:37] perlのスクリプトとをgaucheに移植してるんだけど perlとgaucheの対応表なんてどっかにありませんか。 とりあえず open(STDERR, ">&STDOUT") $| = 1 $! がわからない。
202 名前:デフォルトの名無しさん mailto:sage [04/02/23 22:40] >>199 ttp://www.shiro.dreamhost.com/scheme/gauche/man/gauche-refj_236.html optionalついてないのがGaucheでの仕様なんじゃないの?
203 名前:デフォルトの名無しさん mailto:sage [04/02/25 19:07] つーかトランスレーター作ろうぜ perlよくわからない
204 名前:デフォルトの名無しさん mailto:sage [04/02/25 20:51] Perl を勉強して書き直すほうがためになるよ。きっと。
205 名前:デフォルトの名無しさん mailto:sage [04/02/25 21:07] Perlを知らずにトランスレータもないだろうに
206 名前:デフォルトの名無しさん mailto:sage [04/02/26 00:12] >>201 $| = 1 と $! の例を強引に考えてみた(dup は不明)。詳しい人のフォロー希望。 (with-error-handler (lambda (e) ;; e は例外オブジェクト($! のようなもの) (format (current-error-port) "ERROR: ~a¥n" (ref e 'message))) (lambda () ;;(with-input-from-file *program-name* ;; 正常パターン (with-input-from-file "nowhere file" ;; エラーパターン (lambda () (set! (port-buffering (current-output-port)) :full) ;; $| = 1 ? (port-for-each (lambda (line) (display line) (newline)) read-line))))) C がわかるなら、リファレンスの C と Scheme の対応一覧が役に立つかも。
207 名前:デフォルトの名無しさん mailto:sage [04/02/26 10:34] 勘で。 ---- $|=1; open IN, "foo.pl"; print while (<IN>); ----- (call-with-input-file "foo.scm" (lambda (in) (copy-port in (current-output-port))) :buffering :none)
208 名前:こゆことかな...? mailto:sage [04/02/26 11:29] ------------------------------ #!/path/to/gosh (display "Content-type: text/plain\r\n\r\n") (display "Test.\r\n") (with-error-handler (lambda (e) (print #`"***ERROR: ,(ref e 'message)") (exit 1)) (lambda () (with-input-from-file "no_such_file" (lambda () (print "File opend."))) )) ------------------------------ #!/path/to/perl open(STDERR, ">&STDOUT"); $| = 1; print "Content-type: text/html\n\n"; print "This is a test.<BR>"; open(IN, "no_such_file") || die "***ERROR: ", $!; close(IN);
209 名前:デフォルトの名無しさん mailto:sage [04/02/26 15:25] 恐れ入ります。 簡単に行かないというのがわかりました。 dup と flush は gosh本体に仕込んで起動時オプションで処理する。 $! もグローバル変数に組み込んでしまうのが簡単か
210 名前:デフォルトの名無しさん mailto:sage [04/02/27 00:11] 別の言語なんだし全部直訳はできないのは当然じゃん。 いろいろ解説してくれた人がいたんで代わりにまとめ。 open(STDERR, ">& STDOUT") なら (with-error-to-port (current-output-port) THUNK) $| = 1 じゃなくて autoflush を使うべきなんで ((setter port-buffering) PORT :none) $! でメッセージが欲しいのなら with-error-handler でエラーをキャッチして (slot-ref ERR 'message)。 これは eval で die をキャッチするのをイメージ。
211 名前:189 mailto:sage [04/02/27 08:09] >>197-198 ありがとうございました。遅くなりましたが、自分の欲しい内容への改造が やっとできたのでお伝えします。 比較対象がアトムやquoteされたアトムの場合の動作を改善するため、 トップレベルだけを別扱いにすることにしました。 (defun match0 (vars vals) (cond ((symbolp vars) t) ((atom vars) (eq vars vals)) ((atom vals) (and (eq (car vars) 'quote) (null (cddr vars)) (eq (cadr vars) vals))) ((eq (car vars) 'quote) nil) (t (match vars vals)))) という関数を追加し、dbind* の labels で定義している局所関数にも ((bind0 (vars vals) (cond ((atom vars) (if (symbolp vars) `((,vars ,vals)) `((,dummy ,vals)))) ((eq (car vars) 'quote) `((,dummy ,vals))) (t (bind vars vals)))) という定義を追加します。そして dbind* 末尾から3,4行目の `((match ',vars ,vals) (let* (,@(bind vars vals)) をそれぞれmatch0, bind0 の呼び出しに置き換えます。 動作の変わった例としては、以下のようなものがあります。 (dbind* 3 ((4) 5)) ; エラーにならずにnilを返すようになった (dbind* '(3 7) (any any)) ; (3 7) を返すようになった (dbind* '(3 7) ('any t) ; 7 を返していたのがnilを返すようになった
212 名前:嵩 [04/02/27 16:48] 131 : :04/02/10 19:06 (define make-structure (lambda (n) (lambda (d) (lambda (m) ((m n) d))))) (define select (lambda (c) (c (lambda (a) (lambda (b) a))))) の意味がいまいちわかりません。 例えば、 (select ((make-structure (+ 7 5)) (- 9 3))) とした時のラムダ計算の課程を教えてくれませんか。 132 :デフォルトの名無しさん :04/02/10 19:17 >>131 n := 7 + 5 => 12 d := 9 - 3 => 6 c := (lambda (m) ((m 12) 6)) => #<closure> m := (lambda (a) (lambda (b) a)) => #<closure> a := 12 => 12 b := 6 => 6 => 12 となっているけど、もう少し詳しく説明できる人いますか? ラムダ計算が今一よくわからないもんで。
213 名前:デフォルトの名無しさん mailto:sage [04/02/27 16:54] >>212 詳しく説明できるが 聞 き 方 が 気 に 食 わ な い
214 名前:デフォルトの名無しさん mailto:sage [04/02/27 17:09] 関数適用で束縛変数を引数で置き換えればいいんだよ。
215 名前:デフォルトの名無しさん mailto:sage [04/02/27 17:18] make-structure = λn.λd.λm.((m n) d) select = λc.(c λa.λb.a) (select ((make-structure (+ 7 5)) (- 9 3))) = (select ((make-structure 12) 6)) = (select ((λn.λd.λm.((m n) d) 12) 6)) ; nを消す = (select (λd.λm.((m 12) d) 6)) ; dを消す = (select λm.((m 12) 6)) = (λc.(c λa.λb.a) λm.((m 12) 6)) ; cを消す = (λm.((m 12) 6) λa.λb.a) ; mを消す = ((λa.λb.a 12) 6) ; aを消す = (λb.12 6) ; bを消す = 12
216 名前:デフォルトの名無しさん [04/02/27 23:36] 私はslot-refでCLOS止めました letで囲めばいいじゃん!
217 名前:デフォルトの名無しさん [04/02/28 02:39] なんか物凄い基本的なことかもしれないですが、 Schemeの末尾再帰の動きが良くわからないのです。 どなたか教えてくださいませんか (define fact-tail (lambda(n x)(if( (= n 0) x (fact-tail(- n 1)(* n x))))) 階乗を求めようとしているのはわかりますが、 これに対して、(fact-tail 5 1) を与えたら何で120が導けるのかいまいちわからないです。 (fact-tail 3 1) として どういう風に再帰展開されるのかわかるかた 教えていただけませんでしょうか。
218 名前:デフォルトの名無しさん mailto:sage [04/02/28 02:48] >>217 1ステップずつ考えれば分かるだろ
219 名前:デフォルトの名無しさん mailto:sage [04/02/28 02:50] >>217 (fact-tail 3 1) (fact-tail (- 3 1) (* 3 1)) (fact-tail 2 3) (fact-tail (- 2 1) (* 2 3)) (fact-tail 1 6) (fact-tail (- 1 1) (* 1 6)) (fact-tail 0 6) (= n 0) が真になるので 6 を返す 末尾再帰は C などの for ループと本質的に同じ int fact(int n){ int x=1; for(; n--; 0!=n) x*=n; return x }
220 名前:217 [04/02/28 03:05] >>219 ありがとうございます。ぼけてました。引用もとの文には (if (= n 0) x と書いてあるのに手持ちのメモに (if (= n 0) 1 と書き写してしまいそっちをみていてはまってしまいました すっきりしました。おさわがせしてすみません。
221 名前:217 [04/02/28 03:11] >>219 引用元はSoftwareDesign の2000年9月号のScheme特集でした。 「末尾再帰を使うとスタックを消費しない」 と書いてあったけどイメージしにくかったんですが for ループに対応してると考えるとわかりやすいですね。
222 名前:デフォルトの名無しさん mailto:sage [04/02/28 11:34] 繰り返しを末尾再帰に直すと、変数代入の様な 明示的副作用を書なくて良いというのがあって、 Schemeではset!をほとんど使わずにコードが書ける。
223 名前:デフォルトの名無しさん mailto:sage [04/02/28 12:18] schemeに限ったことじゃないような。 まあ、"俺Lisp"的な実装はは末尾再帰最適化がなかったりするけど。
224 名前:デフォルトの名無しさん mailto:sage [04/02/28 13:18] >>223 Schemeは言語仕様上いつでも安心して使えるってことだよ。 例えばtail recursionがproperじゃないCommonLispで 「常に末尾再帰を意識しながら書く」って奴がいるとも思えないが。
225 名前:デフォルトの名無しさん mailto:sage [04/02/28 15:41] >>216 言いたい事が良くわかりまらないんだが with-slots あたりで満足ですか? >>224 大抵のプログラマは意識はしてると思いますが。 末尾再帰の話が出てこない CL の入門書は見たことないですし。 CL だと最適化オプション下げれば末尾再帰の最適化が OFF になってデバッグしやすくなるし。
226 名前:デフォルトの名無しさん mailto:sage [04/02/28 16:08] Emacs LispやCommon Lispを主に使って、Schemeはあまり使わない俺の場合だと、 再帰呼び出しが末尾にあるかどうかは最初はほとんど気にしません。 読みやすさや見ための綺麗さを優先して最初はコーディングします。 再帰を使う時は、スタックの消費量が問題になるほど、呼び出しが深くなるか どうかには注意します。そして、CLを使っているときは、もし再帰呼び出しが 末尾位置にあれば、ああ、スタックの消費量を気にしなくてもいいかな、という 考えが頭に浮かびます。
227 名前:225 mailto:sage [04/02/28 16:16] > 言いたい事が良くわかりまらないんだが with-slots あたりで満足ですか? いかん、丁寧に直したら副作用で日本語が壊れている…… >>226 末尾再帰って末尾位置に再帰があれば良いってもんじゃないんだけど。
228 名前:デフォルトの名無しさん mailto:sage [04/02/28 16:22] >>227 >末尾再帰って末尾位置に再帰があれば良いってもんじゃないんだけど。 R5RSに定義されている「末尾位置」のつもりだったんですけど?
229 名前:デフォルトの名無しさん [04/02/28 16:45] >>227 > 言いたい事が良くわかりまらないんだが with-slots あたりで満足ですか? あんた、いい人だ! でもgoshに無いのでやっぱりCLOS止め
230 名前:デフォルトの名無しさん mailto:sage [04/02/28 16:54] >>228 スマン。末尾位置ってはじめて聞いたもんで。tail context の事なのか? >>229 なんだそりゃ! 無いならお前が作れ!
231 名前:デフォルトの名無しさん mailto:sage [04/02/28 17:07] >>230 > tail context の事なのか? そうです。不正確でしたね失礼しました。今、R5RSで確認したんですけど、 tail contextが正しい用語みたいですね。覚えておこう。ちなみにtail contextの 日本語定訳はあるのかな? gaucheでゴーシュ。俺はしばらく「ガウチェ」と発音していたよ。
232 名前:デフォルトの名無しさん mailto:sage [04/02/28 17:07] >>225 末尾呼び出しを思いっきり使えるかどうかって、 コーティングスタイルがまるで変わってくると思うんですが、 >ttp://www.swiss.ai.mit.edu/~jaffer/hobbit_4.html (define (cpstak x y z) (define (tak x y z k) (if (not (< y x)) (k z) (tak (- x 1) y z (lambda (v1) (tak (- y 1) z x (lambda (v2) (tak (- z 1) x y (lambda (v3) (tak v1 v2 v3 k))))))))) (tak x y z (lambda (a) a))) ;;; call: (cpstak 18 12 6) たとえばこういう内包挟んだ末尾再帰もCommonLispコンパイラが ちゃんと末尾として認識するのかなと。
233 名前:デフォルトの名無しさん [04/02/28 17:18] >>230 いや、おれは「letで囲めば良い」を布教させる事に全力を傾けたい だから、もう一度、キョンキョンにこの歌を歌ってもらおう (キョンキョン)おまえら!一緒に歌ってくださーい ♪defineの次に、letで囲めばぁー いーじゃん♪ (見逃してくれよー) いーじゃん♪ (見逃してくれよー) ♪作ったlambdaの引数はいつもこれ→(msg . args) いーじゃん♪ (メッセージ送れよー) いーじゃん♪ (メッセージ送れよー) (キョンキョン)よし、分かったな。じゃあ解散!
234 名前:デフォルトの名無しさん mailto:sage [04/02/28 17:22] ↑バカ?
235 名前:デフォルトの名無しさん mailto:sage [04/02/28 17:24] >>232 大抵のコンパイラは普通に認識するよ。
236 名前:デフォルトの名無しさん mailto:sage [04/02/28 17:25] 徹夜で気でも狂ったか?
237 名前:デフォルトの名無しさん mailto:sage [04/02/28 17:30] ワロタ
238 名前:デフォルトの名無しさん mailto:sage [04/02/28 17:32] >>232 俺はこういうコーディングは思いつかないと思うけど、schemerの人って こういうコーディングをよくするの? 見ためは、綺麗だよね。
239 名前:デフォルトの名無しさん mailto:sage [04/02/28 17:37] >>232 そういうコードが安心して使えるかどうかっていうと駄目だろ。 CommonLispはコンパイラの最適化って点でインプリメンタの気まぐれなわけだし。 コーティングスタイルにまでは及ばない。
240 名前:デフォルトの名無しさん mailto:sage [04/02/28 17:39] >>238 CPS(232みたいなk=continuationを渡していくやつ)はよく使うよ。
241 名前:デフォルトの名無しさん [04/02/28 17:40] ♪defineの次に、letで囲めばぁー
242 名前:デフォルトの名無しさん mailto:sage [04/02/28 17:41] 春はまだ先だぞ
243 名前:デフォルトの名無しさん mailto:sage [04/02/28 17:44] 最適化部分は処理系依存なだけで。 C とかだって最適化は規格で決まってなくても プログラマは処理系のマニュアル見て安心して使うだろう?末尾再帰の最適化が完全 に良い事づくめなら Scheme みたいに規格で決めちゃってもいいかもしれんけど,デ バッグがやりにくくなるからなぁ…… でも普通は処理系が対応してりゃ安心して使えるだろう。大抵のコンパイラは末尾再 帰の最適化機能を備えているわけだ。以前 c.l.l でも出ていたがやっぱ最適化オプ ションに「末尾再帰の最適化」を設けるべきだろうなぁ。規格以外は一切使わないと いうポリシーもありだと思うけどね。
244 名前:sage [04/02/28 17:45] (見逃してやれよー)
245 名前:デフォルトの名無しさん mailto:sage [04/02/28 17:55] >>243 デバッグがやりにくくなる? どんなデバッグしてるのさ ログ出すだけじゃないの?
246 名前:デフォルトの名無しさん mailto:sage [04/02/28 18:40] アセンブラ出力しておっかけてるんだろ
247 名前:デフォルトの名無しさん mailto:sage [04/02/28 18:56] xyzzy で tail recursion が遅いのは大変残念な思いがします.
248 名前:デフォルトの名無しさん mailto:sage [04/02/28 18:56] 関数トレースしたり、エラーがでたらバックトレースみたり、 スタックフレームのぞくだけだけど…。ひょっとして「ログ出す」 ってのが普通なの?漏れ Lisp の正規の教育受けてないので 常識には自身がないんだよね。
249 名前:デフォルトの名無しさん mailto:sage [04/02/28 18:58] s/自身/自信/ どうやら国語も勉強しなおしたほうがいいようだ。吊ってくるわ。
250 名前:デフォルトの名無しさん mailto:sage [04/02/28 19:06] 所詮はエディタだし。
251 名前:デフォルトの名無しさん mailto:sage [04/02/28 19:08] Lispの正規の教育受けてる人なんてほとんどいないだろ。 Java/C/C++でさえ書籍orWebの情報だけでやっていく人がたくさんいるし。
252 名前:デフォルトの名無しさん mailto:sage [04/02/28 20:55] 正規の教育ってなんだ?(w
253 名前:デフォルトの名無しさん mailto:sage [04/02/28 21:14] >>245 のデバッグ手法を教えてください。漏れも最適化したらデバッグ用 情報が減るのは当たり前だと思ってたんだけど。Scheme では関数呼び出し 情報とかはあんまりデバッグに使わないんですか?
254 名前:デフォルトの名無しさん mailto:sage [04/02/28 22:17] schemeも、トレース実行すると末尾再帰の呼び出しが 普通の再帰みたくツリー上に出るんじゃない? デバッグでなんか大きな違いってあるの?
255 名前:デフォルトの名無しさん mailto:sage [04/02/29 01:09] >>253 ログ出しについての説明か? ループの中で変化する変数を表示するだけですが。
256 名前:デフォルトの名無しさん mailto:sage [04/02/29 13:11] >>254 え、何という処理系ですか?デバッグ周りって処理系依存ですよね。 トレース実行って特定の関数だけとか全体とか指定できるんですか? >>255 それだけじゃキツイなぁ。再帰がふか〜い所でエラーな時とか。 やっぱエラーになってデバッガが立ち上がったところから手繰って いけたほうが便利だと思いますが。私の使ってる処理系は debug レベル を 2 以上にすると末尾再帰の最適化が行われなくなるのでエラーに なった時点からフレームをたどっていけますが…。
257 名前:デフォルトの名無しさん mailto:sage [04/02/29 13:50] traceなら処理系というかマクロでできるよ
258 名前:デフォルトの名無しさん mailto:sage [04/02/29 15:53] デバッグがらみの話題で、処理の流れを目で追うことができるソースレベルデバッガが 売り物の処理系でも付いていないというのは、要望が少ないからなのかな? たしかに バックトレースの表示などの伝統的なやり方でもデバッグできるけどね。あと、要所 要所に(format t "my-var = ~S~%" my-var)を挿入とか。俺はPerlでもこのやり方で デバッグするね。Data::Dumperという便利なものもあるし。 俺はEmacs Lispではソースレベルデバッガであるedebugをもっぱら使ってdebugはほとんど 使ったことがない。
259 名前:デフォルトの名無しさん mailto:sage [04/02/29 16:39] stepじゃ駄目なの?
260 名前:デフォルトの名無しさん mailto:sage [04/02/29 16:53] >>259 いや、stepでもたぶん同じことができると思うけど、エディタでコード全体を 見渡しながらデバッグできると気持がいいんだよね。ついでに、監視したい式なんかを 複数登録しておいて常時、その値を表示させておくとか。ブレーク時に画面上で変数の 上にマウスポインタを置くだけで、値が表示されるとか。 つまり、昔かたぎの人からみれば、俺は現在のIDEに毒されているヘタレということか。プ
261 名前:デフォルトの名無しさん mailto:sage [04/02/29 17:53] slimeに期待かな。 現時点でもエラー箇所の表示とか凝ったことできるし。
262 名前:デフォルトの名無しさん mailto:sage [04/02/29 18:10] 名前がスライムっぽくて嫌
263 名前:デフォルトの名無しさん mailto:sage [04/02/29 19:34] メタルスライムがあらわれた メタルスライムAは逃げ出した
264 名前:デフォルトの名無しさん mailto:sage [04/02/29 20:05] バックトレースってデバッグでは便利だと思うんだけど Scheme の人は 要らないのかな?拾ってきたプログラムがエラー吐いてとまったときと かバックトレースが空だとちょっと悲しいんだけど。 >>257 なんか安心して使える trace の実装とかあります?処理系によっては 付いてるみたいだけど。付いてないのも結構あるので困るんですが。
265 名前:デフォルトの名無しさん mailto:sage [04/02/29 22:05] >>264 そういうのはどう転んでも処理系依存だしなあ。 いつでも外せるassertみたいなの埋め込むぐらいしか。 昔さわったminischemeのトレースはトレース対象を出力用の フック関数で挟む方式だった。後付けマクロ。 関数突入・脱出でトレース出力するので、 トレース対象関数は自然と末尾再帰が外れて山形の出力になる。 ただし内部関数、名無し関数には使えない。
266 名前:デフォルトの名無しさん [04/03/01 12:48] foo,bar,baz,mumble,glorp これって何に由来してんだぁ?
267 名前:デフォルトの名無しさん mailto:sage [04/03/01 13:21] >>266 foo と bar は RFC で定義されているよ
268 名前:デフォルトの名無しさん mailto:sage [04/03/01 14:02] RFCは冗談も混ざっているからなぁ。
269 名前:デフォルトの名無しさん [04/03/01 23:33] MLの有名な本より写経 A Lisp hacker says: 'Since the integers are a subset of the real numbers,the distinction between them is wholly artificial --foisted on us by hardware designers.ML should simply provide numbers, as Lisp does, and automaticaly use integers or reals as appropriate.' Do you agree? What considerations are there? MLerはいろいろ言うだろうが、Lisperはどう答える?
270 名前:デフォルトの名無しさん mailto:sage [04/03/02 00:00] なにを勿体つけてるんだ? ML for the working programmer の ex2.2 って言えばいいじゃん。翻訳もせずに丸投げなあたり宿題か何か? まぁ実際 ML にまでそうしろと言う Lisper は少ないと思うよ。 NetNews でも ML の数値周りが気に食わないと噛み付いてた Lisper は居たけど ML に Lisp 式の数値にしろ!とまで言うやつぁ少ないだろ。 理由はなんで ML がそうしてるかを考えればわかるだろ。
271 名前:デフォルトの名無しさん [04/03/02 00:08] まあ、そう熱くならんでも。 型無しのありがたみって何だろうな、というネタフリなんよ。
272 名前:デフォルトの名無しさん mailto:sage [04/03/02 00:36] 本からのコピペ程度でいちいち age るのがウザイんだよ。 ML スレでやれば?型無しのありがたみは無いってことでいいからさ。 デバッグ方法が聞けてウマーと思ってたのに、そんなつまらんネタ振るな。 だいたいここは Lisp 総合スレなんだ、型有りの Lisper 連中からすりゃ ハァ?って話題だろーが。全部の LISP 型無しという狭い見識をなんとか してから出直してきてくれ。
273 名前:デフォルトの名無しさん mailto:sage [04/03/02 00:37] dat 落ちした前スレを html 化してもらいました。 LISP Scheme Part9 ruku.qp.tc/dat2ch/0403/01/1069594582.html
274 名前:デフォルトの名無しさん [04/03/02 12:24] 強い型付けのないSchemeのような言語には 良いところもあるよなぁ、ということを言いたかった だけなんだがなぁ...
275 名前:デフォルトの名無しさん mailto:sage [04/03/02 12:49] まぁ、あんまり気にすんなや。
276 名前:デフォルトの名無しさん mailto:sage [04/03/02 19:09] 健全なマクロ VS 不健全なマクロ 1 :デフォルトの名無しさん :04/03/02 19:14 (ちょっと入れ子でスレ立たせてくれや) 健全なマクロって不便だし、不健全なマクロの貸しコートもささくれ立っていてなんかイヤ。 だから、健全なマクロに「不健全」ていうオプション欲しいよな? お前ら、どう思いますか。
277 名前:デフォルトの名無しさん mailto:sage [04/03/02 19:14] 健全なマクロ VS 不健全なマクロ 2 :デフォルトの名無しさん :04/03/02 19:15 2get
278 名前:デフォルトの名無しさん mailto:sage [04/03/02 19:16] 「不健全」というと健全なのより悪いイメージがあるからな〜。 個人的にはつまらないマクロと楽しいマクロだな。変数キャプチャ があった方がいろんな意味で楽しい。はまるとデバッグも愉快な事 になるしな。アヒャヒャヒャヒャ。
279 名前:デフォルトの名無しさん mailto:sage [04/03/02 19:20] define-unhygienic-syntax ;-)
280 名前:デフォルトの名無しさん mailto:sage [04/03/02 19:56] defmacro/define-macroの方が簡単だし構造見えるし作りやすい。 gensym命。でもSRFIのhygienicマクロそのまま読めない罠。 まあhygienic作る暇あったら正規表現でも統一しなさいってこった。
281 名前:デフォルトの名無しさん mailto:sage [04/03/02 20:28] >>278 define-boring-macro/define-amusing-macro とか? まぁ変数キャプチャを防いだところで世間の見る目はかわらんよね。 R... な言語の作者だってマクロはダメポって言ってたけどこれは 変数キャプチャ云々の話じゃないわけだし。
282 名前:デフォルトの名無しさん mailto:sage [04/03/02 22:08] >>281 世間の見る目って?どんな風に見られてるの? m@zはどうしてマクロはダメポって言ってるの?
283 名前:デフォルトの名無しさん mailto:sage [04/03/02 22:21] >>282 「神聖なる構文を一般利用者が触るなんてとんでもない。そんなの混乱の元だよ!」 ユーザビリティの問題だとかいってたあたりの事だと思われ。確認してないから 不正確かも知れんが探すのマンドクサ(括弧の話だったかも?)
284 名前:デフォルトの名無しさん mailto:sage [04/03/02 22:26] あのひとはユーザビリティって言葉好きだよね
285 名前:デフォルトの名無しさん mailto:sage [04/03/02 22:42] その割にRubyて妙な構文だらけだね え、LISPには劣るって!?
286 名前:デフォルトの名無しさん mailto:sage [04/03/02 23:02] あぁ!?神聖なる構文? しゃらくせえ。 おれ様が欲しいのは圧倒的な自由なんだよ! Schemeは聖域無き言語だぜ! ユーザビリティーだと? ヌルイ!ヌルイよそれ! ちょーヌルイよ! あーヌルイ。母さーん、火ぃつけてくれ。 ふぅー、ぬるぽ。
287 名前:デフォルトの名無しさん mailto:sage [04/03/02 23:05] C言語みたいな、ちょっと小汚い言語の方が好かれるかもなあ
288 名前:デフォルトの名無しさん mailto:sage [04/03/02 23:58] vimのVIlispってプラグインまともに動かせてる人いる? 設定のコツを教えてくれ。 \esで評価しようとするとvimが固まるんだけど…
289 名前:デフォルトの名無しさん mailto:sage [04/03/03 20:35] ( ・∀・) | | ガッ と ) | | Y /ノ 人 / ) < >__Λ∩ _/し' //. V`Д´)/ (_フ彡 / ←>>286
290 名前:デフォルトの名無しさん mailto:sage [04/03/04 14:28] Lispをよく知る前は、Lispは再帰が命と聞いた。 ↓ Common Lispを習ったら、再帰はC++と同じくらいしか使わないなと思った。 ↓ Schemeを習ったら、「やっぱりLispは再帰が命?」と思った。
291 名前:デフォルトの名無しさん mailto:sage [04/03/04 14:39] CPS (continuation passing style)ってSchemerの人達が発明したコーディングスタイルなのかな? 末尾再帰の最適化が保証されていないと、いやがる人がいそうな書き方だよね。 実際は、メモリを結構積んでいるマシンが増えたから、再帰が多少深くなったって、困る場面ってそうそう ないような気もするけど。
292 名前:デフォルトの名無しさん mailto:sage [04/03/04 16:36] コンパイラ関連でよく出てくるよ>CPS
293 名前:デフォルトの名無しさん mailto:sage [04/03/04 23:34] >>291 CPS ってもう少し汎用的な概念だと思う。 state パターンも原始的な CPS だと言えなくもない。 末尾再帰を使うのはたまたま scheme が末尾再帰を正当化してくれているから。
294 名前:デフォルトの名無しさん mailto:sage [04/03/05 13:44] www.lispworks.com/reference/HyperSpec/Body/t_std_cl.htm > System Class STANDARD-CLASS > Class Precedence List: standard-class, class, standard-object, t (subtypep 'standard-class 'standard-object) => NIL T ;; clisp => NIL T ;; cmucl => T T ;; ecl => T T ;; lispworks なにこの処理系たち… 久しぶりにaclをインストールしたら、 ./alisp dlopen(/tmp/acl62_trial/libacli623t.so, mode) error: /tmp/acl62_trial/libacli623t.so: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference と言って立ち上がらない…
295 名前:デフォルトの名無しさん mailto:sage [04/03/05 15:28] CVS 鯖のトラブルで遅れれてるけど CMUCL 19a は↓だよ.がんがれ Martin ! (Martin は週末に時間があったらがんがるそうです) CLOS based on Gerd's PCL 2003/06/18 09:23:09 * (subtypep 'standard-class 'standard-object) T T
296 名前:294 mailto:sage [04/03/05 15:47] clisp 2.28 (released 2002-03-03) cmucl CLOS 18e (based on PCL September 16 92 PCL (f)) ecl 0.9c lispworks Version 4.3.6 でした。 そういえば、cmuclはCLOSをだれか(Martinていう人?)が速くなるように書き直し ているという話を聞きました。 clispとか報告したほうがいいのかな…。fixも一緒じゃないとなんとなく気が引ける んだよね。一般的にconformance bugって重箱の隅をつつきだしたら結構あるし。
297 名前:デフォルトの名無しさん mailto:sage [04/03/05 15:54] あれっ、clisp 2.28って古すぎですね。今は2.32か。
298 名前:デフォルトの名無しさん mailto:sage [04/03/05 16:01] GNU CLISP 2.32 (2003-12-29) [1]> (subtypep 'standard-class 'standard-object) NIL ; T
299 名前:デフォルトの名無しさん mailto:sage [04/03/05 16:06] いや今 CMUCL はメインの CVS 鯖がダウンしてて Martin タソが準備してるってだけ。 はやくなおらないなか〜。PCL をいじってたのは Gerd Moellmann です。だから Gred's PCL。 19a からこっちになる予定。
300 名前:デフォルトの名無しさん mailto:sage [04/03/05 16:31] 今、cl-ppcreをDebianシステムにインストールしたんだけど、 apt-get install cl-ppcre で、clisp、cmucl、sbcl-mtなどインストールされているコンパイラ用にちゃんと コンパイルしてインストールくれるんだね。 しばらくDebianにさわってなかったけど、なんだか、とんでもなく便利になってきている気がする。 debパッケージになっているライブラリも多いし。Debian使っているLisperが多いのかな。 たしかcmuclの開発者もdebianの人が多かったよね。 あと、Redhat(Fedora?)だとメモリチェッカか何かの影響でcmuclが動かない(かった)という話も きいたことがあるね。今でもそうなのかな?
301 名前:デフォルトの名無しさん mailto:sage [04/03/05 17:16] >>299 同意。 早く復活しないとSBCLに(ry
302 名前:デフォルトの名無しさん mailto:sage [04/03/05 17:23] たしかに、現状でSBCLの方が開発に勢いがあると言ってた人がいたな。
303 名前:デフォルトの名無しさん mailto:sage [04/03/05 18:56] CMUCL派生なのに、ベンチマーク結果が大きく違うのは何でだろ。 www.cons.org/cmucl/benchmarks/index-print.html
304 名前:デフォルトの名無しさん mailto:sage [04/03/06 13:30] >>303 俺にはだいたい同じような結果に見えます。sbcl vs cmucl
305 名前:デフォルトの名無しさん mailto:sage [04/03/06 19:38] block compile って何ですか?
306 名前:デフォルトの名無しさん mailto:sage [04/03/07 11:53] >>305 どんな文脈で、でてきた言葉ですか?
307 名前:デフォルトの名無しさん mailto:sage [04/03/07 17:59] たぶんcmuclじゃないかな。 ftp://ftp.averillpark.net/cmucl/doc/cmu-user/compiler-hint.html#toc161 を熟読。
308 名前:デフォルトの名無しさん mailto:sage [04/03/08 20:32] Gaucheはmingw用でいいからWindows向けのmakefile書いて欲しいなあ。 cygwin入れてconfigure環境作るのマンドクサ
309 名前:デフォルトの名無しさん mailto:sage [04/03/08 21:04] >>309 確かに。漏れもGaucheのためにcygwin入れたよ。
310 名前:305 mailto:sage [04/03/08 22:55] >>306-307 レス遅くなりまして済みません。SBCL と CMUCL の比較で、SBCL はまだ block compile が出来ないよみたいな記述があったので、お聞きしました。 >>307 どうもありがとうございます。読ませて頂きます。
311 名前:デフォルトの名無しさん mailto:sage [04/03/08 23:07] block compileには何のメリットが?
312 名前:189 mailto:sage [04/03/12 00:29] 以前、>>197-198 でコードを提供していただいた者です。 >>211 の後で、ドットリストも扱えるように改造して、欲しい仕様の物ができました。 それを、いま移植作業を進めているプログラムに同梱したいのですが、著作権表記や ライセンスなどでご要望がありましたらお知らせください。 (元プログラムがBSDライセンスなので、それと同じで配布できるとありがたいのですが)
313 名前:197 mailto:sage [04/03/12 01:37] >>312 好きにしていいよ。
314 名前:デフォルトの名無しさん [04/03/12 16:59] このスレ廃れたな....
315 名前:デフォルトの名無しさん mailto:sage [04/03/12 18:59] わざわざ言うほどでもない
316 名前:デフォルトの名無しさん mailto:sage [04/03/12 19:34] いや、初心者スレの登場でレスが分散して、ここ数日何か寂しいなあと感じたので。
317 名前:デフォルトの名無しさん mailto:sage [04/03/12 19:37] 淋しがりやさんなのね
318 名前:デフォルトの名無しさん mailto:sage [04/03/12 19:39] 新ネタがくれば ワッシワッシ盛り上がるよ
319 名前:デフォルトの名無しさん mailto:sage [04/03/12 19:44] 両方見てれば別に寂しくないじゃん。 ところで >>189 は何を移植してるんだろ。 期待して待つぞ〜
320 名前:デフォルトの名無しさん mailto:sage [04/03/12 20:56] ↓新ネタ登場!
321 名前:189 mailto:sage [04/03/12 22:37] >>319 khdd.net/kanou/kangae/2003/Apr.html#12.1.4 をご覧ください。
322 名前:デフォルトの名無しさん mailto:sage [04/03/13 14:20] >>321 リンク先みても(12.1.4というアンカー名が見つからない)、いまいち分からないのですが、フォント関連のアプリですか?
323 名前:デフォルトの名無しさん mailto:sage [04/03/13 15:30] khdd.net/kanou/kangae/2004/Mar.html#12.1.4 と間違えたんだろ
324 名前:デフォルトの名無しさん mailto:sage [04/03/13 16:06] なるほろ
325 名前:デフォルトの名無しさん mailto:sage [04/03/13 17:15] #+cmu (loop for i from 128 to 255 do (set-syntax-from-char (code-char i) #\a)) みたいに処理系固有の処理は *features* を使うとイイと思われ。
326 名前:デフォルトの名無しさん [04/03/13 21:52] こういうのを高階関数を使って綺麗に書けませんか? (lambda (a b) (> (car a) (car b)))
327 名前:デフォルトの名無しさん mailto:sage [04/03/13 22:55] >>326 逆に汚いかも (lambda (a b) (apply > (map car (list a b))))
328 名前:デフォルトの名無しさん mailto:sage [04/03/13 23:29] (> a b :key #'car) みたいに書きたいということじゃないの。
329 名前:326 mailto:sage [04/03/14 00:03] 説明不足ですみません。↓こういう用途で使いたいのです。 (sort '((5 a) (3 b) (4 c)) (lambda (a b) (> (car a) (car b)))) map,cut,apply,compose等を使って相当考えたんですが lambdaを使わないで表現できません・・・ 綺麗or簡潔にするのは無理な気がしました。 でも汚い例ですら考えつかなかったので悔しいです。
330 名前: [04/03/14 01:35] (define (cons x y) (lambda(m)(m x y))) (define (car z) (z (lambda (p q) p))) としたとき、(car (cons x y)) が x を生じることを 証明せよ、とSICPに言われたんですけど、よくわからんのです。 頭がこんがらがって。 mzscheme というのを使ってるのですが、動きを追うための 機能ってないんでしょうかね。
331 名前:デフォルトの名無しさん mailto:sage [04/03/14 01:49] 言語レベルを落とせばトレースできたような気がしなくもないが 普通に式変形してけばOKかと (car (cons x y)) => (car (lambda (m) (m x y))) => ((lambda (m) (m x y)) (lambda (p q) p))) => ((lambda (p q) p) x y) => x
332 名前: [04/03/14 01:59] >>331 あ〜、なるほど。ありがとうございます。 すっきりしました。わたしまだ基本ができてないっすね。 精進します。
333 名前:デフォルトの名無しさん mailto:sage [04/03/14 09:22] >>329 (sort '((5 a) (3 b) (4 c)) #'> :key #'car)
334 名前:326 mailto:sage [04/03/14 15:16] >>333 おおっ ありがとうございます。 Schemeは無理ですか?
335 名前:デフォルトの名無しさん mailto:sage [04/03/14 15:27] sort関数自体の仕様による。 どうしても必要なら (sort '((5 a) (3 b) (4 c)) > car) という引数を受け付ける様にするとか。 car>という関数でも作るとか。
336 名前:デフォルトの名無しさん mailto:sage [04/03/14 15:36] (lambda a (apply > (map car a)))
337 名前:326 mailto:sage [04/03/14 16:04] >>336 こんなことができたのですか。これなら満足です。 皆さんどうもありがとうございました。
338 名前: [04/03/14 23:11] (define (reverse ls) (if (null? ls) ls (append (reverse (cdr ls))(list (car ls))))) とやると、リストがさかさまになるらしいのですが、動きは どうなるのでしょう。 最初の引数が(1 2 3)として、 (append (reverse (cdr (1 2 3))(list (car (1 2 3)))) (append (reverse ((2 3))(list (1))) (append (reverse ( (cdr (2 3)))) (list (car (2 3)))) (append (reverse (3))(list (2))) となって、あれ?となります。けど実行するとさかさまになっている なんかわからないです。だれか動き方を教えてください!
339 名前:デフォルトの名無しさん mailto:sage [04/03/14 23:23] >>338 (reverse '(1 2 3)) (append (reverse '(2 3)) '(1)) (append (append (reverse '(3)) '(2)) '(1)) (append (append (append (reverse '()) '(3)) '(2)) '(1)) (append (append (append '() '(3)) '(2)) '(1)) (append (append '(3) '(2)) '(1)) (append '(3 2) '(1)) '(3 2 1)
340 名前: [04/03/14 23:39] >> 339 あ! append 自体が入れ子になるわけですね! やっとわかった!ありがとうございました!
341 名前:デフォルトの名無しさん mailto:sage [04/03/15 15:45] だれか、これ知っていますか? ECLと似たアプローチだと思うけど、評判はあまり聞かないな。 WCL 3.0 - Embeddable Common Lisp for Linux wcl.kontiki.com/ 何でもいいから情報キボンヌ
342 名前:デフォルトの名無しさん mailto:sage [04/03/16 01:13] 前スレ 422 からの Y combinator は面白い。 関係ないけど、クロージャをオブジェクトと見立てて self や this 相当の機能を実現しようと するとマクロを使うか引数で渡してあげるしかないのかな。
343 名前:デフォルトの名無しさん mailto:sage [04/03/16 03:32] >>342 letrec とか使えば、とりあえず自分を参照できるけど。 (let* ((foo (let ((val 1)) (define (self sym) (cond ((eq? sym 'val) val) ((eq? sym 'self) self))) self)) (bar (let ((super foo) (val 2)) (define (self sym) (cond ((eq? sym 'val) val) ((eq? sym 'self) self) ((eq? sym 'super) super) (t (super sym)))) self))) (list (bar 'val) ((bar 'self) 'val) ((bar 'super) 'val))) => (2 2 1) とか、こういう話?
344 名前:デフォルトの名無しさん mailto:sage [04/03/16 23:00] >>343 そっか、let で括ってあげれば良いんですね。lambda だけでと考えてました。
345 名前:デフォルトの名無しさん mailto:sage [04/03/17 13:34] 頼むから、CMUCLのCVS早く復旧してくれよ。 もう二ヶ月以上も経過してるぞ。
346 名前:デフォルトの名無しさん mailto:sage [04/03/17 13:58] ミラーは全部生きてるわけだし普通のユーザーにはそれほど不都合は 無いでしょ。Martin タンだってボランティアなんだしあまりワガママを 言うもの気の毒じゃん。どうしても文句言いたきゃ cmucl-devel で騒ぐ ほうか良いと思われ。
347 名前:デフォルトの名無しさん mailto:sage [04/03/17 15:59] >Martin タンだってボランティアなんだしあまりワガママを言うもの気の毒じゃん。 なのに >どうしても文句言いたきゃ cmucl-devel で騒ぐほうか良いと思われ。 ってのは一番ヤバい選択なような。
348 名前:デフォルトの名無しさん mailto:sage [04/03/17 16:53] 自分では何もする気がないのにただ「さっさと復旧汁」とか言いたいだけなら 黙ってたほうが賢明かと。別に配布が完全停止ってわけでもなくデベロッパーは 黙々と作業してるわけで。でも建設的な提案(回線とセットアップ済みハードウェア を提供とか)があるなら言ってみれば。
349 名前:デフォルトの名無しさん mailto:sage [04/03/17 17:28] >自分では何もする気がないのにただ「さっさと復旧汁」とか言いたいだけなら黙ってたほうが賢明かと。 俺はそうは思わない。以上 >でも建設的な提案(回線とセットアップ済みハードウェアを提供とか)があるなら言ってみれば。 なんで建設的な話? 不毛な雑談を認めないのかよ。 建設的な提案があればこんなところではなくcmucl-develへ投稿するところだが。
350 名前:デフォルトの名無しさん mailto:sage [04/03/17 17:38] Lisperはまじめっこが多いから不毛な雑談はできません
351 名前:デフォルトの名無しさん mailto:sage [04/03/17 17:47] ナ ゝ ナ ゝ / 十_" ー;=‐ |! |! cト cト /^、_ノ | 、.__ つ (.__  ̄ ̄ ̄ ̄ ・ ・ ,. -─- 、._ ,. -─v─- 、._ _ ,. ‐'´ `‐、 __, ‐'´ ヽ, ‐''´~ `´ ̄`‐、 / ヽ、_/)ノ ≦ ヽ‐'´ `‐、 / / ̄~`'''‐- 、.._ ノ ≦ ≦ ヽ i. /  ̄l 7 1 イ/l/|ヘ ヽヘ ≦ , ,ヘ 、 i ,!ヘ. / ‐- 、._ u |/ l |/ ! ! | ヾ ヾ ヽ_、l イ/l/|/ヽlヘト、 │ . |〃、!ミ: -─ゝ、 __ .l レ二ヽ、 、__∠´_ |/ | ! | | ヾ ヾヘト、 l !_ヒ; L(.:)_ `ー'"〈:)_,` / riヽ_(:)_i '_(:)_/ ! ‐;-、 、__,._-─‐ヽ. ,.-'、 /`゙i u ´ ヽ ! !{ ,! ` ( } ' (:)〉 ´(.:)`i |//ニ ! _/:::::::! ,,..ゝ! ゙! ヽ ' .゙! 7  ̄ | トy'/ _,,. -‐ヘ::::::::::::::ヽ、 r'´~`''‐、 / !、 ‐=ニ⊃ /! `ヽ" u ;-‐i´ ! \::::::::::::::ヽ `ー─ ' / ヽ ‐- / ヽ ` ̄二) /ヽト、 i、 \:::::::::::::::..、 ~" / ヽ.___,./ //ヽ、 ー
352 名前:デフォルトの名無しさん mailto:sage [04/03/17 17:53] 別に 348 の見解をそんなに気にする事はないだろう。 不毛な雑談でもオモシロければイイ。同じネタのループはイクナイ。 で CVS の復旧マダーな話は「こんなところ」でも既出なわけだが。
353 名前:デフォルトの名無しさん mailto:sage [04/03/17 18:15] じゃあ、次はCVSのクラッキンg(ry
354 名前:デフォルトの名無しさん mailto:sage [04/03/18 08:43] >>344 展開してみた。 ((lambda (foo) ((lambda (bar) (list (bar 'val) ((bar 'self) 'val) ((bar 'super) 'val))) ((lambda (super val) ((lambda (self) (self self)) (lambda (self0) ((lambda (self1) (lambda (sym) (cond ((eq? sym 'val) val) ((eq? sym 'self) self1) ((eq? sym 'super) super) (#t (super sym))))) (lambda (sym) ((self0 self0) sym)))))) foo 2))) ((lambda (val) ((lambda (self) (self self)) (lambda (self0) ((lambda (self1) (lambda (sym) (cond ((eq? sym 'val) val) ((eq? sym 'self) self1)))) (lambda (sym) ((self0 self0) sym)))))) 1)) => (2 2 1) ; ところで、 closure を object と見立てるって、こういうので合ってるの?
355 名前:デフォルトの名無しさん mailto:sage [04/03/18 11:13] まぁ正直 let 使ったほうが見やすいわけだが。わざわざ展開してあげるとは >>354 も人が良いねぇ。let や let* は lambda で書けるだろゴルァ!! で 終わりそうなもんだが。まぁ >>344 よ、基本的に (let ((x 1) (y 2)) (+ x y)) => ((lambda (x y) (+ x y)) 1 2) (let* ((x 1) (y 2)) (+ x y)) => ((lambda (x) ((lambda (y) (+ x y)) 2)) 1) でも流石に let 使ったほうがわかりやすいので大抵の Lisp にゃ let や let* が用意されてるわけだ。
356 名前:デフォルトの名無しさん mailto:sage [04/03/18 12:56] むしろ define(= letrec) を展開してることに意味があったり。
357 名前:デフォルトの名無しさん mailto:sage [04/03/19 14:42] The Seasoned Schemerってどうかな。安いから買おうかな。littleは持ってるんだけど。 www.amazon.co.jp/exec/obidos/ASIN/026256100X/249-6997664-7938729 と思ったら、The Little Mler などというもっと面白そうな本が...
358 名前:デフォルトの名無しさん [04/03/22 14:37] Lispがそんなにすごいなら ---If Lisp Is So Great--- www.shiro.dreamhost.com/scheme/trans/iflisp-j.html
359 名前:デフォルトの名無しさん mailto:sage [04/03/22 18:54] JavaとかC++とか手続き型で一般的なオブジェクトの メソッド呼び出し形式が書ける様になれば普及すると思うんだけど、 どうかな。 シングルメソッドディスパッチでいいし。 つまりこういうこと (object.method param) ;; object->method(param) (object->method param) ;; object->method(param) (setf object->prop value) ;; object->prop = value .と->はどっちでもいいけど。.はdot-pairと被るから->かな。 マクロ文字でなんとかなったりする? でもメソッド呼び出しをネストさせると ((object->method param1)->method param2) ;; object->method(param1)->method(param2) 変な違和感がある。 そもそも->はsuffix演算子だから、本来ならLISP流に書くと (-> (-> object method param1) method param2) こうなる。 でもこれじゃ使う人いないだろう。 まいった。
360 名前:デフォルトの名無しさん mailto:sage [04/03/22 23:11] >>358 >(だが、気をつけ給え。その論理の行き着く先はWindowsだ。) ワロタ 広まるのが悪いみたいな言い方だな(w
361 名前:デフォルトの名無しさん mailto:sage [04/03/23 00:06] >>359 . や -> は繋ぎの役割しかしてないから、括弧と両方あるのは冗長。省こう。 object と getter や method の順序は、lisp だと procedure が前だから、 (setf (prop obj) value) と ((method obj) param) あと方のは中の括弧はなくてもいいか。そうすると、(method obj param)。 あれ、両方とも今のままだ。
362 名前:デフォルトの名無しさん mailto:sage [04/03/23 00:18] (だが、気をつけ給え。その論理の行き着く先はloopだ。)
363 名前:デフォルトの名無しさん mailto:sage [04/03/23 09:28] loop keywordをリスト中にいきなり出てくるキーワードではなくて、ローカルマクロ みたいに見えるように定義したら、loop嫌いな人も減ったかな。 (loop (for item in list) (collect item))
364 名前:デフォルトの名無しさん [04/03/23 10:22] > (* 1.05 12) 12.600000000000001 > (* 1.05 12.0) 12.600000000000001 Gaucheでこの誤差をなくす方法を教えてください。 (プログラム初心者板ものですね。申し訳ないです)
365 名前:デフォルトの名無しさん mailto:sage [04/03/23 11:13] そんなもの (* 105/100 12) とすれば、、、 12.600000000000001 あれ???
366 名前:デフォルトの名無しさん mailto:sage [04/03/23 11:22] 浮動小数点の仕様。 十進数使え。Gaucheにあるかどうかはしらんが。
367 名前:デフォルトの名無しさん mailto:sage [04/03/23 11:24] gaucheはexact rationalないみたいだからね。 formatで桁指定できれば助かるんだが。
368 名前:デフォルトの名無しさん mailto:sage [04/03/23 11:24] clisp なら (* 105/100 12) => 63/5 でウマー!! というは置いといてだ, #include <stdio.h> int main(int argc, char *argv[]) { double f = 1.05*12; printf("%f\n", f); printf("%.14f\n", f); printf("%.15f\n", f); printf("%.16f\n", f); return 0; } の結果が 12.600000 12.60000000000000 12.600000000000001 12.6000000000000014 になる事について,どう思う?
369 名前:デフォルトの名無しさん mailto:sage [04/03/23 11:38] What Every Computer Scientist Should Know About Floating-Point Arithmetic docs.sun.com/source/806-3568/ncg_goldberg.html 日本語訳は腐っていた記憶あり。 他にも浮動小数点数の入門文書あったら紹介してください。
370 名前:デフォルトの名無しさん mailto:sage [04/03/23 12:08] IEEE double precision floating pointで、 1.05の最良近似は丸めが入って (* #x10cccccccccccd (expt 2 -52))。 仮数部を12倍すると #xc999999999999c。 これは54bitになるから、仮数部53bitに収めるにはまた丸めなくちゃ ならない。ちょうど中間の値に来るときは仮数部が偶数になるように 丸めるから、演算結果はこうなる。 (* #xc99999999999a0 (expt 2 -52)) 一方、12.6, 12.600000000000001の最良近似は、桁を揃えればそれぞれ: (* #xc9999999999998 (expt t -52)) (* #xc99999999999a0 (expt t -52)) だもんで、正確さを言うなら12.600000000000001の方が正確やね。 見にくいことは否定しないが。
371 名前:デフォルトの名無しさん mailto:sage [04/03/23 22:09] >>364 gosh> (* 1.05 1.2 10) 12.6
372 名前:デフォルトの名無しさん mailto:sage [04/03/24 02:59] >>359 (obj 'msg args) という形で Smalltalk のメッセージ式風に記述するとか。 キーワード引数付きのメッセージ式って Lisp 等の関数呼び出し式と同様に 一貫した記述(条件分岐とか、繰り返しとかもメッセージ式風に記述出来る) が出来て、尚かつ読み易くて イイ! と思うんだけどどうかな?
373 名前:デフォルトの名無しさん mailto:sage [04/03/24 03:27] >>359 ,372 そんな簡単なことで普及するなら Dylan はとっくの昔にメジャーになっとるがな。 要するに、マクロで書式を自由にできることがウリの LISP で駄目だってことは、 (なにが駄目だかわらかんが)問題は(あるとすれば)書式にあるんじゃないっ てことなんだよ。(で、なにが駄目で問題なんだ…?藁)
374 名前:デフォルトの名無しさん mailto:sage [04/03/24 05:55] 他の言語で満足してるからじゃないの?
375 名前:デフォルトの名無しさん mailto:sage [04/03/24 07:24] 足りないこと ・(すでに)C/C++言語並みに広まっていること ・C/C++のようにどこでも動くこと(最近のPCでも、組み込み機器でも)
376 名前:デフォルトの名無しさん mailto:sage [04/03/24 09:17] それは言語が普及する原因ではなく、結果ですよ
377 名前:デフォルトの名無しさん mailto:sage [04/03/24 09:51] >>373 お前、括弧の使い方が下手だな。 その文章、激しく読みにくいぞ。
378 名前:デフォルトの名無しさん mailto:sage [04/03/24 10:49] >>376 分からないかな。 "普及すれば普及する"というロジックが。 最初の出発点は些細なことでしょ。(Lispは重すぎたとか)
379 名前:デフォルトの名無しさん mailto:sage [04/03/24 11:13] >>378 言いたいことは、分かるよ。原因と結果が循環するということね。 ただそれは、ある言語が普及しだして、一応、人気が軌道にのってからの話しでしょ。 >最初の出発点は些細なことでしょ。 最初の一撃ってけっこう大切なことでしょ。それが些細なことであっても。
380 名前:デフォルトの名無しさん mailto:sage [04/03/24 11:17] しかし、今となってはLispが重いとか言っている年寄りは、そろそろ引退してくれる頃だよね。
381 名前:デフォルトの名無しさん mailto:sage [04/03/24 13:07] (だが、気をつけ給え。その論理の行き着く先はIf Lisp Is So Greatだ。)
382 名前:デフォルトの名無しさん mailto:sage [04/03/24 22:57] >>380 いいから、携帯でLisp動かしてみろ。GBAでもいいよ。 PCとかワークステーション以外は、始める前から年寄り引退確定か
383 名前:デフォルトの名無しさん mailto:sage [04/03/24 23:07] 多分動かすだけなら難しくはないな >382 は自分でLisp処理系を作ったことがないのか?
384 名前:デフォルトの名無しさん mailto:sage [04/03/25 00:42] 動かすだけなら難しくないと思う。 >382 はILC2003で絶賛された湯浅センセのXSでも勉強すれ。 hxxp://www.xslisp.com/
385 名前:デフォルトの名無しさん mailto:sage [04/03/25 06:45] ・動かすだけなら難しくない ・処理系作れ 馬鹿の一つ覚えですか? Cだったらすでにコンパイラがあったりするわけですよ。 お前らは、新しい環境が着たらそのたびに、コンパイラ作ってるのかと小一時間・・・ もう、Lisperとやりあうのは疲れた
386 名前:デフォルトの名無しさん mailto:sage [04/03/25 07:43] 「新しい環境」が来たらそのたびに、 C だって移植作業してるんじゃないかな。 「新しい環境」を作った人達が一緒に開発するかもしれないけど。 「すでに」あるかどうかは、その環境と言語がどれだけ普及してるかって話でしかないと思う。
387 名前:デフォルトの名無しさん mailto:sage [04/03/25 08:58] >>382 > いいから、携帯でLisp動かしてみろ。GBAでもいいよ。 たしか、LispMeという処理系がPalm PilotというPDAで動いていたな。 携帯とかGBAとかでも、開発環境が入手しやすければ、だれかが動かしても おかしくないね。LispといってもCommon Lispのようにライブラリ的な機能が 豊富にそろっている言語から、Schemeみたいに山椒は小粒で…みたいなものまで 色々あるんだよ。 >>385 >Cだったらすでにコンパイラがあったりするわけですよ。 たしかに最初から使えれば便利だね。Cでそのままプログラミングするか、 Lispのようなもう少し抽象化が行われた言語を実装してから作業するか、 そのコストの見積りだろうね。 >お前らは、新しい環境が着たらそのたびに、コンパイラ作ってるのかと小一時間・・・ だれかが作業をやってくれていなければ、自分でやるか、人にやってもらうしかないでしょう。 それは、Cでも変わらないよ。ただCとLispの守備範囲はあまり、かぶらないと思うけど。
388 名前:デフォルトの名無しさん mailto:sage [04/03/25 09:17] 最近は組み込み用途にも、C++やJavaを使う事があるらしいね。ここらへんならLispとかぶるかね。
389 名前:デフォルトの名無しさん mailto:sage [04/03/25 10:21] >>385 ならバックエンドにはすでにある C コンパイラを利用するような 拡張をするという手もあるよ.C のソースを出力すりゃいいわけで 仲良くやってけるじゃん.なんで勝手に対決姿勢になってんの?
390 名前:デフォルトの名無しさん mailto:sage [04/03/29 11:23] 390 名前:デフォルトの名無しさん[sage] 投稿日:04/03/25(木) 23:04 そういやKCLはオブジェクト言語がCだったような。
391 名前:デフォルトの名無しさん mailto:sage [04/03/29 11:25] 391 名前:デフォルトの名無しさん[sage] 投稿日:04/03/25(木) 23:54 ターゲット用の専用言語(GC 無しとかね)を作るのも楽だな.S 式ベースで構文考 える手間が少ないし.C のソース出力でもアセンブラ出力でもバイナリ出力でも気合 いと時間に応じて自由に選べるし.
392 名前:デフォルトの名無しさん mailto:sage [04/03/30 23:28] 392 名前:デフォルトの名無しさん[sage] 投稿日:04/03/26(木) 23:54 あれ?誰もいない・・・
393 名前:デフォルトの名無しさん mailto:sage [04/03/31 13:39] 393 名前:デフォルトの名無しさん[sage] 投稿日:04/03/26(木) 23:59 ジリリリリリリリリーン
394 名前:デフォルトの名無しさん mailto:sage [04/03/31 22:48] 結局Schemeに戻ってきてしまった.
395 名前:デフォルトの名無しさん mailto:sage [04/04/01 05:12] slime のマニュアル。既出じゃなかったような気がするので一応。 ttp://www.bluetail.com/~luke/misc/lisp/slime.pdf
396 名前:デフォルトの名無しさん mailto:sage [04/04/01 05:18] slime のマニュアル。既出じゃなかった気がするので一応。 ttp://www.bluetail.com/~luke/misc/lisp/slime.pdf
397 名前:デフォルトの名無しさん mailto:sage [04/04/02 11:25] slime のマニュアル。既出じゃない気がするので一応。 ttp://www.bluetail.com/~luke/misc/lisp/slime.pdf
398 名前:デフォルトの名無しさん mailto:sage [04/04/03 19:22] slime のマニュアル。既出でない気がするので一応。 ttp://www.bluetail.com/~luke/misc/lisp/slime.pdf
399 名前:デフォルトの名無しさん mailto:sage [04/04/03 21:15] (gc)
400 名前:デフォルトの名無しさん mailto:sage [04/04/04 03:16] 荒らし?
401 名前:デフォルトの名無しさん mailto:sage [04/04/04 13:04] ('A`)
402 名前:デフォルトの名無しさん mailto:sage [04/04/04 22:56] 「警察だ。ドンドンドン。開けろ。荒しの容疑で逮捕する。開けなさい。」 「ふぁ〜(眠)け、けいさつ〜?」 「そうだ。警察だ。早く開けなさい。」 「け、けいさつ〜?ここは、けいさつじゃないよ〜。」 「ふざけるな。私は警察だぞ。いつまで寝たふりしてるんだ。早く開けろ。」 「ふぁ〜(眠)ね、ねた〜?ね、ねたなんて、ふってないよ〜」 「ネタ振りじゃないよ!寝たふりだよ!このやろう!無駄な抵抗は止めろ!」 「ね、ねたふり〜?こ、ここは、ネタスレじゃないよ〜。」 「ここはネタスレじゃないよ!ここをネタスレ化している荒らしはお前だろ!いいから開けろ!」 「あらし〜?」 「そうだ。容疑を認めるならさっさとここを開けなさい!」 「こ、ここは、ゲームセンターじゃないよ〜」 「俺はアラシじゃないよ!!お前が荒らしなんだよ!なんだよっゲームセンターって!!!炎のコマかよ!・・・」 「・・・」 「・・・」 (;´∀`)
403 名前:デフォルトの名無しさん mailto:sage [04/04/04 23:18] (;´∀`) nil
404 名前:デフォルトの名無しさん mailto:sage [04/04/05 23:01] >>403 うれピー!!! (;`∀`) 韮韮韮韮韮韮韮韮韮 韮韮韮韮韮韮韮韮韮 韮韮韮韮韮韮韮韮韮 韮韮韮韮韮韮韮韮韮
405 名前:デフォルトの名無しさん mailto:sage [04/04/05 23:28] 春爛漫
406 名前:デフォルトの名無しさん mailto:sage [04/04/06 00:34] >>405 >>春爛漫 1/2 なんちゃって!
407 名前:デフォルトの名無しさん mailto:sage [04/04/06 12:20] Kahua使ってる人いる? 感想聞かせて
408 名前:デフォルトの名無しさん [04/04/06 13:19] cmucl19a期待age
409 名前:デフォルトの名無しさん mailto:sage [04/04/06 13:28] cmuclの新しいCLOSで以下の式を評価すると何が返りますか? (class-name (class-of (class-of #'make-instance))) ちなみに、cmucl18eだとstandard-class、clisp 2.33だとbuilt-in-class ですが、MOP的には、funcallable-standard-classが正しい気がします。
410 名前:デフォルトの名無しさん mailto:sage [04/04/08 23:09] 初心やスレからやってきました。 LISP初心者です。 ここのスレの皆様方に教えっていただきたいことがあるのですが、 WINDOWS版のCL-HTTPを落としたいのですが、MITのHPのダウンロード できそうなリンクがほとんどエラーになるのですが、CL-HTTPを ダウンロードするにはどうすればいいんでしょうか? よろしくお願いします。
411 名前:デフォルトの名無しさん mailto:sage [04/04/08 23:41] ハァ
412 名前:デフォルトの名無しさん mailto:sage [04/04/09 18:44] 〃〃∩ _, ,_ ⊂⌒( `Д´) < WINDOWS版のCL-HTTPを落としたいよ〜! `ヽ_つ ⊂ノ ジタバタ
413 名前:デフォルトの名無しさん mailto:sage [04/04/09 20:23] >>409 [gcl 2.5.3] Error: The function CLASS-NAME is undefined. [ecl 0.9c] STANDARD-CLASS [sbcl 0.8.6] SB-PCL:FUNCALLABLE-STANDARD-CLASS
414 名前:デフォルトの名無しさん mailto:sage [04/04/10 08:40] やさしいLisp入門 ttp://www.cutt.co.jp/book/4-87783-102-9.html こんなもん出てるようだけど、どうなん?
415 名前:デフォルトの名無しさん mailto:sage [04/04/10 09:06] 4200円! たっか〜。 どうみても入門書でたいして面白そうな例題もないこの内容で、この値段。うーむ。
416 名前:デフォルトの名無しさん mailto:sage [04/04/10 09:10] CLOSどころかマクロのマの字もないな。
417 名前:デフォルトの名無しさん mailto:sage [04/04/10 15:34] ネタじゃないんだよね? 他のやさしいシリーズの倍近い値段は置いておくとして (ページ数も倍の480だし)、 よりによってCommonも何もついてないLISPとは、 いったいどういうことなのか。 読んでみないことには何とも言えないけど、 最終章にコンパイラとローダとリンカがあるということは、 やっぱりCommonLISPなのか。 日本のLISP業界にとって歴史的事件となるのかどうか。
418 名前:デフォルトの名無しさん mailto:sage [04/04/10 17:32] >>409 >(class-name (class-of (class-of #'make-instance))) LispWorksPersonalEditionで試してみると FUNCALLABLE-STANDARD-CLASS だね
419 名前:デフォルトの名無しさん mailto:sage [04/04/10 19:49] The Evolution of Language ttp://homepages.inf.ed.ac.uk/wadler/language.pdf
420 名前:デフォルトの名無しさん mailto:sage [04/04/10 20:37] >>417 > よりによってCommonも何もついてないLISPとは、 > いったいどういうことなのか。 書店で立ち読みしたところ第一章にCommon Lispと明記してあったのだが。 何を見当違いのことで騒いでいるのかね。
421 名前:デフォルトの名無しさん mailto:sage [04/04/10 20:47] >>420 内容はどうだったの?
422 名前:デフォルトの名無しさん mailto:sage [04/04/10 23:52] >>409 手元ではこんなんですが. CMU Common Lisp pre19a 20040410, running on lavie With core: /home/lambda/local/lib/cmucl/lib/lisp.core Dumped on: Sat, 2004-04-10 11:20:09+09:00 on lavie See <www.cons.org/cmucl/> for support information. Loaded subsystems: Python 1.1, target Intel x86 CLOS based on Gerd's PCL 2004/01/09 04:34:17 * (class-name (class-of (class-of #'make-instance))) PCL:FUNCALLABLE-STANDARD-CLASS *
423 名前:409 mailto:sage [04/04/11 16:59] 情報を頂いたみなさん、ありがとうございました。 FUNCALLABLE-STANDARD-CLASSの方が、MOP的に「正しい」とまでは言えないかもしれないけど、 「そのほうが自然」とは言えるかな? clispの開発者の人が1、2年前にMLで、「FUNCALLABLE-STANDARD-CLASSをサポートしないの?」と 尋ねられて、「自分で書いても同じような事を手軽にできるし、ANSI規格でもないから、今のところ 作業予定はないよ」と言っていました。
424 名前:デフォルトの名無しさん mailto:sage [04/04/15 22:32] >>423 ACL がでてないみたいなので一応書いておく。 CL-USER(1): (class-name (class-of (class-of #'make-instance))) ACLMOP:FUNCALLABLE-STANDARD-CLASS ACL 6.2 にて。
425 名前:デフォルトの名無しさん [04/04/17 19:19] scheme age
426 名前:デフォルトの名無しさん mailto:sage [04/04/18 12:35] xyzzyでLispをやり始めたんですが (- 1) はなぜ-1になるのでしょうか? 引数が一つの時は引数に-を付けて返す、というのが関数として定義されてるから という理解でいいのでしょうか?
427 名前:デフォルトの名無しさん mailto:sage [04/04/18 12:40] >引数が一つの時は引数に-を付けて返す、というのが関数として定義されてるから >という理解でいいのでしょうか? いいです。 Function `-' www.lispworks.com/reference/HyperSpec/Body/f__.htm > If only one number is supplied, the negation of that number is returned.
428 名前:デフォルトの名無しさん mailto:sage [04/04/18 12:54] >>427 関数定義されてるから、という理解でよかったみたいですね。 どうもでした。
429 名前:デフォルトの名無しさん mailto:sage [04/04/18 13:01] (*) は1 (+) は0
430 名前:デフォルトの名無しさん mailto:sage [04/04/18 13:10] >>428 -を付けて返すと、the negation of that number is returned は全然違うぞ
431 名前:デフォルトの名無しさん mailto:sage [04/04/18 13:13] 428さんじゃないけど、具体的に結果が違ってくる例みたいなものを教えていただけますか?
432 名前:428 mailto:sage [04/04/18 13:21] >>430 その数の否定を返す→正負反転して返す、という理解ではどうしてダメなんでしょうか?
433 名前:デフォルトの名無しさん mailto:sage [04/04/18 17:29] negateは正負反転の意味で普通に使われてるし、 the negation of taht number は正負反転した数のこと。 negative numberというぐらいだから、負は正の「反対」だと 自然に思っているのだろうね。
434 名前:デフォルトの名無しさん mailto:sage [04/04/18 19:07] >>432 「-を付けて返す」と「正負反転して返す」は全然違うぞ
435 名前:デフォルトの名無しさん mailto:sage [04/04/18 19:40] だから馬鹿みたいに違う違うって言わずに431が言ってるみたいに例をもってくるとか 何が、どう違うかいいなよ。
436 名前:デフォルトの名無しさん mailto:sage [04/04/19 00:26] つまり430=434がこれから始めたい事とは、 「-を付けて返す」という言い回しに対しての、 無益な重箱の隅を突く日本語講釈ですか? (最近、関数型関連スレはこの手の変な人が増えて悲しいですね。) ところで、 (- -1) この式は何が返ると思いますか?
437 名前:デフォルトの名無しさん mailto:sage [04/04/19 07:02] -を90度回転させてから前につけて +1
438 名前:デフォルトの名無しさん mailto:sage [04/04/19 08:20] 予想1:絶対値の符号反転したもの。 (- -1) => -1 予想2:文字通り (- -1) => "--1"
439 名前:デフォルトの名無しさん mailto:sage [04/04/19 08:43] >(- -1) >この式は何が返ると思いますか? >予想2:文字通り (- -1) => "--1" 字面レベルでの議論だとは気がつきませんでした。 複素数の場合かなとも想像していました。
440 名前:デフォルトの名無しさん mailto:sage [04/04/19 11:43] (- -1) => (^_^) ('A`) => (-_-) (゚д゚) => (゚∀゚) (* ゚▽゚) => ゚▽゚
441 名前:デフォルトの名無しさん mailto:sage [04/04/19 21:25] バッククォートって、list や cons で書いたのと等価じゃないんですか? なんだか処理系によって値が違うんですが。 (defun bq (x) `(,x nil)) (defun ls (x) (list x nil)) (let ((l nil) (m nil)) (push (bq 1) l) (push (bq 2) l) (push (bq 3) l) (rplaca (cdar l) t) (print l) (push (ls 1) m) (push (ls 2) m) (push (ls 3) m) (rplaca (cdar m) t) (print m)) を評価すると、clisp では ((3 T) (2 NIL) (1 NIL)) ((3 T) (2 NIL) (1 NIL)) となるんですが、CMUCLでは ((3 T) (2 T) (1 T)) ((3 T) (2 NIL) (1 NIL)) と異なる結果になるんです。言語仕様上どっちが正しいんでしょうか?
442 名前:デフォルトの名無しさん mailto:sage [04/04/20 03:50] >>441 このへんかな Once again, it is emphasized that an implementation is free to interpret a backquoted form as any form that, when evaluated, will produce a result that is equal to the result implied by the above definition. In particular, no guarantees are made as to whether the constructed copy of the template will or will not share list structure with the template itself. cltl2 22.1.3. Macro Characters
443 名前:デフォルトの名無しさん mailto:sage [04/04/20 08:05] Common Lisp Hyperspec 2.4.6 Backquote www.lispworks.com/reference/HyperSpec/Body/02_df.htm によると、`(,x nil) = (append (list x) (list 'nil)) = (list x nil) となり、さらに、side-effectについて、 >An implementation is free to interpret a backquoted form F1 as any form F2 that, >when evaluated, will produce a result that is the same under equal as the result >implied by the above definition, provided that the side-effect behavior of >the substitute form F2 is also consistent with the description given above. になるから、cmuclは間違いの気がする。 ... share list structure ... のくだりは、backquoted formからreaderが作るform自体が templateと相似構造なformである必要はないと言っているのであって、template自体を構成する consを共有して使いまわしていいと言っているわけではないと思う。
444 名前:デフォルトの名無しさん mailto:sage [04/04/20 10:33] バッククォートの解釈は、結果が(equalの意味で)等しければ実装は自由。 `(,x nil) は次の何れにも解釈できる。 (append (list x) (list 'nil) 'nil) (append (list x) (list 'nil)) (append (list x) '(nil)) (cons x '(nil)) (cons x (list 'nil)) ... etc したがって、規格ではどちらも正しい。 side-effectはこの場合関係ない。
445 名前:443 mailto:sage [04/04/20 11:32] >>444 了解。規格の例をもっと読むべきでした。 最初は、俺もquoteの一種だから変更するべきじゃないと、 正しく解釈していたんですが規格を誤読して解釈を変えてしまいました。 書き直さなきゃならないコードがあるな。ありがとう。 この場合、cmuclは以下のような事をやって、consしないようにしていると いうわけね。 (let ((list (list nil nil))) (defun bq (x) (setf (car list) x) list))
446 名前:デフォルトの名無しさん mailto:sage [04/04/20 12:24] >この場合、cmuclは以下のような事をやって、consしないようにしていると >いうわけね。 例が間違っていました。忘れてください。
447 名前:441 mailto:sage [04/04/20 12:56] トップレベルのリストも全て cons とは限らないというわけですね。 (defun bq1 (x) `(,x 1 2)) (defun bq2 (x) `(,x 1 2 ,x)) (let ((l nil) (m nil)) (push (bq1 0) l) (push (bq1 0) l) (rplaca (cdar l) 3) (print l) (push (bq2 0) m) (push (bq2 0) m) (rplaca (cdar m) 3) (print m)) を CMUCL で評価したら ((0 3 2) (0 3 2)) ((0 3 2 0) (0 1 2 0)) となりました。リストの末尾に定数リストが来ていると使い回されるようです。
448 名前:デフォルトの名無しさん mailto:sage [04/04/20 14:03] >リストの末尾に定数リストが来ていると使い回されるようです。 そうみたいですね。それで、その分、consする回数が減ってリソースの節約になり、 それは規格で許された動作であると。
449 名前:デフォルトの名無しさん mailto:sage [04/04/20 14:09] 一応貼っておく。Emacs Common Lisp。 www.lisp.se/emacs-cl/
450 名前:デフォルトの名無しさん mailto:sage [04/04/22 14:04] 外国でxyzzyのこと知っている人は、どれくらいいるのだろう?
451 名前:デフォルトの名無しさん mailto:sage [04/04/22 15:34] とりあえずぐぐってみてはどうか。
452 名前:デフォルトの名無しさん mailto:sage [04/04/22 18:08] Windows マインスウィーパーの隠しコマンドが xyzzy なんだけどなんか関連ってあんの?
453 名前:デフォルトの名無しさん mailto:sage [04/04/22 19:14] とりあえずぐぐってみてはどうか。
454 名前:デフォルトの名無しさん mailto:sage [04/04/23 07:34] foo bar
455 名前:デフォルトの名無しさん mailto:sage [04/04/23 07:41] >>452 魔法の呪文として「xyzzy」を使うことがあるみたい。出典知っている人いる? >>451 >とりあえずぐぐってみてはどうか。 googleで調べてみたけど、結果を絞りきれなかった。Emacs系エディタリストには記載が あったけど、情報は名前だけ。Common Lispのサブセットを搭載しているという情報はなし。
456 名前:デフォルトの名無しさん mailto:sage [04/04/23 16:55] ADVENT(初期のコンピュータゲーム)の魔法が出典。 Jargon Fileの ttp://www.catb.org/~esr/jargon/html/X/xyzzy.html を参照。
457 名前:デフォルトの名無しさん mailto:sage [04/04/26 16:31] すんません、cmucl19のソースを入手するにはどうしたらいいんですか? cmucl web siteの指示どおりanonymous cvsで入手しようとすると、 /home/anoncvs/CVS-cmucl: no such repository と言われて失敗します。
458 名前:デフォルトの名無しさん mailto:sage [04/04/27 01:05] >>457 hxxp://common-lisp.net
459 名前:デフォルトの名無しさん mailto:sage [04/04/27 11:08] >>458 ありがとう、入手できました。 linuxのfirefoxでcommon-lisp.netを表示すると、トップページの横一列になった項目に 打ち消し線がかかっているように見えるので、ずっと、改装中なのかと思っていたよ。 たぶん、単なる下線の表示がおかしくなっているのね。
460 名前:デフォルトの名無しさん mailto:sage [04/04/27 13:41] stklosとstkはwindows98でも使えますか?
461 名前:デフォルトの名無しさん mailto:sage [04/04/27 16:36] >>460 STk は動くはず。stklos は Windows はダメなはず。
462 名前:マグデジニウム偏角線 mailto:質問age [04/04/28 18:22] schemeの継続についての質問です。 処理系はgaucheを使っています。 (begin (call/cc (lambda (x) (set! cont1 x)))(display "山崎13\n")) でcont1に代入される継続と、 (call/cc (lambda (x) (set! cont2 x)))(display "山崎13\n") でcont2に代入される継続が違うのは何故ですか? cont2には、 「(display "山崎13\n")を評価する」 と云う継続が代入されるのではないかと思ったのですが、なぜそうではないのでしょうか?
463 名前:デフォルトの名無しさん mailto:sage [04/04/28 18:38] トップレベルまでだから。
464 名前:462 mailto:sage [04/04/28 19:40] >>463 そういう解釈で良いのですね、 ありがとうございました。
465 名前:デフォルトの名無しさん mailto:sage [04/05/02 20:44] www.asahi-net.or.jp/~ia7k-ismr/lisp_contents/ansi_commonlisp_a2.txt 暇に飽かせてANSI CommonLispの解答っぽいものを作ってみました。 誤り、勘違いなどあったら教えて頂けるとありがたいです。
466 名前:デフォルトの名無しさん mailto:sage [04/05/03 09:34] >>465 あんたは、えらいっ!
467 名前:デフォルトの名無しさん mailto:sage [04/05/03 09:37] atom: a list: (a b c) tree: (a (b) ((c)))) graph: #1=(a #2=(b . #1#) . #2#) graphのもっとよい表記法を希望します。
468 名前:デフォルトの名無しさん mailto:sage [04/05/03 18:59] ttp://www.geocities.co.jp/SiliconValley-Cupertino/6957/bibliography.ja.html Scheamて。 それにDrShcemaとはなんや? >私が読んで良かったなー、と思っている本を紹介します。 ほんとに読んだのか? ・・・まあそれはともかく、 紙媒体の参考資料集としては使えるかも。
469 名前:デフォルトの名無しさん mailto:sage [04/05/03 19:31] >C++を使うために絶対読まなければならない本 11冊は多すぎ。一冊読めば使えるだろ。しかもC++を使う⇒=Windowsユーザと勘違いしてるし、 他の項目も同様。
470 名前:デフォルトの名無しさん mailto:sage [04/05/03 20:37] 誰?
471 名前:デフォルトの名無しさん mailto:sage [04/05/03 21:17] 俺だよ俺!
472 名前:デフォルトの名無しさん [04/05/04 14:40] schemeで循環参照を印字する方法って規定されてるのでしょうか。 (define x (cons 'x 'x)) (set-car! x x) (set-cdr! x x) x ==> ???
473 名前:デフォルトの名無しさん mailto:sage [04/05/04 17:29] srfi-38のwrite/ss (write-with-shared-strcture) srfi.schemers.org/srfi-38/srfi-38.html x => #0=(#0# . #0#)
474 名前:デフォルトの名無しさん [04/05/05 20:50] schemeの局所関数について質問です. (define (f x) (define (g x) (* x x)) (g (* x x))) とした場合gはfの定義時に定義されるのでしょうか, それとも実行時でしょうか. もし実行時だとすると次の式と等価なのでしょうか. (define (f x) (let ((g (lambda (x) (* x x)))) (g (* x x))))
475 名前:デフォルトの名無しさん mailto:sage [04/05/05 22:58] letではなくletrecだろ? (define (f x) (letrec ((g (lambda (x) (* x x)))) (g (* x x))))
476 名前:デフォルトの名無しさん mailto:sage [04/05/05 23:39] >>475 let でいい
477 名前:デフォルトの名無しさん mailto:sage [04/05/06 00:24] >>476 この場合は、だろ
478 名前:デフォルトの名無しさん mailto:sage [04/05/06 00:48] >475 に賛成. ; (define (f x) ; (let ((g (lambda (x) (* x x)))) ; (g (* x x)))) は (define f (lambda (x) ((lambda (g) (g (* x x))) (lambda (x) (* x x))))) と等価だからこのgは定義されてるとはいえない. 例えば, (define (f x) (define (g x) (if (= x 0) 0 (+ x (g (- x 1))))) (g (* x x))) か (define (f x) (let ((g (lambda (x) (if (= x 0) 0 (+ x (g (- x 1))))))) (g (* x x)))) かのどちらをとるかで (let ((g (lambda (x) x))) (f 3)) を評価した結果が違う.
479 名前:デフォルトの名無しさん mailto:sage [04/05/06 00:58] >>476 は当然この場合の話をしているのだと思うが。 そんなことより、質問の答えが知りたい。
480 名前:デフォルトの名無しさん mailto:sage [04/05/06 01:20] 答えは等価。でも質問の前提の実行時とか定義時という 考え方がおかしい。定義は実行されない。
481 名前:479 != 474 mailto:sage [04/05/06 01:49] >>480 (define (f x) .. (define (g x) .. だと、fが定義されるときにgも定義されそうだが、 (define (f x) .. (let ((g .. だと、gに値が束縛されるのは実行時ではないか、 ということだと思うが、結局何が違うのかは俺にはよくわからん...
482 名前:デフォルトの名無しさん mailto:sage [04/05/06 02:38] (define (f x) (define (g x) (+ 1 x)) (set! g (let ((g g)) (lambda (x) (+ 1 (g x))))) (g x)) こんなんだったら違いがでるんじゃない?
483 名前:デフォルトの名無しさん mailto:sage [04/05/07 14:03] パフォーマンスを意識したプログラミング Programming as if Performance Mattered www.dadgum.com/james/performance.html
484 名前:デフォルトの名無しさん [04/05/07 21:10] >>473 ありがとうございます。 SRFIにあったとは気づきませんでした。 英語読まないとだめですね・・・。
485 名前:デフォルトの名無しさん mailto:sage [04/05/08 09:09] >>481 トップレベルのdefineとinternal defineは、字面は同じ "define"だけど、全然別物だよ。 前者はトップレベルの束縛を定義するもの。後者はレキシカル 変数の束縛を定義するシンタックスシュガーでletrecと同じ。
486 名前:デフォルトの名無しさん mailto:sage [04/05/08 16:01] >>485 それで納得。CommonLispのdefunとは違うんだね。 >>484 Schemeで、REPループがwrite/ssを使うように指示するにはどうすんのかな。 CommonLispなら変数*print-circle*をtrueに設定すればいいのだけれど。
487 名前:474 mailto:sage [04/05/08 21:36] みなさん回答ありがとうございました. 局所関数定義(internal define)とletrecが等価だということは, パフォーマンスが要求される部分では局所関数定義を避けた方がいいということですよね. (define (f x) (define (g x) (* x x)) (g (* x x))) ↑は↓こうした方が速い (define (f x) (f-g (* x x))) (define (f-g) (* x x))
488 名前:デフォルトの名無しさん mailto:sage [04/05/08 22:40] >>487 そんなのは処理系依存 多少賢い処理系ならどっちもパフォーマンス的には同じかと さらに賢く最適化をする処理系なら前者の方が良くなるはず
489 名前:デフォルトの名無しさん mailto:sage [04/05/09 04:08] >>487 Internal defineが毎回コンパイルされると思ってるみたいだが、 そんなペナルティはない。evalじゃないんだから。安心して使え。
490 名前:474 mailto:sage [04/05/09 08:03] >>488-489 純粋に言語仕様だけを見れば,gのinternal defineの定義はfの実行時に毎回行われますよね. でもそれなりの処理系を使っている限り,最適化してくれるので意識する必要はないということかな. 最適化というのは>>487 のような変換を処理系が自動でやってくれるということでしょうか.
491 名前:デフォルトの名無しさん mailto:sage [04/05/09 15:05] >>490 > 純粋に言語仕様だけを見れば どこにそんな仕様が? > 最適化というのは>>487 のような変換を処理系が自動でやってくれるということでしょうか. 違う 後者の場合、f のコンパイル時には f-g は再定義される可能性があるため特定できないが、 前者の場合、f のコンパイル時には g が再定義される可能性は無いため (g (* x x) をインライン展開できる。
492 名前:デフォルトの名無しさん mailto:sage [04/05/09 15:51] >>490 > 純粋に言語仕様だけを見れば,gのinternal defineの定義はfの実行時に毎回行われますよね. 確かに、インタープリタの場合、あなたの言う通りに遅くなる処理系が 存在する可能性もあるけど、そのレベルの事を心配して、コーディングを変える必要は ないことが多いのでは。
493 名前:474 mailto:sage [04/05/09 22:41] >>491-492 ありがとうございます. なるほど,インライン展開ですか.考えていませんでした… 中身をある程度知っていないと効率的にしようと思った対策が 逆効果ってことはよくありますよねぇ.
494 名前:デフォルトの名無しさん mailto:sage [04/05/10 01:43] 効率なんてのはSchemeをもっと理解してから考えろよ。 外したレスなんでアドバイスに困る。
495 名前:デフォルトの名無しさん mailto:sage [04/05/11 07:43] インライン展開は抜きにしても、 「gのinternal defineの定義はfの実行時に毎回行われますよね」 と書いている時点でclosureというものを激しく誤解している予感。 最も単純な(最適化しない)実装でも、closure g作成のコストは f実行一回あたりcons一個分。
496 名前:デフォルトの名無しさん mailto:sage [04/05/11 08:28] >>495 closure g作成のイメージは、 (define g (list 'closure '(lambda (x) (* x x)) current-lexical-environment)) みたいな感じでいいのかな。
497 名前:デフォルトの名無しさん mailto:sage [04/05/12 01:30] 変数xというのを残してもいいけど、それだと毎回 環境からxを探すコストがかかってしまう。 レキシカルスコープでは毎回同じxが発見される ことになるんだから、ローカルにバインドされた 識別子はコンパイル時に参照に置き換えられるのが普通。 実行時には、レキシカル変数はもはやシンボルや identifierではなく、名前のわからない、ただの参照になってる。
498 名前:デフォルトの名無しさん mailto:sage [04/05/13 12:33] guileを検索したら↓がpageRankの上位にあったのだが、、 www.guile.jp
499 名前:デフォルトの名無しさん [04/05/13 20:53] ガイルがいる
500 名前:デフォルトの名無しさん [04/05/13 20:57] 【誰でもできる47氏支援運動!】 【以下の文章を、各種掲示板にコピペして47氏を救おう!】 すみません、貴サイトには直接は関係のない話題ですが、 広くネットに携わるものとして、いや、日本国民として、真剣に考えるべき事案であると考え、あえて宣伝させていただきます。 管理者様、もし、不適切とお感じならば、どうぞ削除なさってください。 先日、著作権違反の幇助との名目で、ファイル交換ソフトwinnyの製作者で、東京大学助手の金子勇氏(通称47氏)が逮捕されました。 しかし、winnyそれ自体は、違法なファイルの流通だけでなく、合法なファイルの流通も可能なものであり、著作権を違反するか否かは、ソフトの作成者ではなく、ソフトの使用者に、その責任がゆだねられるべき問題であります。 さきに、winnyを使用して、著作権違反で逮捕された二人のユーザーは、47氏と何らつながりのない人間であり、「幇助」の理由を付して逮捕するには、あまりにも無理があります。 以上の観点から、私たちは、Winny開発者、47氏に対する不当逮捕に強く抗議します!! 京都府警は、逮捕の理由として、「『著作権法への挑発的態度』が逮捕理由」に挙げたと、報道されています。この報道が真実であるとすれば、これは思想信条の自由の侵害であり、「思想犯」として不当逮捕したものと断ぜざるを得ません!! これはもはや著作権の問題ではなく人権問題です!!皆様のご協力をお願いいたします。 詳しくは、下記ページをご覧下さい! Winny開発者 47氏を救う為に 77483.org/47/ ネットワークの自由防衛同盟 www.netfreedom.tk/ プログラマ仲間の新井氏が設置したblog(47氏支援運動など) www.moodindigo.org/blog/archives/cat_kaneko.html?page=%B6%E2%BB%D2%CD%A6%BB%E1%BB%D9%B1%E7 また、本運動に賛同される方、お知り合いの掲示板などに、本文章を掲示していただけると幸いです。
501 名前:デフォルトの名無しさん mailto:sage [04/05/14 19:04] Scheme美しすぎ
502 名前:デフォルトの名無しさん mailto:sage [04/05/14 20:34] Scheme かわいいよ Scheme
503 名前:デフォルトの名無しさん mailto:sage [04/05/16 16:33] "on lisp"の翻訳は最近すすんでるの?
504 名前:デフォルトの名無しさん mailto:sage [04/05/19 02:44] ごめんなさい、すすめますた
505 名前:デフォルトの名無しさん mailto:sage [04/05/19 07:41] いや、催促じゃなくて、応援しているよってことね。
506 名前:デフォルトの名無しさん mailto:sage [04/05/19 07:57] 普通に読めば催促だわな
507 名前:デフォルトの名無しさん mailto:sage [04/05/19 08:08] そりゃ、考えすぎ。普通に読めば、現状を聞いているだけ。
508 名前:デフォルトの名無しさん mailto:sage [04/05/19 08:12] 字面だけをみれば聞いてるだけ だが、普通に読めば催促にしか読めないだろう。
509 名前:デフォルトの名無しさん mailto:sage [04/05/19 08:22] おっ、雑談か。「普通」ね。 まず、尋ねている人が翻訳版「On Lisp」の読者かどうかさえ、分からないでしょう? それに、翻訳者に向けて書いたのかさえ分からないし。自分でチェックするのが 面倒だから、誰かに聞いたとか。 あんまり自分の「普通」を信用しすぎないほうがいいよ。
510 名前:デフォルトの名無しさん mailto:sage [04/05/19 08:35] みんなが「普通」に「普通」と言う言葉を使っているから俺も「普通」と言ってみただけだよ 509を発言したのが507だったら笑い話にしかならないけど。
511 名前:デフォルトの名無しさん mailto:sage [04/05/19 08:42] 509=507が、 「みんなが「普通」に「普通」と言う言葉を使っているから俺も"揶揄をこめて"「普通」と言ってみただけだよ」 と言ったら?
512 名前:デフォルトの名無しさん mailto:sage [04/05/19 09:11] それならわざわざ「普通」議論を持ち出す意味が無いな。
513 名前:デフォルトの名無しさん mailto:sage [04/05/19 09:19] その程度か、君はもっと出来る人のはずだ。 507のような意見を「普通」と考える人もいる。 また、507は出来るだけ「字面」のみで判断しようとしている点で、 できるだけ広い「普通」をカバーしようとしている。 「ことほどさように"普通"には同じ日本語を使う者の中でも差異がある」と 509は"普通"議論をもちだしたのではないの? 506が「"俺"には催促に聞こえるな」と言っていれば"普通"の意見だろうけどな。
514 名前:デフォルトの名無しさん mailto:sage [04/05/19 09:24] 雑談うぜえ。
515 名前:デフォルトの名無しさん mailto:sage [04/05/19 09:27] いくら広い「普通」をカバーしようとしたところで 裏づけが無ければその「普通」は507の中での「普通」でしかないわけで 507自身が509の発言をするのは結局のところ自分の中の「普通」を 棚に上げた都合のいい「普通」感の押し付けでしかないということだ。
516 名前:デフォルトの名無しさん mailto:sage [04/05/19 11:28] lisp> (eq '俺:普通 'みんな:普通) nil lisp> (in-package :俺) #<The 俺 package> lisp> (use-package :みんな) Error: Using package `みんな' results in name conflicts for these symbols: 普通 [condition type: package-error]
517 名前:デフォルトの名無しさん [04/05/19 13:14] 普通の奴らの上を行けよ、おまいら。
518 名前:デフォルトの名無しさん mailto:sage [04/05/19 13:32] これからは、「CommonLisp」を「普通のLisp」と呼ぶことを推奨します。
519 名前:デフォルトの名無しさん mailto:sage [04/05/19 17:47] jp.franz.com/base/seminar-2004-06-10.html
520 名前:デフォルトの名無しさん mailto:sage [04/05/19 18:09] >>519 けっこう、おもしろそうだ。つーか、まとまった資料を読みたく思う。
521 名前:デフォルトの名無しさん mailto:sage [04/05/19 19:17] 行きたかったけど、平日か・・・ 誰か実況たのむ
522 名前:189=312 mailto:sage [04/05/19 20:19] ようやく和田研フォントキットの Common Lisp への移植ができました。 cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/efont/wadalab-fontkit/ >>191 さんに助けていただかなければ絶対あきらめていました。ありがとう ございます。 >>519 のセミナーに行かれる方がいらっしゃいましたら、>>189 が感謝して いたと和田先生にお伝えいただければ望外の喜びです。
523 名前:デフォルトの名無しさん mailto:sage [04/05/20 07:42] >>519 >ACL7.0の新しい正規表現ライブラリ 講演者: 川合史朗 Shiroさんはgaucheの開発をしながら、こんなライブラリを書いているのか。すごいね。 Edi WeitzさんのCL-PPCREとの比較レビューを読みたいな。 ACL Trial Editionはまだ6.2か。
524 名前:デフォルトの名無しさん mailto:sage [04/05/20 21:29] >>523 あと Kahua もやってるでしょ
525 名前:デフォルトの名無しさん mailto:sage [04/05/21 09:31] Common Lisp から RDB を利用した∈ですが,何か良い フリーのライブラリってありますか? ACLだとあるみたいですが,フリーはなかなか見つからない・・・
526 名前:デフォルトの名無しさん mailto:sage [04/05/21 11:04] CLSQL, Uncommon SQLとかかな。
527 名前:525 mailto:sage [04/05/21 12:35] >>526 ふたつもあるんですね. とりあえず Uncommon SQL のほうから試してみようと思います ありがとうございました
528 名前:デフォルトの名無しさん mailto:sage [04/05/21 13:55] shiroは有名だか、折れ的には新山を応援したい所だ。なんつーかアホの新山の ページ見ていると同じ人種だなっていうか、哲学とか高度な話題をさりげなく 振ってしまう高学歴lisperの中でもヒトキワ庶民派って言うか、アホな記事を 読んでいたりすると、(例えばメリケンは飯の味はわからねぇと文句タレる新山) Oh,Pretty!なんて感じたり。ヒヒヒッ。 同じ穴のムジナっていうかにほいがするんだよね。っーつわけで新山センセもがんばって メリケンのように弾けまくっってください。
529 名前:デフォルトの名無しさん mailto:sage [04/05/21 15:28] シソヤマは自意識つよすぎで恐いよ。
530 名前:デフォルトの名無しさん mailto:sage [04/05/21 17:54] lisperじゃなくてpythonerだと思うけどな。 最新のアホ GtkYes www.unixuser.org/~euske/silly/gtkyes/ の 無意味さにはワラタ (ダイアログ全てにビシバシ [Yes] を押してくれる ランチャーのような単なる実用プログラムを彼が作るはずがない)。
531 名前:デフォルトの名無しさん mailto:sage [04/05/22 15:15] ブサイクフィルターとか美人フィルターというネタもあるが、アレは新山じゃ なかったか。 新山ネタをフりつつ真面目な話をして恐縮なのでありますが、Symbolicsのマシン を知って思ったのです。lispでレンダリング(行列計算や座標計算)までやって いるのだろうか?と。例えばcのmallocのようなヒープの確保をするような場面 ってあるじゃないですか。ピットマップを操作する場合などですが、その場合 lispではどのように処理しているのだろう?と疑問に思ったのです。 GIMPのスクリプトもscheme系らしいですが、Cやfortranならば配列とかmalloc である程度のメモリーを確保してそのメモリーへの各種操作という形になります よね。lispだとリスト処理や記号処理のイメージが強くてどうしてもSymbolicsの ようなCGのビットマップ操作や座標変換、行列の計算のイメージが全く頭に浮かばない のですが、詳しい人この辺りの話しりませんか?
532 名前:デフォルトの名無しさん mailto:sage [04/05/22 15:59] 組み込みでそういう操作を入れればいい。
533 名前:デフォルトの名無しさん mailto:sage [04/05/22 16:07] Symbolicsは知らないけど、Common Lispには配列型やベクタ型が用意されていて、 bit-vector型なんてのもあるから、ビットマップ操作は普通にできる気がします。 行列型はないけど、多次元配列は使えるので、行列の操作関数群もだれかがすでに 書いて公開している気がします。
534 名前:デフォルトの名無しさん mailto:sage [04/05/22 18:48] Symbolicsは使ったことないけど。 optimizeでspeed最高、safety最低にしてちゃんと型宣言すれば、 simple-vectorやbit-vectorのアクセスはCで配列使った場合と 変わらないよ。そのかわり配列の境界チェックや型のチェックは プログラマの責任になるけどね。
535 名前:デフォルトの名無しさん mailto:sage [04/05/23 10:52] 現在でも、Lisperに渡したら、ハマるような代物かなSymbolicsは? そのくらい、プログラム開発システムとして完成度が高い? それともWindowsとVisual Studioなんかと比べたら見劣りする? 経験者の人、いねーかな。
536 名前:デフォルトの名無しさん mailto:sage [04/05/23 14:39] ILC2003に居合わせた人達が言うには商業的に失敗しただけで現存するどの処理系も あのレベルに到達できていないらしい。本当かどうかは知らんけど。 アレをオープンソース(システム?)として公開しようとかいう動きもどっかにあったような。
537 名前:デフォルトの名無しさん mailto:sage [04/05/23 19:37] 配列でつか。いやてっきりコンスセルを2Mbyteほど確保してハイリツとしたりするかと 思ってしまいました。何らかのツリー型データベースも一旦ファイルからリストへロードして などするのかと。 もう一つ聞きたい事があるのですが、Lisperの人たちは手続き型プログラミング で言うところのフローチャートのような図は書いたりしないのですか? オブジェクト指向となるとUMLなどありますし、Lispだとどんな図を日常的に 書いているんでしょう?リストか?、再帰のツリーかな? Symbolicsの画面キャプチャにはそれっぽい図も見かけたりしますが。(class継承の ずのようなもの) >ILC2003に居合わせた人達が言うには商業的に失敗しただけで現存するどの処理系も >あのレベルに到達できていないらしい。本当かどうかは知らんけど。 という事は、現物を触った人はここには誰も以内と? 昔の第五世代コンピュータプロジェクト辺りでLispマシンを研究していたと 言うような話を聞いた事があるんですが、サイ(psy)のあれは推論マシンだしたか?
538 名前:デフォルトの名無しさん mailto:sage [04/05/23 20:19] よくわからんが www.pfu.co.jp/hhkeyboard/kb_collection/images/symbolics.gif このキーボードは使いやすそう
539 名前:デフォルトの名無しさん mailto:sage [04/05/23 20:26] >>538 使った人によればAの隣のRUBOUTは一度慣れると病みつき だそうです。 オレの代の頃にはハードがいかれてたんでほとんど置物と 化していて残念だった記憶が。いじり倒してみたかった...
540 名前:デフォルトの名無しさん [04/05/23 20:39] UNIXの仕事だけではないのでファンクションとWindowsキーはないと困る
541 名前:デフォルトの名無しさん mailto:sage [04/05/24 05:49] >>537 もしかして、Lisperはリストしか使わないとか思ってた? 自分でコード書くときに図を書くことってほとんどないな。 コードが大きくなりそうな時に全体の構成をコメント中にメモったりはするけど。 他人のコードを読む時には、Allegro Composerだと関数の呼び出し関係や クラス階層をグラフ表示してくれるんでたまに使うかな。
542 名前:デフォルトの名無しさん mailto:sage [04/05/24 21:41] >>531 それは hirax.net の人かと。 shibuya.pm.org/blosxom/techtalks/bkcon_reviews.html で最近講演してますね。
543 名前:デフォルトの名無しさん [04/05/24 22:57] cygwin-1.5.5 に scm-5d9 インストールしたのですが、 バックスペースでプロンプト文字 "<" を超えて 行頭までカーソル移動してしまいます。 動作は問題ないのですが何かと不便で困っています。 何かお気づきの点がありましたらお願いします。
544 名前:デフォルトの名無しさん mailto:sage [04/05/25 01:26] >>543 stty の設定か何かで、改行コードが CR+LF (Carriage Return + Line Feed) に なってるからでは? 勘違いだったらスマソ。
545 名前:537 mailto:sage [04/05/25 18:15] チンボリクスの神がコノスレに降臨しますやうに(・∀・)ニヤニヤ
546 名前:デフォルトの名無しさん mailto:sage [04/05/25 22:33] Interlisp-Dがフリーでダウソできるみたい。 ttp://www.sra.co.jp/smalltalk/SML/archives/2004-May/006503.html
547 名前:デフォルトの名無しさん mailto:sage [04/05/25 23:14] user.ecc.u-tokyo.ac.jp/~g340299/ flatline氏の日本語訳『on Lisp』、第20章「継続」の説明がすばらしい。 いろいろ読んだけど、これほどすっきりと理解できたことは無かった。 ありがとうございます。 ところで、pdf版の図109(P148)、TeX のタグが残ってしまっているようです。 ご報告まで。
548 名前:543 [04/05/25 23:15] >544 氏 今色々キータイプしてみたら Ctrl + BS で バックスペースが出来て,プロンプト文字 "<" でブロックされました。 何か分かりますでしょうか?
549 名前:デフォルトの名無しさん mailto:sage [04/06/06 10:08] 新山氏のサイトに、かなりショッキングな文章が登場。 tabesugi.net/memo/2004/61.html > 新山は、汎用プログラミング言語としての Lisp (Scheme) はもう信用していない。 > だって、現在のたいていのアプリケーションで大変なのはデータ構造の設計と > 入出力の扱いで、そういう部分はふつう圧倒的に手続きだらけなんだもん。 …(略)… > いまでは自然言語処理っつうと、ほとんどが「どーやって大量のデータを収集・ > 変換・学習・適用するか」につきているので、これはおそろしく手続き的な操作で、 > Scheme なんか使ったらほとんど begin と let* だらけになる。 新山氏が以前言っていた tabesugi.net/memo/2003/92.html > だいたい新山はもともとストイックな Scheme が好きだったのだが、あまりに > 実用的でないから Python に「逃げてきた」のである。 って、そういうことだったのね。ライブラリの少なさの問題ではないのね。 ちなみに、COBOL の代わりにこそ Java ではなく LISP を、という主張もされていて、 (最初の引用元を参照)、こちらも非常に興味深い。
550 名前:デフォルトの名無しさん mailto:sage [04/06/06 16:31] beginとlet*使えばいいじゃん。
551 名前:デフォルトの名無しさん mailto:sage [04/06/06 16:37] ってか新山って誰?
552 名前:デフォルトの名無しさん mailto:sage [04/06/06 18:00] >「どーやって大量のデータを収集・変換・学習・適用するか」につきているので と > Scheme なんか使ったらほとんど begin と let* だらけになる に論理の飛躍を感じるのは漏れだけですか? ブブカもびっくりですよ。 『Schemeはプログラマを映す鏡』だなあと思う今日この頃、おまえら、いかがお過ごしですか。
553 名前:デフォルトの名無しさん mailto:sage [04/06/07 10:14] 日記なんだから論理は飛躍しても仕方ないと思うけど... >> 552 ところで「begin, let*を使うコードだらけになるじゃん」と言う主張は 新山さんが明らかに何か分かってないという証拠になるのかな? もしそうならどうしてそうなのか教えて欲しいなぁ。
554 名前:デフォルトの名無しさん [04/06/07 13:23] Interlisp-D試した人いないの?
555 名前:デフォルトの名無しさん mailto:sage [04/06/07 19:34] >>554 普通に動いたよ。ドキュメント読む暇が無いんで後回しになってるけど。
556 名前:デフォルトの名無しさん mailto:sage [04/06/07 22:06] >>554 squab.no-ip.com:8080/collab/76
557 名前:デフォルトの名無しさん mailto:sage [04/06/07 22:34] >>555-556 レスサンクス。試してみる。 古参Interlisperの話を聞いてみたいな…
558 名前:デフォルトの名無しさん mailto:sage [04/06/07 23:58] >>553 つまるところ、ストイックな Scheme で全てをやろうとすると、 begin や let* の嵐になるということではないか。言いかえれば、gosh などの 現実的(または妥協的)な Scheme 処理系を使ったことがないのかもしれない。 日記は良く読んでないので外してるかもしれんけど、新山氏は普段 Python を 使ってるらしいからね。 # ほら、Python ってライブラリが充実してるじゃん
559 名前:デフォルトの名無しさん mailto:sage [04/06/08 02:40] >>557 おれも聞いてみたい。どうしてもSymbolicsとかの統合環境への夢が捨てがたい。 いま良くあるような保護指向のOSのモデルと、統合環境指向のシステムを うまく統合させる方法ってないのかねぇ。
560 名前:デフォルトの名無しさん mailto:sage [04/06/08 21:04] >>558 たぶん、「ストイック」の意味が違うと思う。 変数をできるだけ使わず、関数のネストだけで コーディングするのがストイックなScheme流なんだと 思う。
561 名前:デフォルトの名無しさん mailto:sage [04/06/08 22:25] >>560 それは Scheme 限定というより、Lisp 族の一般的な慣習のような。 ああでも、elisp やってる人達はちょいと違う気もするけど。 まあどうでもいいか。
562 名前:デフォルトの名無しさん mailto:sage [04/06/08 23:56] なぜ人間の脳はオーバーロードしないのか。
563 名前:553 mailto:sage [04/06/09 00:21] >>560 に賛成。でも個人的には、関数型プログラミングの作法と手続き型の作法をまぜこぜに使えるのがLISPの強みの1つだとおもうので、新山さんの意見には賛同できないんだけど。
564 名前:デフォルトの名無しさん mailto:sage [04/06/09 00:26] ecl で thread 使えている方いらっしゃいますか? CVS の CHANGELOG には Linux で pthread サポートしている様に書いてありますけど。
565 名前:デフォルトの名無しさん [04/06/09 14:50] fibonacci 数列について質問です。 これを関数型の記述のまま、計算量を減らすことはできないでしょうか? まず、定義どおりに関数型で記述してみました。 (define (fib x) (if (< x 2) 1 (+ (fib (- x 1)) (fib (- x 2))))) これだと、定義がそのままコードになっていて、とてもわかりやすいのですが、 x の小さな項を何度も計算しなおすので、x が大きくなると計算量が膨れ 上がってしまいます。 Chez Scheme では x=35 ぐらいが限界でした。 手続き型で、小さい項をまず求めて、それをもとに大きな項を求めるように書くと、 計算量がはるかに少なくて済むのですが、わかりづらくなります。 定義がそのままコードになっている、関数型の記述とはだいぶ違います。 (define (fib2 n) (if (< n 2) 1 (do ((x1 1 (+ x1 x0)) (x0 1 x1) (m 2 (+ m 1))) ((<= n m) (+ x1 x0)))))
566 名前:デフォルトの名無しさん [04/06/09 14:51] 末尾再帰であらわしたコードも見かけましたが、わかりにくさでは似たようなものです。と言うか、これは手続き型のロジックを末尾再帰に無理に書き換えただけだと思います。 (define (fibo num) (let loop ((num num) (p2 1) (p1 1)) (cond ((= num 0) 1) ((= num 1) 1) ((= num 2) (+ p2 p1)) (else (loop (- num 1) (+ p2 p1) p2))))) もしかして、(よく知らない)遅延評価を使えばよいのかと思い、頭の悪いコードを 書いてみましたが、かえって遅くなるだけでした。 (define (fib3 x) (if (< x 2) 1 (+ (force (delay (fib3 (- x 1)))) (force (delay (fib3 (- x 2))))))) 遅延評価に関して、Shiro さんのところも見てみたのですが、 www.shiro.dreamhost.com/scheme/gauche/man/gauche-refj_86.html これも結局、手続き型と同じ、小さい項をまず計算して、徐々に大きい項を求めていく やり方でした。定義がそのままコードになるような書き方ではないと思います。 ということで、質問をもう一度まとめますと、 定義がそのままコードになるような書き方で、fibonacci 数列の一般項を求める関数の 計算量を減らすことはできないでしょうか? 以上です。どうかよろしくお願いいたします。
567 名前:デフォルトの名無しさん [04/06/09 15:07] memo関数使ったら? 一度計算した値をとっておくだけで、再帰的な「素直な」定義はそのまま。
568 名前:デフォルトの名無しさん [04/06/09 15:30] >>567 ありがとうございます。memo関数とは、これのことでしょうか?勉強してみます。 www.sampou.org/scheme/sicp/mailingList/msg00130.html それにしても、delay/force は、一度計算したものはキャッシュされるということでしたが、 それは、同一の約束オブジェクトに関する話なのですね。 (define (fib3 x) (if (< x 2) 1 (+ (force (delay (fib3 (- x 1)))) (force (delay (fib3 (- x 2))))))) において、 (fib3 1) が何回現れても、それは毎回、別の約束オブジェクトとみなされるから、 再計算するしかないのですね。まだまだ勉強が足りないなあ。
569 名前:(define (´∀`) 'マターリ) mailto:sage [04/06/09 19:52] (define (fib x) (define fib (let loop ((y 1) (lst '(1 1))) (if (>= y x) (lambda (x) (list-ref (reverse lst) x)) (loop (+ y 1) (cons (+ (car lst) (cadr lst)) lst))))) (if (< x 2) 1 (+ (fib (- x 1)) (fib (- x 2)))))
570 名前:デフォルトの名無しさん mailto:sage [04/06/09 20:22] >>566 > 末尾再帰に無理に書き換えた そうか?俺には自然に見える。 末尾再帰 = ループ という概念に慣れていないだけでは?
571 名前:デフォルトの名無しさん mailto:sage [04/06/09 22:58] www.iijlab.net/~ew/ptt.html の最後に載ってるfibがO(log n)でなかったかな
572 名前:デフォルトの名無しさん [04/06/10 03:09] >>569 面白いコードをありがとうございます。ただ、fibonacci 数列の定義をこのコードから 読み取るのは難しいと思います。 また、最後の2行は実質的に不要で、コードのわかりやすさに寄与していないのではないでしょうか? (define (fib x) (define fib (let loop ((y 1) (lst '(1 1))) (if (>= y x) (lambda (x) (list-ref (reverse lst) x)) (loop (+ y 1) (cons (+ (car lst) (cadr lst)) lst))))) (fib x)) と書いても結果は同じです。 >>570 すみません、私の言葉が正確でありませんでした。 手続き型の記述をループに書き換える方法としては、私も自然だと思います。 (実は、>>566 の関数 fibo は、既存のそのままのコードではなく、自分がわかりやすい ように書き直したものです。) ただ私は、もとの定義どおりの>>565 の関数 fib の方を末尾再帰にしたかったのです。 手続き型のロジックを元にしたため、定義から大きく違った形になっている、という意味で 「無理に」という言葉を使いました。 >>571 恥ずかしながら、このコードは私には難しいです。 慣れた人になら、このコードも関数型らしい「定義を書くだけでそれがそのままコードになる」 記述に読めるのでしょうか?
573 名前:デフォルトの名無しさん [04/06/10 03:11] 訂正。 ×自分がわかりやすいように書き直した、 ○自分にわかりやすいように、自分なりに書き直した
574 名前:デフォルトの名無しさん mailto:sage [04/06/10 03:37] 自分で末尾再帰にする言語を作れ。
575 名前:デフォルトの名無しさん mailto:sage [04/06/10 03:57] >>572 "関数型らしい「定義を書くだけでそれがそのままコードになる」" ってだれに聞いたのか知らないけど、幻想入り過ぎなのでは。
576 名前:デフォルトの名無しさん mailto:sage [04/06/10 04:21] >>565 計算機プログラムの構造と解釈 問題3.27 メモ化 問題1.19 対数的
577 名前:デフォルトの名無しさん mailto:sage [04/06/10 08:50] >>565 その書き方のまま、高度なキャッシングをするよう最適化するような処理系があったらうれしいな。 仕様としては、R*RSには入らないだろうけどSRFIになら入りそう。 でもこれは夢のような技術っぽい。
578 名前:デフォルトの名無しさん [04/06/10 11:08] Schemeは、どれをDLすればいいんだ?
579 名前:デフォルトの名無しさん [04/06/10 12:07] >>576 ありがとうございます。 mitpress.mit.edu/sicp/full-text/book/book-Z-H-22.html#%_sec_3.3.3 と www.geocities.co.jp/SiliconValley-PaloAlto/7043/index.html#memoize を参考にして、以下のコードを書いてみました。 (define (memoize proc) (let ((cache '())) (lambda args (let ((hit (assoc args cache))) (if hit (cdr hit) (let ((result (apply proc args))) (set! cache (cons (cons args result) cache)) result)))))) (define memo-fib (memoize (lambda (n) (if (< n 2) 1 (+ (memo-fib (- n 1)) (memo-fib (- n 2))))))) 大変うまくいきました。コードはほぼ定義どおりで、しかも (memo-fib 10000)でも 即時に演算が終わるようになりました。memoize って素晴らしいです。 数年前、Java で数値計算をしていて、再帰で書いたら同じ問題に遭遇して、仕方なく ループで書き直したことがあります。あのときに memoize を知っていたらなあ。 mitpress.mit.edu/sicp/full-text/book/book-Z-H-11.html#%_sec_1.2.4 は私には難しいので、時間をかけて考えてみます。 ということで皆さま、いろいろありがとうございました。
580 名前:デフォルトの名無しさん mailto:sage [04/06/10 18:05] >>578 www.sci.toyama-u.ac.jp/~iwao/Scheme/scheme.html ここに処理系のリンク先あり Windowsなら DrScheme あるいは Petite Chez Scheme + ChezEdit が簡単
581 名前:デフォルトの名無しさん mailto:sage [04/06/10 20:34] >>580 ありがとう DrSchemeを入れてみました。 40Mってのには驚きましたよ。
582 名前:デフォルトの名無しさん [04/06/10 23:26] 今日のセミナーに参加した人いる? 午前中は完全に雑談だった。せっかく早起きしたのにちょっと鬱。 明日に期待しよう。
583 名前:デフォルトの名無しさん mailto:sage [04/06/11 00:22] >>582 まあそう言うな、生CEO や生和田先生や生Shiroさんが見れただけでもオレは満足だ もっとちゃんと時間をとって役に立つ話をやって欲しいとは思ったけど
584 名前:デフォルトの名無しさん mailto:sage [04/06/11 07:17] >>582 , 583 漏れ行きたくても行けない地方在住者。 レポートキボンヌ!キボンヌ!
585 名前:デフォルトの名無しさん mailto:sage [04/06/11 09:17] www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi?Seminar%3aCommonLisp
586 名前:デフォルトの名無しさん mailto:sage [04/06/11 23:12] CL-USER(2): (require :regexp2) ; Fast loading /opt/franz/acl70b/code/regexp2.fasl ;;; Installing regexp2 patch, version 0 ; yacc constructing #<GRAMMAR-CLASS REGEXP> ... ; Finished T CL-USER(3): regexp2キター
587 名前:デフォルトの名無しさん [04/06/12 01:07] これからはJavaよりもLispだと確信しました。 しかしACLの値段は高いのお…
588 名前:デフォルトの名無しさん mailto:sage [04/06/12 01:07] 現在プログラム板にはHSP関連スレに凶悪な荒らしどもが住みついています。 ・HSPに関係の無い話題でスレッドを上げまくる ・HSPオフィシャルサイトの住人を名指しで誹謗中傷する ・重複スレを乱立させる などの荒らし行為を行っています。 みんなで団結してム板のゴミどもを追い出しませんか? 【HSP関連スレ】 【皆のレイプ魔】HSP初質P25【WWEヲタ=ハゲ】 pc5.2ch.net/test/read.cgi/tech/1086878505/ HSP>>>>>>>>>>>>>C=糞w pc5.2ch.net/test/read.cgi/tech/1071899663/ 今日もどこかでHSP初心者が質問ですP19 pc5.2ch.net/test/read.cgi/tech/1084089079/ HSPについて pc5.2ch.net/test/read.cgi/tech/1085149790/
589 名前:デフォルトの名無しさん mailto:sage [04/06/12 08:47] scmutilsについて教えてくだされ。 Structure and Interpretation of Classical Mechanics を読み進むのにScmutilsを使いたいのだが、MITScheme は苦手だ。他の処理系に移植されていないだろうか? Chez Scheme にあるとうれしいのだが。
590 名前:デフォルトの名無しさん mailto:sage [04/06/12 09:45] >>589 私もぜんぜん知らないのだけど、Google で検索すると、 ChezEdit-NT の作者である 笹川さんが出てくる。 www.sampou.org/scheme/sicp/mailingList/msg01408.html その結果は chabo.kingdom.biglobe.ne.jp/93453084312522391/bbs/index9.html > SICMのためのScmutilsを動かしたいんだけど、MIT-Schemeはどうも苦手だなぁ。 > かといって移植するのは大変な労力だ。どうしたもんだろう。 どうも移植はされていないっぽい。 Gauche 方面では、 Scheme:ライブラリ -> scmutils www.shiro.dreamhost.com/scheme/wiliki/wiliki2.cgi?Scheme%3a%a5%e9%a5%a4%a5%d6%a5%e9%a5%ea#H-jmimjv > MIT Scheme べったり。Gauche に移植しようとして途中で挫折。-- skimu こちらもだめっぽい。 あきらめて Debian GNU/Linux と MIT-Scheme に行くしかなさそう。
591 名前:589 mailto:sage [04/06/12 10:40] >>590 ありがとう。 MIT-Schemeでなんとかやってみるよ。
592 名前:デフォルトの名無しさん mailto:sage [04/06/12 15:20] CPS(継続渡し)が今までどうしても理解できなかったのだけど、 このページの例を見て、目がさめるようによく分かりました。 www.namikilab.tuat.ac.jp/~sasada/diary/200308.html#d28 なあんだ、まず最初に巨大にネストした無名関数をこしらえて、 それを一気に実行するだけじゃないか。 それだったら、普通にスタックが積まれる再帰とコストが等しくて当然。 しかし、Petite Chez Scheme は CPS の方が二倍ほど速いのですね。 自分の手元で試してみても同様でした。不思議ですね。
593 名前:デフォルトの名無しさん [04/06/12 16:09] すまねぇ、誰か助けてくれ。 こないだAllegroCommonLispのウワサを聞きつけトライヤル版を試してみたくて ダウンロードしたんだが、さっきFranz.comのSalesManagerのクレイグから いきなしメール来て、ACLを何処で知ったか、とかいって幾つか質問が 書かれたハードオファーなメールが来たんだよ。英語だし意味ワカンネエし、 毎日にチャンネルしかやってない俺にとって非常に恥ずかしいっていうか、 何で俺のようなアホにメールよこすんだよ!っていうか、「読んでくれて ありがとう。私はあなたからすぐに便りをもらうことを期待します」とか クレイグ書いてるし、そういう訳で困っています。 普段アホの新山とかblog読んでアヒャヒャと喜んでいるアホなのですが、天才新山名誉 教授でもなんでも良いのでだれか知恵を貸して下さい。 知名みにlispは初心者で、本当はAllegroCommonLispよりもGaucheを使って 半日ほどハアハアしてたりDを使っていました。
594 名前:デフォルトの名無しさん mailto:sage [04/06/12 22:35] >>593 相手は単に商売なんだから、ほっといたらいいんではないかー?
595 名前:デフォルトの名無しさん mailto:sage [04/06/13 08:51] どれシニョリーナ 「ウミネコ」の魔術をといてやるよ
596 名前:デフォルトの名無しさん mailto:sage [04/06/13 17:13] >>593 トライアル版落とすとそのメール来るよね。 前に落としたときは日本の法人から営業担当者のメールが来ますたよ。 そんな高いもん個人で買えないからご遠慮メール出しちゃったら、担当が変わりましたメールが忘れた頃に(w そこまで売りたいなら値段下げれ!とか思た(藁
597 名前:デフォルトの名無しさん mailto:sage [04/06/13 18:16] とりあえずexe作る権限だけでも売れると思うんだけどなあ。
598 名前:595 mailto:sage [04/06/13 18:21] すみません595 は誤爆…良スレを汚してごめんなさい
599 名前:デフォルトの名無しさん [04/06/13 21:26] 確かに個人で買えるような値段ではないよね。学生なら研究室の予算で買ってもらえるかも 知れないから指導教員に頼んでみるのもいいと思うけど。
600 名前:デフォルトの名無しさん mailto:sage [04/06/14 00:13] かえなければほかのつかったらいいじゃん、ってきもするんだけど。 使ったことがある人のAllegro CLの「これはべんりだ」ってあたりを 聞かせてもらえるとうれしいかも。 あと、個人的にはAlleglo Storeがすごそうなんだけど、そのへんも。
601 名前:デフォルトの名無しさん [04/06/14 00:49] Trial版しか使ったことないけど、日本語の文字がちゃんと扱えてWindows上でちゃんとした 処理系があるのはACLだけかな。Trial版でもちょっとしたプログラム開発には十分使えますよ。
602 名前:デフォルトの名無しさん mailto:sage [04/06/15 00:10] VBやObjectPascalのイベントハンドラがLispで書かれていて萌えた(w
603 名前:デフォルトの名無しさん [04/06/15 23:31] >>13 で紹介されているSECDR-Schemeですが、配布元のサイトが 無くなっているみたいです。 私が利用しているDNSが悪いのでしょうか? 誰か親切な人うぷしていただけませんか?
604 名前:603 [04/06/15 23:39] 今、鯖落ちてる?
605 名前:デフォルトの名無しさん mailto:sage [04/06/16 00:27] >>601 LispWorksは? >>603 覚えてたら暇なとき発掘してみるよ。flatlineさん(だっけ?)が上げてたサイト使わせて もらってねら〜Lisper用ポータルでも作ろうか。 先週のセミナーでも思ったんだけど、Lisp興味あるけどどこから手を付けたらいいのか わからないって人も結構居るみたいだし。
606 名前:デフォルトの名無しさん mailto:sage [04/06/16 01:08] >Lisp興味あるけどどこから手を付けたらいいのか わからないって人も結構居るみたいだし 禿げしく力強くうなづきつつ、同意。
607 名前:デフォルトの名無しさん mailto:sage [04/06/16 01:54] そういえば初心者スレ無くなっちゃったね。 とりあえず c.l.l と Blog と wiki と *-dev 系の ML はチェックしてる。
608 名前:デフォルトの名無しさん mailto:sage [04/06/16 01:59] >>606 そうだよなぁ。 Schemeに関して言えば、そういう情報を集積する場所としてWiLiKiがあると 思うのでがしがし「こんな情報はないのか?」って書き込んでみるといいかも。
609 名前:デフォルトの名無しさん mailto:sage [04/06/16 03:07] >>607 次スレは 【common lisp】(S式のみで語らう漢のスレ)【scheme】 でお願いしm
610 名前:デフォルトの名無しさん mailto:sage [04/06/16 07:14] >>609 (だが気をつけ給え。 ((その論理)の行きつく先は) (激しく読み難い(スレ)だ))
611 名前:デフォルトの名無しさん mailto:sage [04/06/16 07:59] >>610 (and (気をつけ給え。 インデント) (equal (修正すると >>610 ) (気をつけ給え。 (equal (行きつく先 (その論理)) (激しく読み難い スレ)))))
612 名前:デフォルトの名無しさん mailto:sage [04/06/16 18:47] このスレを見て思い出した・・・ 去年、プログラミング言語2(Scheme)の単位落としたんだよな・・・ 今年の後期プログラミング言語2(Lisp)取らないと・・・
613 名前:デフォルトの名無しさん mailto:sage [04/06/16 18:56] おまいさんの大学は Scheme -> Lisp に変わったのか おれんとこは2年前から逆になったわけだが
614 名前:デフォルトの名無しさん [04/06/16 22:19] (age)
615 名前:605 mailto:sage [04/06/16 22:32] >>603 Secdr.tar.bz2っての拾ってきたけど多分コレだろ。 ドコに置けばいいか教えれ。288KBくらい。
616 名前:デフォルトの名無しさん mailto:sage [04/06/16 23:06] 皆さんは、LISP を習得することで、他の言語でのプログラミングにどういう メリットを感じましたか? 私は Scheme をある程度おぼえて、簡単なプログラムなら書けるようになったの だけど、この知識が例えば Java でのプログラミングに生かせるかというと、 今のところ、よく分からない。 関数プログラミング、ファーストクラスクロージャ、継続、マクロなどはとても 面白いと思ったけれど、Java では使えないし。 今のところ、JavaScript で何かできるかな?と思うぐらいです。JavaScript には ファーストクラスクロージャがあるから。 エリック・レイモンドが cruel.org/freeware/hacker.html 「LISP は、それをモノにしたときのすばらしい悟り体験のために勉強しましょう。 この体験は、その後の人生でよりよいプログラマーとなる手助けとなるはずです。 たとえ、実際には LISP そのものをあまり使わなくても。」 と言っていたのはどういう意味なんだろう?
617 名前:デフォルトの名無しさん mailto:sage(ネタ振り参加) [04/06/17 03:00] >>616 > たとえ、実際には LISP そのものをあまり使わなくても。」 LISP を直接扱う仕事が少ない、LISP の技法が C に直接マッピングし辛い(クロージャとか)って 事ですよね。Java でも無名クラスとか CPS とか使う機会はそれほど無いのではないでしょうか。
618 名前:デフォルトの名無しさん mailto:sage [04/06/17 03:18] >>615 Secdr.tar.gz が 313KB なんでそれくらいでしょうね。ライセンスは GPL みたいなんで うぷろださえあれば私もうぷ出来ます。 ところで、SECD マシンじゃなくて SGCD マシン(G-Machine)というのがあるみたい ですが、これってどういう物なのでしょうか? ググって見たらグラフ理論と関係あるみたいですが、グラフ理論って最適化とかでよく 聞く物の、中身が良く分かりません。。。
619 名前:デフォルトの名無しさん mailto:sage [04/06/17 14:21] >>617 ちょっとメール欄が気になりますが、まあ、まさにその通りです。それだけでは Java のプログラミングスタイルが大きく変わる、という気がしないんです。 Lisp の良さは、どのようにも書けることだと思うんです。手続き型風にも、オブジェクト 指向風にも、関数型風にも書ける、何でもそろう百貨店のようです。 ところが他の言語は専門店なんです。例えば Java はクラスベースの型制限のきつい オブジェクト指向言語として書く以外に、あんまりできることがない。そうすると、 結局デザインパターンに従って書くより他にないのかな、ということになってしまう。 Java 捨てろ、と言われても、Lisp でやらせてもらえる仕事なんてないし。 皆さんはどのように考えていらっしゃいますか? >>618 私もグラフ理論はぜんぜん知らないんですが、n次空間での点と線の組み合わせの性質を 研究する学問だと聞いたことがあります。応用としては、回路図を基盤に起こすとき、 どのように回路を取り回せばよいかを検討するのに役立つそうです。 レゲエ数学者の秋山仁先生が、日本における第一人者だそうです。 『秋山仁の 落ちこぼれは天才だ 』 www.amazon.co.jp/exec/obidos/ASIN/4062739623/
620 名前:デフォルトの名無しさん mailto:sage [04/06/17 14:31] >>619 んー。逆方向で。 Lisp が百貨店だとしたら、他の言語で初めて触れるような機能に出くわしたとき、 「ああ、これは Lisp で言ったら○○だな」 て風に(Lisp にマッピングして)理解してみる、ということがやり易い、 ていう具合に考えてみるのはどうでしょう。
621 名前:デフォルトの名無しさん mailto:sage [04/06/17 15:35] >>618 G-Machineは、lazyな言語向きの仮想機械で 実行にグラフ書換えを利用してるものだったような。 うろ覚えだけど。 グラフ書換えについては、 『コンピュータ基礎理論ハンドブック』のたぶん2巻に解説があった気がする。
622 名前:デフォルトの名無しさん mailto:sage [04/06/17 16:13] >>620 確かにそれはできるかも知れません。実は Lisp を源流としている技術はこの業界には すごく多いみたいですから。 Java には、フレームワークだとか、EJB とかさまざまな新技術が次々導入されて いますが、「あ、これは Lisp のアレに相当するな」と分かれば習得は早いでしょうね。 しかし、もともと Lisp のエキスパートだった人はそれで良いでしょうが、今から Lisp を学ぼうという人はどうでしょう?遠回りをせず、Java の新技術を学んだ 方が早いのではないかという気がします。 何しろサーバサイド・プログラミングは Java の一人勝ちで、Java だけ覚えれば それで済んでしまうような状況ですから。代わりに Lisp が普及していてくれたらなあ。
623 名前:デフォルトの名無しさん mailto:sage [04/06/17 18:07] それにしても、Scheme の世界観は本当に美しいと思います。 以前、「継続というのは、靴下を裏返すようにして、ひっくり返した ラムダ」 という話を聞いて感動したのですが、 この下のほうの Shiro さんの説明 www.shiro.dreamhost.com/scheme/wiliki/wiliki2.cgi?Seminar%3aKahua 「値を返す ≡ 値を継続手続きに渡す」 これを聞いて、さらに感動しました。 結局 Scheme の制御構造は ラムダしかない。関数もブロックも環境も、全部 ラムダ。なんか世界の見え方が変わってしまいますよね。 しかし、これを Java でのプログラミングに、どのように生かせばいいのだろう…。
624 名前:デフォルトの名無しさん mailto:sage [04/06/17 19:25] 例えば,今まで C しか知らず,そのままでいると: 1. 再帰を恐れる.再帰で考えられない.再帰のコーディングの仕方に慣れていない. 2. 配列ばっかり. 3. スコープについてしっかり理解できていない. 4. なぜか速度ばかり気にして,少ないステップ数を重視した見辛いコードを書く. といった感じになると思います. でも,これは「言語はいくつか学べ」の理由でしか無いかも.
625 名前:デフォルトの名無しさん mailto:sage [04/06/17 20:47] >>624 お前、C使いに物凄い偏見を持っていないか? または、たまたま >>624 の周りでCを使う奴は皆 その程度にしか使えないだけなのか?
626 名前:デフォルトの名無しさん [04/06/17 20:52] scheme 使う人に質問です。 何故 scheme は list の末尾が nil ではないのですか? 末尾は nil にしておいた方が美しい設計だと思うのですが・・・
627 名前:デフォルトの名無しさん mailto:sage [04/06/17 21:00] nil が存在しないからです。
628 名前:デフォルトの名無しさん mailto:sage [04/06/17 21:45] scheme を知ってからは C でも alist もどきを多用するようになった。
629 名前:デフォルトの名無しさん [04/06/17 23:11] >>626 リストの末尾は他と区別できる単一の要素(空リスト)があればいいだけなので、特にnilだと 美しいという根拠がわかりません。それよりも真偽値と区別のないLispよりはSchemeの方が すっきりしているのではないでしょうか。そもそも真偽値とリストは型が違うわけですから。
630 名前:デフォルトの名無しさん mailto:sage [04/06/17 23:39] >>626 名前が欲しいだけなら(define nil '())で。
631 名前:デフォルトの名無しさん mailto:sage [04/06/17 23:42] >>630 '(a . nil) が (a) にならない罠
632 名前:630 mailto:sage [04/06/17 23:50] あうち。リーダーマクロでなんとかとか... ごめん、忘れてください。
633 名前:603 mailto:sage [04/06/18 01:39] >>618 有難う御座います。↓とかにうpして貰えれば嬉しいです。 ttp://www.uploda.net/cgi/uploader2/index.php >>605 = 615 ご親切に有難う御座います。 bz2でうpできる場所は、見つかれませんでした。 拡張子を誤魔化してうpするという方法が、可能かどうかまで調べていません。 気が向いたら、うpしてください。
634 名前:デフォルトの名無しさん mailto:sage [04/06/18 01:58] うう…結局、Lisp を学んで、Java のプログラミングスタイルが変わった人は いらっしゃらないのでしょうか。この言語はとても魅力的だけど、仕事にほとんど 生かせないのなら、なんとも悲しいものがあります。 Namazu の高林さんが 「Scheme を学んでからは、他の言語でプログラムを書くときの切れ味もずいぶん変わった 気がする。」 namazu.org/~satoru/unimag/10/ と言っていたから、すごく期待していたんだけどなあ。 そう言えば高林さんは、Java が嫌いだとも言っていたか…。 www.ogis-ri.co.jp/otc/hiroba/others/OORing/interview20.html
635 名前:デフォルトの名無しさん mailto:sage [04/06/18 02:05] 所詮その程度の人間だったということだ
636 名前:デフォルトの名無しさん mailto:sage [04/06/18 02:24] >>633 上げといた。こういうの使うの初めてなんだけど、これで良いのかな。
637 名前:デフォルトの名無しさん mailto:sage [04/06/18 02:59] >>634 今どきLispをやろうなんて物好きは、趣味で楽しんでやってるだけなんだから 仕事に生かそうなんて期待するな。
638 名前:603=633 mailto:sage [04/06/18 03:51] 無事↓できました。有難う御座いました。 勝手に想像していたものより良い意味で裏切られました。 まだ、ちょろっと読んだだけですが、付属のLibも一通り揃っている感じですし SECDRのRを何故Sから分離したのか、勉強してみたいと思います。 そういえば、どこかでSECDH machineというのが有ると聞いたときがありますが ここでのHの意味って、何なんでしょうね?
639 名前:デフォルトの名無しさん mailto:sage [04/06/18 09:23] >>634 プログラミングスタイルが変わらないんだとしたら、要するにLispで やってるような抽象化が必要とされるようなプロジェクトをやってない ってことでは。実際、Paul Grahamがなんと言おうと、世の中の プログラムの9割はそんな「力」を必要としないんだしさ。 漏れは、どうしても仕事でLisp以外の言語で書かざるを得ない時は、 人間コンパイラになったつもりで頭の中の高階関数のコードを静的な クラスに展開したり、人間マクロエクスパンダになったつもりで パターンに沿ったコード書いたりしてるけど。つくづく無駄なことを してると思うが、そのぶん金払うのはお客さんだしね。 ただ、どうしても我慢ができなくなった時は、LispでJavaやらCやらの 簡易マクロプロセッサを書くこともある。
640 名前:デフォルトの名無しさん mailto:sage [04/06/18 10:36] >>637 そう割り切ればいいのかもしれませんけど、仕事しんどいし、何かこの知見を 利用して楽になれないものかと思っちゃうんです。 >>639 > 要するにLispでやってるような抽象化が必要とされるようなプロジェクトをやってない ああ、それはありますねえ。 せっかく CPS を理解したんだから、今度の Java の仕事で session に継続を 保持させてみよう、と思ったんですが、考えてみたら、CPS を用いるほど細かい 制御はまず必要ないんです。 Lisp が一番力を発揮するのは、構文解析とか、複雑な構造のデータを扱う場合 だと思うんですけど、そういう仕事やってないですし。DB に SQL を発行して、 返った値をオブジェクトに収めて、JSP で表示させて、ハイ、おしまい。 マクロで展開させたいと思うようなことも、あんまりないです。 嫌だと言っても、世の中の99%はそういう仕事ですし。 「技術野郎の復讐---Revenge of the Nerds---」への反響 www.shiro.dreamhost.com/scheme/trans/icadmore-j.html >>635 氏の言う通り、私には Lisp は必要なかったのかな?いや、Lisp 業界が 私を必要としていないのか。…鬱だ死のう。
641 名前:デフォルトの名無しさん mailto:sage [04/06/18 11:14] IO操作はcall-with-うんたらかんたら系があると便利だよね。 標準IOをインターフェース変えずにファイルやソケットや文字列に割り当てたり。 C/C++言語もそういう仕様だったらよかったのに。 こっちは出来た時代が古かったんだね。
642 名前:デフォルトの名無しさん [04/06/18 11:27] LISPのcarやcdrが基本なリスト操作知ってからは ほかの言語でリストコンテナ書き直す回数が減った。 いまどきのC++やjavaには標準で付いてるけどね。 でもそういう標準コンテナを使うときも LISPで培ったやり方が適用できると思う。 先にLISPのマクロ知ったおかげでboostとかのライブラリが幼稚に見える。
643 名前:デフォルトの名無しさん mailto:sage [04/06/18 11:29] Javaの仕事がきついって言うけど、 それなら一番手っ取り早いのはJavaのエキスパートにコードを見せて 何か改善点がないか相談することでしょ。 改善のしようがなかったら、転職するかその仕事に耐えるかしかない。 どうやったらJavaに生かせるかLisperに訊かれても、そんなん知らんがな。 自分で応用していくしかないんだよ。
644 名前:デフォルトの名無しさん mailto:sage [04/06/18 11:30] ま、仕事の質から言って、やっぱLISPが最強だったね。
645 名前:デフォルトの名無しさん mailto:sage [04/06/18 11:35] 何でもかんでもLispでやりたがる奴はLisperじゃない
646 名前:デフォルトの名無しさん mailto:sage [04/06/18 11:38] Guy Steele Jr.のメアド教えてください。
647 名前:デフォルトの名無しさん mailto:sage [04/06/18 11:38] 誰もそんなこと言ってないが。 >被害妄想な645
648 名前:デフォルトの名無しさん mailto:sage [04/06/18 11:38] >>646 どっかのMLにいたよ。
649 名前:デフォルトの名無しさん mailto:sage [04/06/18 11:41] `(Guy,@Steele.Jr)
650 名前:デフォルトの名無しさん mailto:sage [04/06/18 11:42] 最強厨、現る
651 名前:デフォルトの名無しさん mailto:sage [04/06/18 14:32] >>647 お前に言ったわけじゃないんだが
652 名前:デフォルトの名無しさん [04/06/18 15:41] Lispの本って高い!!
653 名前:デフォルトの名無しさん mailto:sage [04/06/18 16:19] >>642 複雑なデータ構造の仕事をしている人だと、Lisp の経験が生かせるみたいですね。 >>643 なんというか最近、Java の世界そのものに息苦しさを感じてしまいまして。 Lisp の世界は自由自在・融通無碍だとどこかで聞きまして、Lisp だけで食っていける 人はまずいないそうですから、Lisper が Java を書くことも当然あるだろうと。 Java しか知らない人からじゃなくて、そういう視野の広い人から、話を聞いて みたかったのです。
654 名前:デフォルトの名無しさん mailto:sage [04/06/18 18:41] >>653 本物の Lisper なら、 >DB に SQL を発行して、 >返った値をオブジェクトに収めて、JSP で表示させて、ハイ、おしまい。 その作業を、システムを使うユーザーにやらせようとする。 つまりスクリプトを積む訳だ。 で、スクリプトには当然 Lisp を採用。
655 名前:605=615 mailto:sage [04/06/18 23:57] >>603 SECDR入手済みだよね?親切な人が生息しているようで何より。 過去ログ眺めてきたけど、何か妙に卑屈になってるのが居るみたいね。 2chで泣き言いってる暇があったら自分でLisp使う仕事作りゃいいのに。 漏れは作ったぞ。他にLisper居ないから1人デスマーチだけどな(w
656 名前:デフォルトの名無しさん mailto:sage [04/06/19 00:11] そうそう。Javaにうんざりしている同志がこんなもん作ってるけどこのスレでは紹介されてなかったよね? 暇なとき調べてみようと思って手付かずなので誰かが使用感レポートしてくれることを期待して貼っておこっと。 hxxp://www.evaluator.pt/linj.html
657 名前:デフォルトの名無しさん mailto:sage [04/06/19 05:54] www.evaluator.pt/linj.html めんどくせーことするな
658 名前:デフォルトの名無しさん mailto:デフォルトの名無しさん [04/06/19 23:40] Meadowのrun-schemeで、Gauche(utf-8)を使いたいのですが、可能でしょうか。 いまの設定は、下の設定です。 (setq scheme-program-name "d:/cygwin/usr/local/bin/gosh.exe -i") kawacho.don.am/win/meadow/customize/dot-emacs-sample.html#japanese ご面倒ですが、アドバイスをお願いします。
659 名前:デフォルトの名無しさん [04/06/20 00:23] >>658 Meadow1.15はutf-8対応でないそうなので、Meadow2をインストールしました。 そして、M-x set-buffer-file-coding-system utf-8にしました。 すると、こんな出力になっています。 gosh> (display "山下") ツ山ツ可コ#<undef>
660 名前:デフォルトの名無しさん mailto:sage [04/06/20 01:14] よう分からんけど set-process-coding-system の方じゃないかと疑ってみる。
661 名前:デフォルトの名無しさん [04/06/20 10:03] >>660 ありがとうございました。 ご指摘のとおり、set-buffer-process-coding-systemで inputもoutputもutf-8に設定することで、問題解決しました。 ども。
662 名前:デフォルトの名無しさん mailto:sage [04/06/20 11:24] Lisp の知見を 他言語で、という話だけれど、継続を使えば、Web アプリが スッキリ一つながりに書けるようになるよ。 tabesugi.net/memo/2003/b1.html#101129 普通なら HTTP リクエストごとに分断されたコードを書かなきゃいけないけど、 継続を使って、コードの実行を中断して、HTTPリクエストを処理してから再開、 といった作業がシームレスに行えるから。 だけど、この継続をいちいち手作業で作るのは面倒くさいね。言語自体が継続を サポートしていないと、かえって面倒くさいと思う。Java じゃ無理か。 Perl6 は継続をサポートするようになるそうな。Perl使いの皆さん、おめでとう。 tabesugi.net/memo/2004/61.html#092240 Perl使いは誰も継続なんて知らないみたいだけどな。 新山氏のサイトを斜め読みしていたら、たまたま出てきたんで書きました。
663 名前:デフォルトの名無しさん mailto:sage [04/06/20 12:52] 以前も話題になりましたが,defpackage にはキーワードを使ったらいいのか 文字列を使ったらいいのか分かりません. cliki に置いてあるコードでも両方見かけます. 叫ぶぼどではないので大文字は避け,キーワードを使いたいのですが, どんなトラブルが起こりうるのでしょうか.教えていただきたいのです. パッケージ名は :pkg-name のようになっていて,その中で :export される シンボルは #:func1 のようにすれば絶対安心なのでしょうか?
664 名前:デフォルトの名無しさん mailto:sage [04/06/20 16:10] 最近 asdf というのがあるんですが,これは何ですか? ちょっとしたプログラムを install するにもコレが必要らしいです. google しても関係なさそうなサイトばかり引っかかります. 正直,べんり? 入れなきゃダメ?
665 名前:デフォルトの名無しさん mailto:sage [04/06/20 16:23] asdf は lisp 版 make …という説明でわかるかな? 昔からある defsystem に代わるもの.CLOS ベースになってる. 依存関係や C ライブラリのビルドなどが設定可能な便利 ツールだが,どうしても嫌なら別に入れなくてもいいぞ. 全部手動でやる事も面倒だけど可能だし,defsystem 用の ファイルも提供してるプロジェクトも多いしな.
666 名前:デフォルトの名無しさん mailto:sage 直リン廚いらっしゃ& [04/06/20 17:33] マニュアルはここ。入れなきゃダメってことはないけどDebianでCommon Lisp Controller 使ってれば普通に入ってるし、正直便利。いろんな人が作ったライブラリ突っ込むのも asdf-install一発で片付くんでらくちんだよ。 hxxp://constantly.at/lisp/asdf/
667 名前:664 mailto:sage [04/06/20 17:47] >>665-666 恥ずかしながら,lisp プログラムのインストールに make のような ものが必要ということさえ知りませんでした. (load "hoge") 一発かと... debian を使っているので,sarge あたりから common lisp 周りのパッケージが増えたな,と感じていました. ただ,自分の管理下でないシステムに,自分が書いたコードを持っていったとき のことが気になります.そのコードが,asdf を使ってインストールされた プログラムを使っていると,向こうのシステムにも色々持っていかないと なぁ,,,という気がするのです. とにかく試してみます.ありがとうございました.
668 名前:664 mailto:sage [04/06/20 22:15] 私は asdf も入れられないレベルのようです.どうか力を貸してください. $ clisp -q [1]> (load "load-asdf-install") ;; Loading file /home/yu/src/html/src/asdf-install/load-asdf-install.lisp ... ;;; ASDF-INSTALL: Loading ASDF-INSTALL package from directory ;;; "/home/yu/src/html/src/asdf-install/" *** - A file with name ASDF-INSTALL-LIBRARY:defpackage.lisp does not exist 1. Break ASDF-INSTALL-LOADER[2]> defpackage.lisp を ASDF-INSTALL-LIBRARY:defpackage.lisp みたいな 変な名前にリネーム,,,するわけないですよね? どうすればいいのでしょうか.まずは cl-ppcre を入れたいのに.
669 名前:デフォルトの名無しさん mailto:sage [04/06/20 22:15] >>667 ある程度の規模になると依存関係とかロード順を考えなきゃならんでしょ? C/C++ だってファイルが増えてくると make や IDE の支援が必要になるわけで。 で、C/C++ のソースを配るときに make があるか心配だから make を使わない というほどの心配性ならともかく、asdf 自体は特に依存してないのでそんなに 心配する必要はないです。asdf.lisp 添付してもいいしね。 それでも、どーしても嫌なら自分で書いたコードには使わなきゃ良いだけです。
670 名前:デフォルトの名無しさん mailto:sage [04/06/20 22:20] >>668 できれば自分の環境(特に使ってる clisp のバージョン)はかいといた ほうがいい。なぜなら clisp で format のバグで asdf.lisp がコンパイル できないバージョンとかあったからな。最新のは大丈夫なんだけど。 で、先に asdf.lisp をロードしてないとかそーゆうんでないかな。今手元に clisp が無いんで推測なんだが。
671 名前:664 mailto:sage [04/06/20 22:31] >>670 はい.clisp 2.27 です. うっかり asdf-install/doc/index.html を読んでいませんでした. README がインストール方法かと思ってしまいました. そこで,index.html にある方法でやりましたが,,, current directory には asdf があるディレクトリと, asdf-install/asdf-install.asd へのリンクがあります. $ clisp -q [1]> (load "asdf/asdf") ;; Loading file /home/yu/src/html/src/asdf/asdf.fas ... ;; Loading of file /home/yu/src/html/src/asdf/asdf.fas is finished. T [2]> (asdf:operate 'asdf:compile-op :asdf-install) ; loading system definition from asdf-install.asd into #<PACKAGE ASDF1175> ;; Loading file asdf-install.asd ... ; registering #<SYSTEM ASDF-INSTALL #x203A4CB1> as ASDF-INSTALL *** - handle_fault error2 ! address = 0x4556454F not in [0x202B6000,0x2037220C)! SIGSEGV cannot be cured. Fault address = 0x4556454F. セグメンテーション違反です asdf って簡単そうな名前なのに orz
672 名前:デフォルトの名無しさん mailto:sage [04/06/20 22:36] 2.27 て…。まぁ、asdf.lisp がロードできてるなら cl-ppcre の インストールに asdf-install は要らないよ。手動で cl-ppcre の アーカイブをダウンロードしてきて [1]> (load "asdf/asdf.lisp") [2]> (load "cl-ppcre/cl-ppcre.asd") [3]> (asdf:oos 'asdf:load-op :cl-ppcre) だけ。あとは (saveinitmem) としてイメージ作れば良いじゃん。 あと 2.27 にこだわる理由がなければ 2.33.x にしとくのが吉。
673 名前:664 mailto:sage [04/06/20 22:43] >>672 親切にありがとうございます. いま,cmucl でやってみると,一通り終わるものの 5 errors 出ました. ;;; メインで clisp を使うのに *.x86f が出来ても... はい.debian woody なのと HDD が小さいのでバージョンアップを 渋っておりましたが,以下の理由で考え直します. [2]> (load "cl-ppcre/cl-ppcre.asd") ;; Loading file cl-ppcre/cl-ppcre.asd ... *** - handle_fault error2 ! address = 0x4556454F not in [0x202B6000,0x2037220C)! SIGSEGV cannot be cured. Fault address = 0x4556454F. セグメンテーション違反です
674 名前:デフォルトの名無しさん mailto:sage [04/06/20 23:43] やたっ! Mac OS X 上の ECL でスレッド使えた。 つっても無理矢理ビルド通しただけなんで、実用性はありませんけど。 素朴な疑問ですが、Lisper な人ってスレッドをあまり必要としていないんでしょうか? ネイティブスレッドを使える環境がかなり限られている感じがします。
675 名前:674 mailto:sage [04/06/21 00:15] と思ったら、重い処理させると落ちる・・・。
676 名前:デフォルトの名無しさん mailto:sage [04/06/21 01:14] >>664 Debian使ってLispやるならsidがいいのではないかと。 Kevin M Rosenbergが精力的にパッケージ作ってくれてるのでマジで助かります。 バグ修正したり機能拡張したコード送ると(暇なら)次の日にはパッケージ更新してくれるし。 ディスク容量とかメモリとかはカネで時間(作業効率)が稼げると思えば安いもの。組み込み 用途を検討中とかなら話は別だけどね。 hxxp://b9.com/debian.html >>674 Lisperがスレッドを必要としないってことはないでしょう。SBCLのウリのひとつだし。 Lisperは正規表現を必要しないってのは聞いたことがあるけど。リーダーマクロマンセー。
677 名前:664 mailto:sage [04/06/22 02:50] clisp バージョンを上げて解決しました. 便利な正規表現を使えるようになりました.みなさんのおかげです. ところで, (asdf:oos 'asdf:load-op 'cl-ppcre) が終わるのに 2 分くらいかかりますが,これは毎回必要なんですか? 実際に使うために動かすのは手元ではないので耐えられますが... >>676 sid は色々気をつけないとならないので逃げます orz
678 名前:デフォルトの名無しさん mailto:sage [04/06/22 06:25] >>677 cl-ppcre をロードした後に (saveinitmem) で 新しいイメージを作ってそっちを使うようにするのが定石です。 #!/bin/sh /usr/local/bin/clisp -M ~/my/dir/initmem みたいに自分のイメージを使って起動するシェルスクリプトを パスの通ったところに置いておきましょう。 あと、clisp なら標準の regex, あるいは pcre モジュールの ほうが性能は良いって事は心に留めておいたほうがいいです。 cl-ppcre は移植性と互換性は良いけどね。
679 名前:デフォルトの名無しさん mailto:デフォルトの名無しさん [04/06/22 14:50] Gaucheのwww.cgiを使ってみたいのですが、下のようにoutput-charset を定義すると、「"euc-jp"」と評価されます。ここで、「euc-jp」と 評価されるにはどうしたらいいのでしょうか? (define output-charset "euc-jp") (define (main args) (cgi-main (lambda (params) `(,(cgi-header :content-type #`"text/html; charset=,(output-charset)")
680 名前:デフォルトの名無しさん mailto:デフォルトの名無しさん [04/06/22 15:05] >>679 あっ。。。 (define output-charset "euc-jp") (define (main args) (cgi-main (lambda (params) `(,(cgi-header :content-type #`"text/html; charset=,output-charset")
681 名前:デフォルトの名無しさん mailto:sage [04/06/22 15:25] CGIプログラムを継続を使って書くと綺麗なコードになると何度か聞いたことがあります。 たぶん、HTTPがステートレスな接続形態であることをうまく隠して、 複数のHTTP要求と応答をひとつのセッションとしたコーディングができるようになるのかなと 想像しています。具体的に教えてください。 また、Continuation Passing Styleで書けば継続が直接サポートされていない Common Lispでも同じように綺麗なコーディングができますか? Kahuaも継続を売りにしていますよね。
682 名前:デフォルトの名無しさん mailto:sage [04/06/22 20:58] cygwin 環境で guile-1.6.4をコンパイルしたのですが、make途中で エラーが発生してしまいます。 場所は cat alist.doc (略) regex-posix.doc | GUILE="/cygdrive/c/home/work/guile-1.6.4/ pre-inst-guile" ../scripts/snarf-check-and-output-texi --manual > guile.texi || { rm guile.texi; false; } ERROR: Unbound variable: define guile.texiを作成するところです。実行ファイルそのものはできている ようなのでそれを直接実行してみると bash-2.05b$ libguile/guile ERROR: In procedure primitive-load-path: ERROR: Unable to find file "ice-9/boot-9.scm" in load path bash-2.05b$ のようなエラーになります。configure時には何も指定していません。 どなたか対処法をご存知ありませんか?
683 名前:664 mailto:sage [04/06/22 23:04] >>678 >>672 で (saveinitmem) に触れていただいたのに見落としていました.すみません. debian sarge の cmucl でも cl-ppcre を難無く load できました. 移植性と互換性とはいっても,古いバージョンには入れられないものなんですね. 他所 (sparc マシン) の cmucl で動くか試してみましたが, load 中,api.sparcf で type-error が出て入れられないんです. しかも api.lisp の何行目が悪いのかも分からず... 自宅では軽い clisp で作り,cmucl の入ったサーバーにアップロードという 目標は無理のようです.orz
684 名前:デフォルトの名無しさん mailto:sage [04/06/22 23:30] >>681 Kahuaのチュートリアルがわかりやすいかと。 www.kahua.org/cgi-bin/kahua.cgi/kahua-web/show/doc/hello-kahua#H-y3tjno ちなみにKahuaでいう「継続ベース」というのは、call/ccでどうのこうの ということではなくてCPSで書きますということです。 すなわち、Common Lispでも同様にやれるでしょう。
685 名前:デフォルトの名無しさん mailto:sage [04/06/23 00:13] >>681 www.common-lisp.net/project/ucw/index.html Common Lisp で継続ベースの Web アプリ開発フレームワーク、だそうです。 使ったことないですが。
686 名前:デフォルトの名無しさん mailto:sage [04/06/23 00:36] >>683 エラー吐いてデバッガに落ちてるんじゃないの? バックトレースとかスタックフレームとか調べてみた? まず「ソースコードの何行目が悪いのか」という思考から「どこの式が悪さしてるか」を 意識するようにしてみるといいかも。
687 名前:デフォルトの名無しさん mailto:sage [04/06/23 07:37] >>684-685 ありがとうございます。
688 名前:664 mailto:sage [04/06/23 22:44] 今日,>>686 のご指摘通りデバッガとの対話を学び,試そうと某所へ行きました. すると,コケたはずのインストールが,修正していないのに出来てしまいました. (asdf:oos ...) も (load "cl-ppcre-0.7.7/load.lisp") も出来ます. ;;; 管理者さんがこのスレにいるのでしょうか... そして,マイ core も作りました. あとはカッコいいプログラムを作るだけです.ありがとうございました > root
689 名前:デフォルトの名無しさん mailto:sage [04/06/24 02:05] Windows版はないのね。残念。
690 名前:デフォルトの名無しさん mailto:sage [04/06/24 23:50] 湯浅センセがスーパークリエイタになってはる。応募しはったときも 思たんやけど、なんで今さら…。めっさ、違和感あるわ。次世代ちゃ うやろ。
691 名前:デフォルトの名無しさん mailto:sage [04/06/25 03:13] ペタジーニのバントみたいだな。 夢が壊れるよ。
692 名前:デフォルトの名無しさん [04/06/25 08:54] そう? あの年で(失礼)、また教授になってもhackするのはいいことじゃないですか。 おまえらももっとhackしろというメッセージだと思ってます。
693 名前:デフォルトの名無しさん mailto:sage [04/06/25 09:03] lisp屋が おじさん/おばさん、おじいさん/おばあさん になっても hack するのは、デフォじゃないの?
694 名前:デフォルトの名無しさん mailto:sage [04/06/25 09:53] お金とって来れる偉い人がなっちゃいかんよなぁ。 もっと若い人に譲らなきゃ。
695 名前:デフォルトの名無しさん mailto:sage [04/06/25 13:26] 若い連中がふがいないから教授に取られちゃうんだよ。
696 名前:デフォルトの名無しさん mailto:sage [04/06/25 18:44] ファイルの中身をまるまる string にするには,どうやればいいですか? get-output-string-stream は output stream にしか使えないんですね.
697 名前:デフォルトの名無しさん mailto:sage本人が釣れないかな・・・ [04/06/25 19:11] >>694 >お金とって来れる偉い人がなっちゃいかんよなぁ。 もしかして「京大教授」って、意外と薄給なのでは?
698 名前:デフォルトの名無しさん mailto:sage [04/06/26 10:08] >>696 処理系は? まぁ、このへんを参考にしたらいいと思いますが。 www.shiro.dreamhost.com/scheme/wiliki/schemexref.cgi?port-%3estring >>697 「お金」= 「給料」ではなくて研究費です。 給料は国立大の教授なら1000万程度では。 いいと思うかは微妙なところだけど。
699 名前:デフォルトの名無しさん mailto:sage [04/06/26 11:09] XSで未踏に応募したのはWindows版の開発を委託する費用を捻出するため。 スーパークリエイターに認定されたのは湯浅センセがどうこうできることじゃない。 695の意見が正しいと思う。
700 名前:デフォルトの名無しさん mailto:sage [04/06/26 13:32] 少し前に話題になっていた、Lisp の知見を他言語(Javaなど)で生かす話、 こんなのを見つけました。 『A Little Java, A Few Patterns』 namazu.org/~satoru/diary/20010320.html#p01 この本は、名著『Little Schemer』の著者によるものだそうで、デザパタの中でも 難解で知られる Visitor パターンが、関数型言語の考え方から自然に導かれることを 説明するのだそうです。 そうか。関数型言語なら高階関数で行うことを、オブジェクト指向言語はオブジェクトで 行うのか。それらの知見は、ある程度は相互に利用が可能みたいですね。 邦訳も出ているみたいです。 『Javaとピザとデザインパターン』 www.amazon.co.jp/exec/obidos/ASIN/4797307900
701 名前:デフォルトの名無しさん mailto:sage [04/06/26 13:33] あと一つ、Greenespun's 10th Rule のグリーンスパンの Blog から 『Scheme vs. Common Lisp』 philip.greenspun.com/bboard/q-and-a-fetch-msg?msg_id=0006XQ 私は Scheme を少し知っているだけなのですが、これを読むと Common Lisp の実用性は 素晴らしいと思いますねえ。 それにしても、flame war 勃発と思いきや、あんまり騒ぎになってない。 そもそも Lisp 界にはフレームが起こるほど人がいないのか。 グリーンスパンが同じ Blog で Java を揶揄したときは、スラドを含めて 大騒ぎになったらしいのにねえ。 www.shiro.dreamhost.com/scheme/wiliki/wiliki2.cgi?Shiro%3alog%3a2003%b8%e5%c8%be (2003/09/24 18:54:23 PDT)を参照
702 名前:696 mailto:sage [04/06/26 14:06] >>698 あっ,common lisp の話なのに書き忘れてしまいました.ごめんなさい. 処理系は clisp ですが,処理系に依存しない方がいいです. いろいろ試してはみましたが,do と read-line よりいいものは無いのでしょうか.
703 名前:デフォルトの名無しさん mailto:sage [04/06/26 16:24] >過去ログ眺めてきたけど、何か妙に卑屈になってるのが居るみたいね。 lisp界には凄い人が普通にいる感じがするからじゃないかな。 shiroとか苫米地とか新山とか。 KCLの両先生はさしあたり東大寺の仁王像、京都大学は奈良の大仏、 アランスク先生はジャンヌダルクかフランス貴公子(奇行氏)といった所だろう (適当だが)
704 名前:デフォルトの名無しさん mailto:sage [04/06/26 17:37] shiro >>>>>>>>>>>>>>>> 苫米地 > 俺 > 新山
705 名前:デフォルトの名無しさん mailto:sage [04/06/26 18:22] ↑バカディスカー?
706 名前:デフォルトの名無しさん [04/06/26 21:00] >>703 >アランスク先生はジャンヌダルクかフランス貴公子(奇行氏)といった所だろう >(適当だが) 災いを招くつもりですか?
707 名前:デフォルトの名無しさん [04/06/26 22:09] 新山さんとアランスク先生って誰?
708 名前:デフォルトの名無しさん mailto:sage [04/06/26 22:27] shiroさん最強。 苫米地さんは謎。コード読んだこと無いし。 新山さんは・・・日記職人(田口)。
709 名前:デフォルトの名無しさん mailto:sage [04/06/26 23:46] >>707 aranskはゲームセンターで小学生突き落とした中学生
710 名前:デフォルトの名無しさん [04/06/27 12:26] knilって何ですか? (directory-fold: www.shiro.dreamhost.com/scheme/gauche/man/gauche-refj_272.html#SEC299
711 名前:デフォルトの名無しさん mailto:sage [04/06/27 13:25] >>710 特に意味がない。 (fold KONS KNIL LIST ...) (SRFI1) が元ネタ。2つの引数を持つ プロシージャを何度も呼ぶとき、第2引数の初期値として使われる。 多くの場合、KONS として cons のような 関数を使い、KNIL として '() が使われる。
712 名前:デフォルトの名無しさん [04/06/28 14:23] chezのコンパイラについて御意見を聞かせてください。購入しても バイナリのみのライセンスですよねぇ(いくらするんだろう)? >chezer様
713 名前:デフォルトの名無しさん mailto:sage [04/06/28 22:44] >>712 個人向けの販売はしてないらしい。 $9000とか、学校向けでも$4500もするんだもんな。 Kent教授に嘆願書でも出さないか?
714 名前:デフォルトの名無しさん mailto:sage [04/06/28 23:04] >>713 それでもずいぶん安くなったのではないですか? ACL もずいぶん安いライセンスも出るようになったから、Chez も今後、 期待したいですね。 下は、2年前の話。 LISP Scheme Part6 pc3.2ch.net/tech/kako/1031/10315/1031560687.html 835 名前: デフォルトの名無しさん 02/11/26 03:59 Chez Scheme 6.0の見積もりを取ったが、いやはやあんなに高いとは。 マシン・タイプごとに24,500ドル。サポートが1機種 年間1,350ドルだと。 それほどの価値があるソフトなのか???
715 名前:デフォルトの名無しさん mailto:sage [04/06/28 23:09] ACL アカデミックとかじゃなくて普通に商用に使うために買うといくらするの?
716 名前:デフォルトの名無しさん mailto:sage [04/06/29 02:30] このスレの Part 8 で紹介されていた URL に $599 という価格があるんだけど、 www.franz.com/products/packages/ これって、アカデミック・ディスカウントなの? そうは思ってなかった。 教育関係なら、ここからさらに割り引かれるのかと思ってました。 ご存知の方おられませんか?
717 名前:デフォルトの名無しさん [04/06/29 08:23] 先日のFranzセミナーでもらった価格表によると… Windows/Linux/FreeBSD/MacOS X版 Professional 750,000 (395,000) Enterprise 1,400,000 (795,000) Platinum 2,000,000 (895,000) UNIX (Sun, IBM, HP, Compaq)版 Professional 1,300,000 (520,000) Enterprise 2,000,000 (1,040,000) Platinum 2,750,000 (1,200,000) …高い… orz
718 名前:717 [04/06/29 08:24] あ、括弧の中はアカデミック価格ね。
719 名前:デフォルトの名無しさん mailto:sage [04/06/29 08:28] 俺はソースネクストが1980円で売り出すのを待つよ。
720 名前:デフォルトの名無しさん mailto:sage [04/06/29 08:38] 括弧を無くして初心者にやさしい構文になったAllegro CLパーソナル版 1,980円!
721 名前:デフォルトの名無しさん mailto:sage [04/06/29 11:58] >>717-718 ありがとうございます。 業務システムなら千万単位の金が動くのは当たり前なので、そういうところが 売り込みの対象なのでしょうね。 SUN の Java みたいにただでばら撒いてもらえるとありがたいけど、これを 売って会社を成り立たせているから、市場の少ない段階ではおいそれと値下げも できないし。 考えてみたら、Java がタダでばら撒かれているのがすごく不思議な気がしてきた。
722 名前:デフォルトの名無しさん mailto:sage [04/06/29 12:37] インタプリンタでさえF1マシンのように速いのにコンパイラは どれ程のものだろうね。個人的にはchez(petite)で EdwinみたいなEmacs互換のエディタがあればいいなぁ。 そういえば奥村先生の辞典にあるメルセンヌ数(素数)判定の プログラムをpetiteで再実装したらCコンパイラ(gcc)のコードより かなり速かった。…やっぱpetiteインタプリンタが内蔵された エディタが欲しいなぁ。doctorの腕も上がるかもねww
723 名前:デフォルトの名無しさん [04/06/29 15:23] Gaucheのテキストツリー構造を見ています。仕様の資料ってありますか? (use text.html-lite) (html:html (html:h1 "TITLE")) =>(#0="<" html () #1=">" ((#0# h1 () #1# ("TITLE") #2="</" h1 #3="\n>")) #2# html#3#) (html:html (html:h1 "タイトル")) =>(#0="<" html () #1=">" ((#0# h1 () #1# ("ツタツイツトツδ・) #2="</" h1 #3="\n>")) #2# html #3#)
724 名前:デフォルトの名無しさん mailto:sage [04/06/29 17:01] May the source be with you.
725 名前:デフォルトの名無しさん mailto:sage [04/06/29 17:02] happy hacking
726 名前:デフォルトの名無しさん [04/06/29 18:26] Windows版のLispってありませんか?
727 名前:デフォルトの名無しさん mailto:sage [04/06/29 18:40] ググれ
728 名前:デフォルトの名無しさん mailto:sage [04/06/29 19:02] ググった
729 名前:デフォルトの名無しさん mailto:sage [04/06/29 21:38] >>721 petite の方はただで配ってるし、プロプラなアプリに組込んで使っても問題無い感じ。 ところで、↓この chez の方の src.rpm ってソースコード丸々入ってるんですか? ttps://www.cs.indiana.edu/chezscheme/iu/
730 名前:デフォルトの名無しさん [04/06/30 00:52] >>726 Allegro CLのWindows版があるよ。
731 名前:デフォルトの名無しさん [04/06/30 11:47] >>724-725 了解しました (文字化けは、文字コード設定だけの問題でした)
732 名前:デフォルトの名無しさん mailto:sage [04/06/30 22:13] >>729 .aしか入っとらん。 そんなに世の中甘くないぞ
733 名前:デフォルトの名無しさん mailto:デフォルトの名無しさん [04/07/01 15:52] Gaucheのマニュアルを見ているんですが、なぜ戻り値の型が記載されていな のですか? 下のような形が標準であって、戻り値の型は必須になっていない です。Scheme的な流儀? 調べてみると、stringが返ってくるのか、portが返ってくるのか等々、判断 しにくいです。 ex) Function: read-block nbytes &optional iport ttp://www.shiro.dreamhost.com/scheme/gauche/man/gauche-refj_101.html#SEC105
734 名前:デフォルトの名無しさん mailto:sage [04/07/01 16:37] 釣りか? 吊りなのか?
735 名前:デフォルトの名無しさん mailto:sage [04/07/01 17:13] >>733 srfi とか、あるいは(scheme じゃないけれど)clhs みたいな フォーマットで書いてほしいって事でしょうか。 と、解釈してみます。
736 名前:デフォルトの名無しさん mailto:sage [04/07/01 17:39] >>733 MLやWiLiKiでshiroさんにきいてみなよ。 即効でレスしてくれるぞ。
737 名前:デフォルトの名無しさん mailto:sage [04/07/01 22:18] >>733 文字列を返すこともあれば、eof オブジェクトを返すこともあるわけで、 一つの型には決められないからじゃないのかな。 そこらへんをうまく扱えるいい表記があればね、と無責任モード。
738 名前:デフォルトの名無しさん mailto:sage [04/07/02 00:40] Schemeにも型表記の取り決めがあればいいね。 型が変化しない関数は組み込みを含めてありえるわけだし。 CommonLisp族のdeclareディレクテイブはどうなんだろう。
739 名前:デフォルトの名無しさん [04/07/02 18:38] 型なんかが必要な人は頭が型いんです。
740 名前:デフォルトの名無しさん mailto:sage [04/07/02 22:07] OnLisp 邦訳、Franz のサイトからリンク張ってあるね。
741 名前:デフォルトの名無しさん mailto:sage [04/07/02 23:36] >>740 すげぇな。ほんとだ。 あとは訳が完成するのをまた〜りまつこととしますか。
742 名前:デフォルトの名無しさん mailto:sage [04/07/03 01:33] 訳が完成したら出版してほしいなあ。 翻訳の完成度高いし。
743 名前:flatline@Vim%Chalice ◆r6EONKKhcc mailto:sage [04/07/03 04:13] そんなことより >>740 -- >>742 よ,ちょいと聞いて下さいよ.Lispとあんまり関係ないけどさ. 今日(昨日),ACMプログラミングコンテスト予選があったんです,ICPC国内予選. そしたら各大学3チームしか選ばれないのに,東大から19チームも出てて絶望なんです.もうね,ア(ry で,1年生(教養前期)3人のチームの中にうちのサークルの新人がいたんで, 「ま,選抜はされないだろうけど精一杯やるさ.きみっちもがんばれよ」と先輩風吹かしてみたら, なんと彼ら qoo_ が東大3位,全国4位(まだ暫定)で選抜されるっぽいんです. ttp://www.logos.ic.i.u-tokyo.ac.jp/acm-icpc/standings.html そこでまた(全国86位の自分に)ぶち切れですよ. 偉そうな顔して何が,探索空間広杉,だ. 自分はJavaでO(n^6)の土方コーディングしかできないのちゃうんかと. まあ私,flatlineは,分数の単位分数による分解をきちんと解きなさいってこった. ☆ ☆ ☆ なお使用可能言語はC, C++, Javaの3つ,時間は3時間15分でした. それに対してICFP www.cis.upenn.edu/proj/plclub/contest/ の方は任意の環境が利用でき, 時間も数日単位です(チームで寝る奴と書く奴を分担したり). 例年OCamlとかが人気のようですが,Common Lispも数チームずつ選んでいるようです. これを読んでいる学生の方,どっちでもいいですが参加してみてはいかが. 優秀な方に対しても,私みたいな orz に対しても,よい体験になると思います.
744 名前:デフォルトの名無しさん mailto:sage [04/07/03 04:51] これって、参加者のコード見れるの?
745 名前:デフォルトの名無しさん mailto:sage [04/07/03 12:24] >>743 なんかこう何とも言えないでつな(汗 C, C++, Javaてのがまた。来年あたりC#とかが追加されてみたりすんのかねぇ? Lispでごりごりなら743もゴリゴリ逝けたはず? まぁ、学生さんたち頑張ってくれ。
746 名前:デフォルトの名無しさん mailto:sage [04/07/03 15:21] >>726 SBCL win32 port のパッチが公開されてるよ。
747 名前:O....TZ@Vim%Chalice ◆r6EONKKhcc mailto:sage [04/07/03 15:30] 見られません < 提出済みコード 審判システムが終了してるので,感想戦やろうにもなかなか難しい. まぁ大きなコミュニティに属してる利点ってのは, そういうときでも「そのコードがacceptされたチームの人」「その場で(!)解ける人」が 身近にいるってことなんですが. ICPCはどの言語だろうと本質的な手間は変わらない問題が多いぽ. 手続的言語にしぼってるのは,それなりの意図でしょう(Pascalが加わる場合も). まぁ「Lispだとこうなる」ってのも面白いのでちょっと過去問を解いたことがありますが.
748 名前:デフォルトの名無しさん mailto:sage [04/07/03 17:33] 絶対に declare しておきたい場合を教えてください. cliki に置いてあるのを参考にしてみるも,全部に型を書いてあるんです. ここまで頑張るのでは大変です. 効果が大きいとか小さいとかは,どうしたら分かるのでしょうか.
749 名前:デフォルトの名無しさん mailto:sage [04/07/03 20:22] 絶対必要なのはプロファイルをとる事。なんでかっつーと、 効果がわからないって奴の大半はボトルネックをきちんと 測定していないから〜。 型指定はその後。一番良く呼ばれる関数のインライン化、 速度なら多用される計算関数、頻繁にアクセスする配列、 メモリ量ならサイズの大きい構造体や配列、クラス等で の型指定かなぁ。きちんと Profiling してるなら効果 もそれなりに測定できるはず。後は disassemble するとか。
750 名前:デフォルトの名無しさん [04/07/03 20:56] ヤッターマン
751 名前:デフォルトの名無しさん [04/07/03 20:57] コーヒー
752 名前:デフォルトの名無しさん [04/07/03 20:57] ライター
753 名前:748 mailto:sage [04/07/04 16:05] >>749 ありがとうございます.こんなに簡単に分かるものだったなんて初めて知りました. declare 前後の効果をはっきり知るために declare 式を一斉に on, off したいのですが,コメントにするのでは大変です. C の ifdef のようなものがあると便利なのですが, こういうときに役立つ方法を教えてください. *feature* に :declare-shiru を push して #+ 等を使うのは普通ですか?
754 名前:デフォルトの名無しさん mailto:sage [04/07/04 22:51] 関数として扱え,setf の 1 番目の引数でも使える accessor とは何なんでしょうか. 例えば,色々なものをごちゃ混ぜにしたリストを複数の関数で扱うとき, (defun data1 (lst) (cdr (nth 3 lst))) (defun data2 (lst) (cdr (nth 5 lst))) とやると setf でアクセスできなくなりますし, (defmacro data1 (lst) `(cdr (nth 3 ,lst))) (defmacro data2 (lst) `(cdr (nth 5 ,lst))) とやると関数を引数にするものに渡せません (:key など). こんなとき,みなさんはどうやっていますか?
755 名前:デフォルトの名無しさん mailto:sage [04/07/05 06:28] こんなんじゃなかったっけ? あと適当に defsetf とかで検索しておくれ。 (defun kar (kons) (car kons)) (defun (setf kar) (kons obj) (rplaca obj kons)) > (setq data '(1 2)) (1 2) > (kar data) 1 > (setf (kar data) 3) (3 2) > data (3 2)
756 名前:754 mailto:sage [04/07/05 20:02] >>755 全く知りませんでした.ありがとうございます. CLHS を一から読むと,まだ知らないことがゴロゴロ出てきそうです.
757 名前:デフォルトの名無しさん mailto:sage [04/07/05 21:18] あ、上のでも一応動くんだが (defun (setf kar) (obj kons) (rplaca kons obj)) だった。
758 名前:デフォルトの名無しさん mailto:sage [04/07/06 00:23] あら、gencgc って SPARC にも対応してたんだ。CVS 追っかけてなかったから知らんかった。 次は MP かしらん(ワクワク
759 名前:デフォルトの名無しさん mailto:sage [04/07/06 18:29] (っ´∀`)っ(defun mona () ((っ´∀`)っ(defun mona() ((っ´∀`)っ (っ´∀`)っ(defun mona () ((っ´∀`)っ(defun mona() ((っ´∀`)っ (っ´∀`)っ(defun mona () ((っ´∀`)っ(defun mona() ((っ´∀`)っ (っ´∀`)っ(defun mona () ((っ´∀`)っ(defun mona() ((っ´∀`)っ (っ´∀`)っ(defun mona () ((っ´∀`)っ(defun mona() ((っ´∀`)っ
760 名前:デフォルトの名無しさん mailto:sage [04/07/07 14:12] そういうの、大人はあまり面白がってくれないよ。
761 名前:デフォルトの名無しさん mailto:sage [04/07/07 17:12] 無名関数のみで再帰するシンプルな方法を考えてみました。 まず、リストの長さを測る関数 my-length を作ってみる。 (define (my-length list0) (if (null? list0) 0 (+ 1 (my-length (cdr list0))))) (my-length '(1 2 3 4)) ==> 4 それを無名関数だけで書き直す。要するに、自分と同じ形の関数を 引数に取って、それを再帰の代わりに呼び出すのである。 ((lambda (function list0) (if (null? list0) 0 (+ 1 (function function (cdr list0))))) (lambda (function list0) (if (null? list0) 0 (+ 1 (function function (cdr list0))))) '(1 2 3 4)) ==> 4 これを理解すれば、Yコンビネータを理解することの助けになると 思ったんですが、いかがなものでしょうか?
762 名前:デフォルトの名無しさん mailto:sage [04/07/07 18:34] 前スレあたりにいくつかあったよ
763 名前:デフォルトの名無しさん mailto:sage [04/07/07 19:19] >>762 ありがとうございます。なるほど、確かに前スレにありました。 見たはずなのですが、当時は理解できなくて読み飛ばしていました。 今『Scheme 手習い』の9章を読んだばかりで、 「この Yコンビネータは洗練されているけれど、分かりづらい。汎用性をなくせば、 もっと分かりやすい再帰ができるのじゃないか?」 と思ったのですが、すでによく知られていることなのですね。すみません。 以下は前スレの引用ですが、眼からウロコが落ちる思いでした。 ----------------------------------------------------------- 437 名前: デフォルトの名無しさん 03/12/12 23:03 lambdaだけで回すコードは、カンの鋭い人なら、相互的な再帰処理を 書いている内に自然と気付くかもしれない 結局は、以下のより単純にした式 ((lambda(x)(x x))(lambda(x)(x x))) この式の応用だから
764 名前:デフォルトの名無しさん mailto:sage [04/07/08 02:12] このスレの話題と呼応する様に、Bill Clementson のブログに Java と CL の連携の話が出てるね。
765 名前:デフォルトの名無しさん mailto:sage [04/07/09 14:29] hobbitとBiglooってどう違うん?
766 名前:デフォルトの名無しさん mailto:sage [04/07/09 16:49] >>743 flatline 氏 on Lisp の邦訳の 148ページ目に、TeX のタグが残っていますよ。 ----------------------------------- Common Lisp のこのコードは, \begin{verbatim} (let ((f #’(lambda (x) (1+ x)))) (funcall f 2)) \end{verbatim}
767 名前:デフォルトの名無しさん mailto:sage [04/07/10 00:16] >>765 hobbit は r4rs だし、末尾再帰の最適化もされないんじゃなかったっけ? Bigloo がどうだか知らないけど、hobbit は Scheme で書かれてる。 Scheme で標準的な FFI のライブラリってありますか? C の struct とか union も Scheme から扱えると嬉しいのですが。
768 名前:デフォルトの名無しさん mailto:sage [04/07/10 02:09] > Scheme で標準的な FFI のライブラリってありますか? SRFI でもめてたっけなー
769 名前:デフォルトの名無しさん mailto:sage [04/07/10 12:42] r5rs の 7.3 Derived expression types に書いてある、 case の定義について質問です。 template の最初の clause (+ の部分) を省いたら、 もとの定義とどういう違いが生まれるのでしょうか? それとも省略しても変わらないのでしょうか? (define-syntax case (syntax-rules (else) ((case (key ...) ;+ clauses ...) ;+ (let ((atom-key (key ...))) ;+ (case atom-key clauses ...)));+ ((case key (else result1 result2 ...)) (begin result1 result2 ...)) ((case key ((atoms ...) result1 result2 ...)) (if (memv key '(atoms ...)) (begin result1 result2 ...))) ((case key ((atoms ...) result1 result2 ...) clause clauses ...) (if (memv key '(atoms ...)) (begin result1 result2 ...) (case key clause clauses ...)))))
770 名前:デフォルトの名無しさん mailto:sage [04/07/10 13:29] >>769 key が複数回評価されてしまう。値が変るかもしれないし、 変な副作用が出るかもしれない。
771 名前:デフォルトの名無しさん mailto:sage [04/07/10 13:33] 省略するとKEYが複数回評価されてしまうことがあるな。 こんなんだと違いが出るでしょ。 (case (begin (print "foo") 2) ((0) ()) ((1) ()) ((2) ()))
772 名前:769 mailto:sage [04/07/10 13:42] >770,771 回答ありがとうございます。 理解できました。
773 名前:デフォルトの名無しさん [04/07/10 17:55] Lispに興味ある人って結構いると思うんだよね。 でも、ほとんどのユーザーがWindowsなわけで、 LispはWinユーザーにとっては手軽じゃない。 さくっとDLできて、すこっとインストーるできれば もっと流行るんじゃないかねぇ。
774 名前:デフォルトの名無しさん mailto:sage [04/07/10 18:38] 商用/フリー含めて一番多く Common Lisp 処理系が使える環境は Mac OS X だって 誰かが言ってたね。
775 名前:デフォルトの名無しさん mailto:sage [04/07/10 18:53] なんか最近は学生気分で呑気なヤシ多いよなぁ。 こちとらpetiteをbinutilsでハックラン中なのに… そろそろ寝まつか
776 名前:デフォルトの名無しさん mailto:sage [04/07/10 20:54] >>775 そもそもLispなんて仕事で使えるか? VC++やVBに疲れたプログラマが息抜きにやりたいんだろ。
777 名前:デフォルトの名無しさん mailto:sage [04/07/10 22:16] Shiroさんは仕事で使ってるぜ。 洩れは... 「Lispならこう書ける」を基準に、脳内コンパイルしつつJava書いてる(ぉ
778 名前:デフォルトの名無しさん mailto:sage [04/07/10 22:54] 無名クラスを乱用しないように気をつけましょうね
779 名前:デフォルトの名無しさん mailto:sage [04/07/10 22:58] Lispって大脳皮質みたいな感じがする。 でね、運動神経ゼロなの。 Cは脊髄。
780 名前:デフォルトの名無しさん mailto:sage [04/07/11 00:07] ANSI Common Lisp を読んでいて疑問に思ったのですが、(setf symbol) が defun の第一引数 (function name) になるって変じゃないですか? CLHS 見たんですけど、良く分かりませんでした。(setf symbol) って何を 返すのでしょうか? www.lisp.org/HyperSpec/Body/mac_defun.html www.lisp.org/HyperSpec/Body/glo_f.html#function_name
781 名前:780 mailto:sage [04/07/11 01:01] 済みません。ここを読んだら何となく納得しました。 groups.google.co.jp/groups?&th=49b3a6ce675ecc26 www.lisp.org/HyperSpec/Body/sec_5-1.html
782 名前:http://media.ebaumsworld.com/mariopiano.wmv mailto:mario [04/07/11 22:14] お前ら俺にschemeのsyntax-rulesの使い方を教えなさい 特に (syntax-rules (←この部分には何を書くのよ?→) ((パターン) (テンプレート))* ) ↑この部分 ここwww.sci.toyama-u.ac.jp/~iwao/Scheme/r5rsj/html/r5rsj.html#SEC42 によると「リテラル」などというご大層な名前が付いてるそうだが じぇんじぇん意味わかんねーぞ(#゚Д゚)ゴルァ(#゚Д゚)ゴルァ(#゚Д゚)ゴルァ(ていうかそもそも訳が下手じゃね?) このスレにいるスーパーハカーの皆さんは 大至急私に、リテラルの意味を教えなさい。 いや、マジで。どこにも分かりやすい説明が無くて。 あんまりバカにしないで。
783 名前:デフォルトの名無しさん mailto:mario [04/07/11 22:16] とりあえずぬるぽっておくか (null? ぬるぽ)
784 名前:デフォルトの名無しさん [04/07/11 22:17] 厨房に荒らされてしまって、このスレももう終わりだな
785 名前:デフォルトの名無しさん mailto:sage [04/07/11 22:23] >>784 本当に分かんないんだって! もったいつけないで教えろよ!
786 名前:デフォルトの名無しさん mailto:sage [04/07/11 22:27] >>782 ああ、syntax-rules の説明は、R5Rs を読んでもまずわかんない。 日本語の資料に限ると、 オンラインで読める文献は >>5 に出てる「入門Scheme」以外にないと 思う。これなら何とか分かるんじゃないかな。pdf ファイル。 #www4.ocn.ne.jp/~inukai/scheme_primer_j.html 書籍だったら、『プログラミング言語SCHEME』R.ケント ディヴィグ (著) www.amazon.co.jp/exec/obidos/ASIN/4894712261 この本、原書(英語版)が Chez Scheme といっしょにフリーで配布されてる。 古い本には syntax-rules は全然載ってないから気をつけて。
787 名前:デフォルトの名無しさん mailto:sage [04/07/11 22:34] >>785 まあ、おちつけ。 Scheme を知ってる人は大学で習った場合が多いから、一般人が独力で学ぶ場合の 苦労はあんまり共有されてないんだよ。漏れもこれを見つけるまで、マクロの書き方 わかんなくて苦労した。 ついでだけど、R5Rs はこっちの訳のほうが読みやすいと思うよ。 www.unixuser.org/~euske/doc/r5rs-ja/index.html
788 名前:デフォルトの名無しさん mailto:sage [04/07/11 22:35] >>786 さんありがとうございます しかしそのpdfファイル文字化けしてて読めなかった(Debian sarge にデフォでついてきたviewer) あとで環境揃えて読んでおきます THX 784さんもありがとう そして785にガッ
789 名前:デフォルトの名無しさん mailto:sage [04/07/11 22:36] >>787 ぬ?こっちも調べておきます。ありがとう
790 名前:784 mailto:sage [04/07/11 22:45] >>783 に言ったんだがな・・・
791 名前:デフォルトの名無しさん mailto:sage [04/07/11 22:55] >>788-789 だからおちつけ。少しレス番ずれてるぞ。 PDF 今読めないそうだから、いいかげんな解説をしてみる。 >>782 の (←この部分には何を書くのよ?→) だけど、 そこにはマクロの冒頭に来ない予約語を書くんだよ。 例えばマクロで cond を実装するとして、必要な予約語は cond と else だろ。 マクロの冒頭に来る予約語が cond で、それは当然 define-syntax のあとに書く。 で、(←この部分→) に書くのが else だ。マクロの途中に現れる、特別な意味を持つ シンボルをそこに書いて宣言するんだよ。 つうことは、単純なマクロならたいていそこは空欄になる。だから普通は()の中には 何も書かなくてよし。 >>790 そうか。俺も誤解してた。すまんかった。
792 名前:デフォルトの名無しさん mailto:sage [04/07/11 23:10] >>791 なるほど。それで>769が読めそう……ですね 俺は少しのレス番のずれなど気にしないぜ! それと、俺は>782,783,785,788,789だぜ。 実際厨学生だが。
793 名前:デフォルトの名無しさん mailto:sage [04/07/12 00:23] (define-syntax map-in (syntax-rules (in) ((map-in arg in lst body) (map (lambda (arg) body) lst))) これで (map-in x in '(0 1 2 3 4) (+ x 10)) => (10 11 12 13 14) となる。PythonとかRubyのイテレータに似せてみた。 in が未束縛だが、手作りの「予約語」になってる。 む、この例だと意味薄いか? r5rsマクロの「リテラル」はパタンマッチングの目印に使われるハズ。 あと、「学校で習った」だけの知識じゃマクロまで使えない学生も多いよ@灯台理情 好みでやりこんでるヤシが使うだけ。
794 名前:デフォルトの名無しさん mailto:sage [04/07/12 15:09] >>793 うーん、Lispだとイテレータはいらないよねえ。リスト操作で済んじゃうから。 個人的な見解だけど、マクロの途中に出現する予約語って、普通に関数的にコードを 書くときには、あまり使い道がないと思う。cond の else だって #t と書いても 同じだし。 call/cc で新しい制御構造を作ったりするときに、真価を発揮するのだと思う。 あと、学校で習う人が全員マクロまでは行かないのは分かる。だけど自分で先に 進むとき、周囲の人に相談できるし、教官に質問もできるでしょう?図書館にいい 本もあるし。やっぱりネットと本だけを頼りに手探りで進むのとは違うよ。 声を大にして言いたいのは、Lisp を学びたいなら、絶対学生のうちにきっちりやった ほうがいいということ。社会に出てからだと大変だもの。 私は学生の頃は Lisp をやろうなんて思わなかったんで、今、すごく後悔してる。 こういう基礎的な(応用に直接結びつかない)ものを学ぶ機会は、社会にはなかなか ないんだもの。
795 名前:デフォルトの名無しさん mailto:sage [04/07/12 20:47] > 私は学生の頃は Lisp をやろうなんて思わなかったんで、今、すごく後悔してる。 > こういう基礎的な(応用に直接結びつかない)ものを学ぶ機会は、社会にはなかなか > ないんだもの。 社会に出てからだっていくらでも学べる。 こんなのはやる気がない奴の言訳。 それか本当に時間のない土方プログラマかどっちか。
796 名前:デフォルトの名無しさん mailto:sage [04/07/12 20:57] 後半だけ読むと「やる気がない奴の言い訳」のようにも読めるけど、 最初から読めば、>>794 氏は「社会に出てから学んでいる、やる気 のある人」だと思うな。
797 名前:デフォルトの名無しさん mailto:sage [04/07/12 21:06] 私も同感です。ハックランするときは普通に2日は寝ないです。 噂によると本田技研の野郎の中にはまともに1週間寝ないで 設計する狂人がいるらしいけど。そういえばホンダはLispで 構築したシステム(たしか外注)持ってたよね。流石だよねぇ。
798 名前:797 mailto:sage [04/07/12 21:08] >>795
799 名前:デフォルトの名無しさん mailto:sage [04/07/12 21:13] 某教授曰く 「あそこ(本田技研)に行けば確実に殺される」 らしい(実話)。
800 名前:デフォルトの名無しさん [04/07/12 21:33] 800get
801 名前:794 mailto:sage [04/07/12 22:04] なんか、煽られてるなあ。 別に愚痴を言いたかったんじゃなくて 「大学というのは Lisp を学ぶには恵まれた環境だから、学生の皆さん、どうか有効に 活用してください」 と言いたかっただけなんだよ。これは Lisp だけじゃなくて、数学とか、経済学とか、 基礎的な学問なら全部に言えることだけど。 私は物理専攻で、その頃は Lisp にほとんど興味がなかった。うちの大学には Lisp の 有名な先生がいたんだけど。社会に出てから興味を持って「ああ、もったいなかったな」 と思ったんだよ。せっかくλ山のふもとにいたのに。 wwwfun.kurims.kyoto-u.ac.jp/MtLambda.html まあ、やる気がないとか、土方とかは、たぶん当たってます、ハイ。
802 名前:デフォルトの名無しさん mailto:sage [04/07/12 22:23] やる気があろうが無かろうが、結局はその人のセンス次第
803 名前:デフォルトの名無しさん mailto:sage [04/07/12 23:42] >>802 それを最大限にフォローしてくれるのが Lisp.
804 名前:デフォルトの名無しさん mailto:sage [04/07/13 00:02] >>801 Mt.Lambda ワロタ 今度から京大をλ山と呼ばせていただきます.
805 名前:デフォルトの名無しさん mailto:sage [04/07/13 00:23] λ山にはリスパが居ってさ。 nilってさ
806 名前:デフォルトの名無しさん mailto:sage [04/07/13 00:33] >>805 うまい。続きを考えようとしたけど思いつかない…
807 名前:デフォルトの名無しさん mailto:sage [04/07/13 00:56] Yってさ再帰ってさ
808 名前:デフォルトの名無しさん mailto:sage [04/07/13 05:35] いまlambda山に棲息しているlisperって誰? 長谷川先生?
809 名前:デフォルトの名無しさん mailto:sage [04/07/13 14:24] 湯浅先生ご本人がちゃんといるよね。 www.yuasa.kuis.kyoto-u.ac.jp/%7Eyuasa/index_J.html あとは誰かしら。現役の方の報告を希望。 ついでにλ山の歌の続きも希望。
810 名前:デフォルトの名無しさん mailto:sage [04/07/13 18:50] gaucheに巣食う厨をどうにかしてくれ
811 名前:デフォルトの名無しさん mailto:sage [04/07/13 19:28] ショボーン
812 名前:デフォルトの名無しさん mailto:sage [04/07/13 19:34] C は男らしい言語だと思うが、 Lisp は女らしい言語だと思う。 この2つを組み合わせて使うと まるで自分が天下無敵になったような 気分を味わえるな。
813 名前:デフォルトの名無しさん mailto:sage [04/07/13 19:43] gaucheに巣食う厨ってのはどこにいるんだ?
814 名前:デフォルトの名無しさん mailto:sage [04/07/13 19:48] >>813 作者
815 名前:デフォルトの名無しさん mailto:sage [04/07/13 19:51] なるほど
816 名前:デフォルトの名無しさん mailto:sage [04/07/13 20:08] shel(ry
817 名前:デフォルトの名無しさん mailto:sage [04/07/13 20:13] >>810 >>813-816 がんばってる奴を何もしない奴が叩いてんじゃねーよ。ヴォケが。
818 名前:デフォルトの名無しさん mailto:sage [04/07/13 20:27] シロウ、無理しないでね
819 名前:デフォルトの名無しさん mailto:sage [04/07/13 20:33] な・・・ん・・・で・・・・・あ・・・・・れ・・・て・・・る・・・・・の・・・・・・orz / ○/ ○ _ _ __ \_ |_ ○\ | /\ |○| /○| ○ | ○_| ○_| _| _| _| _| ̄|○  ̄  ̄  ̄
820 名前:デフォルトの名無しさん mailto:sage [04/07/13 22:39] >>819 それはあなたを表しています。時節柄ご自愛ください。
821 名前:デフォルトの名無しさん mailto:sage [04/07/14 02:31] www.paulgraham.com/carl.html Orbitz って CMUCL も使ってるの?
822 名前:OTZ@Vim%Chalice ◆r6EONKKhcc mailto:sage [04/07/14 06:27] "On Lisp" 21章目を訳し終えました. verbatim回りのミスを訂正しました. ご指摘をいただいた方にお礼を申し上げます. また何かあったらぜひご指摘をよろしくおねがいします > ALL 最近,さすがに内容が難しくて,適当な訳をすることが多いです. 注意して読んで下さい. ペースもひどく遅いですが,訳了まで気長にお待ち下さい.
823 名前:デフォルトの名無しさん mailto:sage [04/07/14 11:02] >>822 乙カレー! user.ecc.u-tokyo.ac.jp/~g340299/ つうかアナタ、名前が以前と違ってるぞ。>>747 は一発ギャグだと思っていたのに。 正式に改名するんですか?(笑)
824 名前:デフォルトの名無しさん mailto:sage [04/07/14 11:17] >>822 tnx! それにしても東大は大変だよねえ。受験が終わってからのほうがもっとキツい 競争なんだから。 まあ、気を楽にして行こうよ。いざとなったらλ山があなたを待ってるぞ。 実際、そういう人はかなり多かったぞ。 そのあとで待っているのは、「京都の一乗寺あたりに住む職業不定の怪しい人物」 という輝かしき人生だが……(泣)。 nicosia.is.s.u-tokyo.ac.jp/pub/essay/hagiya/essay/kyodaitodai
825 名前:デフォルトの名無しさん [04/07/15 14:58] Lispばっかりやってると本当にそうなったりして… :-P 鵺の中の人なんてリアルにそんな感じだし(失礼)。
826 名前:デフォルトの名無しさん mailto:sage [04/07/15 17:40] マイクロ・カーネルをSchemeで実装したら凄そうだよね。 またKL1みたいなプロジェクトが発足したらいいのになぁ。 >>822 がんがれ!!
827 名前:デフォルトの名無しさん mailto:sage [04/07/15 23:47] shiroさんが遂に業を煮やして動きだした ワショーイ
828 名前:デフォルトの名無しさん mailto:sage [04/07/15 23:58] もうその話はいいよ。ウォチなら他のスレ or 板でやってくれ。
829 名前:デフォルトの名無しさん mailto:sage [04/07/16 00:42] win native でちゃんと動く Gauche が出てきたという意味で言ったのであって他意は無いですよ。いやホント
830 名前:デフォルトの名無しさん mailto:sage [04/07/16 01:33] 私は Petite Chez Scheme (Win)を愛しているのだが、 Gauche が出たら…乗り換えちゃうかなあ? 少なくとも試しはするだろうなあ。
831 名前:デフォルトの名無しさん mailto:sage [04/07/16 17:48] >>822 すばらしい! お返しというわけではないですが SICP原書 ttp://mitpress.mit.edu/sicp/full-text/book/book.html
832 名前:デフォルトの名無しさん mailto:sage [04/07/16 18:31] >>831 もしや831が翻訳予定で?
833 名前:デフォルトの名無しさん mailto:sage [04/07/16 19:32] >>832 そりゃすばらしすぎる! 正直、今の邦訳は、私には英文のほうがまだ読みやすい。 特に苦もなく読める人もいるそうだけど、それはたいへんうらやましい。
834 名前:デフォルトの名無しさん mailto:sage [04/07/16 19:38] ところで、>>812 で > C は男らしい言語だと思うが、 > Lisp は女らしい言語だと思う。 というコメントがあったけど、皆さんにとって Lisp ってどんな言語? ここに、いろんな著名人の Lisp についてのコメントがあるんだけど、 www.paulgraham.com/quotes.html この中では、Alan Kay の 「 Lisp は言語じゃない。(それを)構築する材料だ」という言葉がいちばん 私にはしっくりする。
835 名前:デフォルトの名無しさん mailto:sage [04/07/16 20:56] 邦訳といえば、サイエンス社の「島内剛一」が有名。なにしろヤシのせいで クヌース教授の名著が迷著になってしまったんだからね。それだけに止まらず ヤシはクヌース教授の「日本語版への序」よりも前に「監訳のことば」として 頁を飾ってるんだから。とんでもない妄想基地外野郎だ。もっとも最近は 改訳されたのが出版されてるけどね。そういえば(クヌース教授の)他著にも 「排中律」を「三段論法」と誤訳されていた(ヒルベルトの名言を)。 かわいそうなクヌース教授…
836 名前:デフォルトの名無しさん mailto:sage [04/07/17 01:54] 通報しますた
837 名前:デフォルトの名無しさん mailto:sage [04/07/17 03:37] 「島内剛一」で検索して、こんなページを見つけた。 www.math.tohoku.ac.jp/~kuroki/keijiban/e0015.html#e20020215142205 > Subject: Re: 本物のハッカーって、日本に居たのでしょうか? > 「いま、いるか?」ではなくて、「かつて、いたか?」ですね。、 > 島内剛一、和田英一竹内郁雄、… (敬称略) 日本を代表するハッカーだったんですね。全然知りませんですた。 こんなのも見つけた。 godel.m78.com/diggression.html#simauti アセンブラの天才だったみたいですね。すでにご存命ではないのか。 しかし、島内氏の経歴をまとめたページが見つからない。なんだか、一生好きなことを やり散らかした人らしいので、まとまった業績がないのかもしれない。FSS を設立しな かった RMS みたいな存在なんだろうか。 まあ、それはそれとして。 島○先生といい、和○先生といい、ハッカーに翻訳をさせてはいけないのかもしれない。
838 名前:デフォルトの名無しさん mailto:sage [04/07/17 03:41] 訂正。× FSS ○ FSF 竹○先生の翻訳ってどうなの?いくつか出ているけど、読んだことない。
839 名前:デフォルトの名無しさん mailto:sage [04/07/17 07:45] > (`∀´)「アセンブラを使わないのが悪いのよ!」 ド変態がいるね
840 名前:デフォルトの名無しさん mailto:sage [04/07/17 09:55] まあ私は英語が読めるからいいけどさ(かなり努力したますた)。 英語が読めてemacsでM-x infoすると感動すると思います。若い人は 本気になればある程度はすぐに読めるようになると思います。この夏に 挑戦してみては?一気に中学生からの再復習がお勧めですよ。
841 名前:デフォルトの名無しさん mailto:sage [04/07/17 12:38] SICPって、自由に翻訳、発表していいの?
842 名前:デフォルトの名無しさん mailto:sage [04/07/17 13:58] 日本語版の出版社が翻訳権を持ってるんじゃない?
843 名前:デフォルトの名無しさん mailto:sage [04/07/17 15:10] SICPって、何て読むの?
844 名前:デフォルトの名無しさん mailto:sage [04/07/17 15:52] えすあいしーぴー
845 名前:デフォルトの名無しさん mailto:sage [04/07/17 16:29] いつも「シックピー?」って読んでしまう... 病気かしらん。
846 名前:デフォルトの名無しさん mailto:sage [04/07/17 18:36] t
847 名前:デフォルトの名無しさん mailto:sage [04/07/17 18:40] >>842 それ、最悪。邪魔すぎ。 出版社に掛け合ってshiroさんに翻訳しなおしてもらおう。
848 名前:デフォルトの名無しさん mailto:sage [04/07/17 18:59] >>842 海賊出版でなければ、翻訳権持っているはずですな。
849 名前:デフォルトの名無しさん mailto:sage [04/07/17 19:29] 翻訳といえばこれもか www.htdp.org/2002-09-22/Book/ WiLiKiで見つけた www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi?MzScheme
850 名前:デフォルトの名無しさん mailto:sage [04/07/17 22:56] >>847 Shiroさんにはよいコードを量産してもらったほうが有意義かと.
851 名前:デフォルトの名無しさん mailto:sage [04/07/18 01:51] Roger CormanからCorman Common Lisp買ってくれヨ!のメール来た香具師他にも居る? 漏れは当然シカトを決め込むわけですが、Corman Lispのウリって何なのよ?評価期間に ちらっと使った限りじゃカネ払ってまで使いたいとは思わなかったんで。 Cormanくらいの値段でACLが手に入るんならLinux/Windows/MacOSXと持っているホストの 種類だけライセンス買っちゃうんだけどね。
852 名前:デフォルトの名無しさん mailto:sage [04/07/18 02:29] Cormanって名前恥ずかスィ…
853 名前:デフォルトの名無しさん mailto:sage [04/07/18 03:18] このスレもラスト 150 レスを切ったので、次スレの準備。 テンプレの過去スレ集にこれも入れて下さい。 CommonLisp初心者スレ pc5.2ch.net/test/read.cgi/tech/1075464728/ ; CMUCL/Darwin のソースが CVS にマージされ始めましたね。
854 名前:デフォルトの名無しさん mailto:sage [04/07/18 06:55] >>851 ACL はランタイムライセンスが馬鹿高いので、安く exe や dll 作るなら Corman でもいいんじゃない?WinAPI ガシガシとかインラインアセンブラとか は便利だった気がする。
855 名前:デフォルトの名無しさん mailto:sage [04/07/18 10:59] ☆ チン マチクタビレター ☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・)< M$製のVisualLISP.net、マダ〜? \_/⊂ ⊂_)_ \___________ / ̄ ̄ ̄ ̄ ̄ ̄ ̄/| |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :|
856 名前:デフォルトの名無しさん mailto:sage [04/07/18 11:52] F#で我慢
857 名前:デフォルトの名無しさん mailto:sage [04/07/18 17:50] 翻訳権て独占されるものなのか? SICPの翻訳権はサスマンかMITに掛け合えばもらえるんじゃないのか? 日本のピアソンとか和田先生は関係ないかと。
858 名前:デフォルトの名無しさん mailto:sage [04/07/18 18:03] 契約内容によるだろ
859 名前:デフォルトの名無しさん mailto:sage [04/07/18 18:52] つか、翻訳したならWebに載せるんじゃなくて本にして欲しい。
860 名前:デフォルトの名無しさん mailto:sage [04/07/18 19:54] 翻訳権は独占されるものです。
861 名前:デフォルトの名無しさん mailto:sage [04/07/18 21:14] 逆に Hackers and Painters はどういう扱いになるのかな。 出版社が翻訳版を出したかったら・・・?
862 名前:デフォルトの名無しさん mailto:sage [04/07/19 03:07] >>849 面白そうな物サンクス。 cond の分岐を [] で表すの初めて見たけど、良くやるの?
863 名前:デフォルトの名無しさん mailto:sage [04/07/19 20:29] >>855 .NETフレームワークの対応予定言語にschemeが入っていたハズだぞ 期待しないで待て!
864 名前:デフォルトの名無しさん mailto:sage [04/07/19 21:26] あれはMS社が開発環境を提供するという意味ではなく, 「サードパーティがこれこれの言語について開発環境を準備してるっぽいです」 「みんなの人気者.NET!」 という宣伝なのでは...
865 名前:デフォルトの名無しさん mailto:sage [04/07/19 23:00] >>864 きっとサードパーティーでもうっかり人気がでればその会社ごとMSが買うだろうから。 ありえねぇな
866 名前:デフォルトの名無しさん mailto:sage [04/07/19 23:59] kludges ワラタ。 ポール・グラハムといい、Common な方の Lisp は愛憎半ばする言語なのかな。 昔の Lisp を知らないので、何処がそうなのか分からないけど。elisp とかやれば 分かりますか?
867 名前:デフォルトの名無しさん mailto:sage [04/07/20 01:38] >>962 [ ] は cond に限らず、対応するカッコを強調したいときに使う。 例: ([lambda (x) (* x x)] 3) 『Little Schemer』でも、同じ表記を使っている。 ちなみに、Chez Scheme はこの表記をサポートしている。 括弧の対応が分かりやすくなるので、個人的にはとても気に入っているが、 見苦しいと思う人もいるかもしれない。 Gauche はたしか、もっと多くの種類のカッコをサポートしていたとおもう。 なお、同じ[ ]で「超括弧」と呼ばれるものを表す処理系もあるそうだ。 ---------------------------------------------------------- plaza10.mbn.or.jp/~lisp/intro.htm ・超括弧 通常の括弧 ( ) に対して、超括弧 [ ] の使用が可能です。[ ] は、右括弧 ) 数が ミスマッチ(少ない方に)の場合でも、強制的にマッチングをとります。 例:(A (B C (D] → (A (B C (D))) (A (B [C (D] )) → (A (B (C (D))))
868 名前:デフォルトの名無しさん mailto:sage [04/07/20 13:51] 中村正三郎のホットコーナーにこの前あったFranzのCommon Lispセミナーに関する 感想が書いてあります。 www.asahi-net.or.jp/~ki4s-nkmr/ Shiroさんの正規表現ライブラリについて。 >ほとんどPerl互換の正規表現ライブラリを、フロントエンド+ダミーバックエンドで >テストスイートを通すまでに2週間、フロントエンド最適化に2週間、仮想マ >シンバックエンド実装と最適化に2週間だもん。仕事、早い! ほんと、速いね。他の仕事とかけもちでやってこれかな。
869 名前:デフォルトの名無しさん mailto:sage [04/07/20 16:05] >その他、湯淺先生は、「Perlは遅いね。コードを読んだことがあるけど、ど >うしたらあんな遅いコードが書けるか不思議くらい」などとおっしゃって、さ >すが世界的ハッカーの湯淺先生からいわれたら、返す言葉はないよなあと、こ >ちらはうなずくばかり。 CGIのようなIOの多い用途でもCommonLispは有効ですか?
870 名前:デフォルトの名無しさん mailto:sage [04/07/20 18:07] Gaucheは現状"[]"と"{}"が、"()"と同様に扱われる。 けど、マニュアルにその旨記述がないはずだから、これはunofficialだね。
871 名前:デフォルトの名無しさん mailto:sage [04/07/21 01:05] >>867 ,870 thanx! Smalltalk 風と言うべきか Arc 風と言うべきか。でも、[] で括るなら lambda は省きたい 気になってきますね。{} はちょっと読み辛い感じがしますね。
872 名前:デフォルトの名無しさん mailto:sage [04/07/21 01:34] >>866 私も昔を知らないけど、中村正三郎『電脳騒乱節』には、古いタイプのLispがいくつか 紹介されていて、それを見たときの感想は、「今の Common Lisp の方がずっといいや」 というものだった。 Guy Steele は多分、Common Lisp より先に作った Scheme を気に入っているのじゃ ないかな。 >>869 使えるはずだよ。ポール・グレアムは Common Lispで書いたWeb アプリケーションで 財を成したから。 普通のやつらの上を行け www.shiro.dreamhost.com/scheme/trans/beating-the-averages-j.html
873 名前:デフォルトの名無しさん mailto:sage [04/07/21 01:41] 萩谷先生も Common Lisp には愛憎半ばしているようだ。 古いLispにあった夢ってなんだろう? nicosia.is.s.u-tokyo.ac.jp/pub/essay/hagiya/essay/zoku_omoide nicosia.is.s.u-tokyo.ac.jp/pub/essay/hagiya/h/inchiki Scheme は好きらしい。 nicosia.is.s.u-tokyo.ac.jp/pub/essay/hagiya/h/tensai
874 名前:デフォルトの名無しさん mailto:sage [04/07/22 03:58] 俺樣のための俺樣Lispスペシャルを走らせるための 軽量インタープリターを俺樣が書く。 ちょちょいと書く。 Common Lisp にはない世界
875 名前:デフォルトの名無しさん [04/07/22 07:26] 古き良き時代の香りが残ってるとかじゃない。NIL とか。 話し言葉にもなった -p 記法とか。あと性能の追求とか。 俺様のための俺様スペシャルを走らせるためのコンパイラを俺様が書く。 ちょちょいと書く。Scheme には無い世界。
876 名前:デフォルトの名無しさん mailto:sage [04/07/22 08:22] ttp://en.wikipedia.org/wiki/Robert_Tappan_Morris,_Jr. の抄訳 Robert Tappan Morris, Jr. はコンピュータプログラマで,現在はMITに勤めています. 彼は1988年にコンピュータウイルスMorris Wormを放流したことで悪名高いですが, これはインターネットで猛威をふるった最初のウイルスでした. Wormについて: モリスは「実験的に作ったものがエラーのせいで流出したんだ」と主張しました. 彼は初めて「コンピュータ濫用法」によって起訴された人物になり, 1990年に,3年の懲役と400時間の公共奉仕と罰金120万円を言い渡されました. Viawebについて: モリスはPaul Grahamと共に オンラインストアを作るツールのためのベンチャー企業 Viaweb を立ち上げました. Viawebのツールが革新的だった点は2つ: 初の「webアプリケーション」であり, またほとんどがLispで書かれていました. モリスはCで書かれた注文システム(DBなどのバックエンドか?)に携わりました. MITについて: モリスは現在MITのassistant professorをしており, 並列・分散OSのグループで研究をしています. ttp://www.pdos.lcs.mit.edu/~rtm/ こいつ
877 名前:876 mailto:sage [04/07/22 08:23] :s/3年の懲役/3年の執行猶予/
878 名前:デフォルトの名無しさん [04/07/22 15:27] LISPってさ、メルヘンだよね メンヘルじゃなくて 括弧がレインボーアイランドつーかさ、 コード書いてると楽しくなってくるよ コードがデータで データがコード? あひゃ、こりゃ麻薬だね
879 名前:デフォルトの名無しさん mailto:sage [04/07/22 15:34] Schemeほど洗練された高級言語はみたことないぜ quoteの発明がなかったらここまで信仰しなかったが
880 名前:デフォルトの名無しさん mailto:sage [04/07/22 20:56] MITの魔術師本の、Instructors Manualって方を持ってる人いる? Exerciseの答えとかも載ってるのかな。
881 名前:デフォルトの名無しさん mailto:sage [04/07/22 21:16] >>874-875 なるほど、古き良き時代とは、なんでも手作りできた自由な時代のことですか。 萩谷先生も、自分はCプログラマであり、本物の言語はCのみだと言っていたけど、 そういう時代への懐古を込めていると考えれば納得がいくなあ。 nicosia.is.s.u-tokyo.ac.jp/pub/essay/hagiya/7bits/saredo 湯浅先生の『入門 Scheme』によると、湯浅先生の周りでは ? を「ピー」と発音しているそうな。 例)zero? --> ゼロピー
882 名前:デフォルトの名無しさん mailto:sage [04/07/22 21:17] >>879 どの Lisp にも quote はあると思うが、なぜ Scheme だけを名指しするのだ? Scheme の他の Lispと比べて良いところは、何といっても名前空間と継続だと 思うが。
883 名前:881 mailto:sage [04/07/22 22:06] 訂正 湯浅先生の本は × 『入門 Scheme』 〇 『Scheme 入門』
884 名前:デフォルトの名無しさん mailto:sage [04/07/23 05:25] 継続ベースのウェブアプリケーションサーバって流行ってるの? Kahua や UnCommon Web は既出だけど、他にもいっぱい。 Seaside (Smalltalk) www.beta4.com/seaside2/ UnCommon Web (CL) www.common-lisp.net/project/ucw/ Kahua (Scheme) www.kahua.org Cocoon (JavaScript) wiki.apache.org/cocoon/WhatIsFlow Chris Double の Weblog のまとめ。 radio.weblogs.com/0102385/2003/08/30.html Perl, Python, Ruby にもありそう。
885 名前:デフォルトの名無しさん mailto:sage [04/07/23 13:59] >>884 d.hatena.ne.jp/sumim/20040414
886 名前:デフォルトの名無しさん [04/07/26 18:50] (car member)などでリストの要素を呼び出した時に 自分がリストの何番目にいるのかを簡単に知る方法はないでしょうか?
887 名前:デフォルトの名無しさん mailto:sage [04/07/26 21:00] (define (foo hoge member) (- (length member) (length (memq hoge member))))
888 名前:デフォルトの名無しさん mailto:sage [04/07/26 21:04] >887 thx!
889 名前:デフォルトの名無しさん mailto:sage [04/07/26 21:58] 片側リストだからしょうがないけどmember/assoc系って効率悪いよね。 それでもscheme使ってるうちに>>887 の様なコード見てもだいぶ平気になったよ。 連想配列は標準で入れて欲しいなあ。
890 名前:デフォルトの名無しさん mailto:sage [04/07/26 22:28] > 片側リストだからしょうがないけどmember/assoc系って効率悪いよね。 「片側リスト」じゃなかったらどう効率良くなるんですか?
891 名前:デフォルトの名無しさん mailto:sage [04/07/27 00:06] しばらくやってりゃ、要素数が少ないときの実行・開発効率は member/assoc系で十分採算が取れていると気付く罠。
892 名前:デフォルトの名無しさん mailto:sage [04/07/27 05:24] ベンチとったことあるが、要素数がせいぜい10個くらいなら assocの方が速かったな。漏れのハッシュの実装がタコだった だけかもしれんが。
893 名前:デフォルトの名無しさん mailto:sage [04/07/27 23:05] (激しく既出かもしれませんが。。) なぜ Common Lisp は関数と変数とは名前空間が違うのでしょうか? Scheme の様に同じだとシンプルだとおもうんですけど、 実用上の利点があるのですか?
894 名前:デフォルトの名無しさん mailto:sage [04/07/27 23:27] 宗派が違うから
895 名前:デフォルトの名無しさん mailto:sage [04/07/28 01:05] いまさら引き返せないから
896 名前:デフォルトの名無しさん mailto:sage [04/07/28 03:02] 昔の Bit に『名前空間が同じだと、定義した関数を一瞬で失う危険性がある、同じにすると simple になるのだが…』とかなんとかそういう文が載っていた記憶が…
897 名前:デフォルトの名無しさん mailto:sage [04/07/28 04:08] 一瞬で失うだと!!!?? 意味分らん
898 名前:デフォルトの名無しさん mailto:sage [04/07/28 06:07] コンソールからぽちぽちと直に定義した関数を間違って消しちゃう危険性か? だとしたらやっぱり尻尾のような仕様だな。 この点に関してはCommonLispはサル。
899 名前:デフォルトの名無しさん mailto:sage [04/07/28 07:40] Common Lispは、関数、変数、クラス、パッケージ、型、リスタート、メソッド などを別の名前空間(symbolからobjectへの関連を集めたもの)を使って管理して いるけど、Schemerから見ると、これらを全て1つの名前空間で管理するのがいいと思う?
900 名前:デフォルトの名無しさん mailto:sage [04/07/28 08:09] 全部一緒にしちゃうのはやりすぎだけど、関数と変数くらいは一緒であって欲しい。
901 名前:デフォルトの名無しさん mailto:sage [04/07/28 09:41] >>899 リスタートってこの文脈では聞いたことないんですが何ですか? >>900 関数と変数だけ一緒で他は別々がいいってことだと 「シンプルに統一された美しいルール」にはならないけどいいの?
902 名前:デフォルトの名無しさん [04/07/28 10:53] 現在AI関係ではばをきかせているのはCommonLisp? Scheme? ほかの方言? それとも、まったくほかの言語?
903 名前:デフォルトの名無しさん mailto:sage [04/07/28 12:56] >>901 リスタートはコンディション機構に用意されている機能。 名前と関数群(主処理、説明表示、ユーザとの対話)を動的に結びつけるマクロrestart-bind が基本機能。よくあるのはrestart-caseマクロで、名前やいくつかの機能が付いた大域ジャンプの 着地点として使う場合。 デバッガに入ったときに、 "変数fooの値としてcons型が期待されていたのに、1が入っていますた。 次の選択肢から選んでね。 1: fooに値を入れ直す(store-value)。 2: 無視して進む(continue)。 3: トップレベルに戻る(abort)。" なんて、メニューがでるでしょう。これは、そのときアクティブなリスタートを 検索して、それぞれの説明表示関数を呼び出して、動的に生成されたメニューだったり します。各選択肢が1つのリスタートによって実現されているのね。そんで、 ある選択肢が選ばれたら、そのリスタートの対話用関数が呼ばれると。 名前空間が別に用意されているのは、あと、method-combinationもそうだね。 >>902 日本では、人工知能といえばPrologが有力だと聞きました。ICOTも並列Prolog を開発していたよね。現在のAI関連のことは知らないけど。
904 名前:デフォルトの名無しさん mailto:sage [04/07/28 13:51] 私は >>899 あたりは全部一緒にしちゃいたいな。 なるべく統一したい。
905 名前:デフォルトの名無しさん mailto:sage [04/07/28 15:11] CommonLispの仕様って今後変わったりするの? いままで仕様変更ってあった?
906 名前:デフォルトの名無しさん mailto:sage [04/07/28 15:44] ANSI X3.226-1994 が最初かつ最新
907 名前:デフォルトの名無しさん mailto:sage [04/07/28 19:24] >>899 symbol から object へ対応させるとき、object の種類による複数の対応はいらないけど、 symbol から object への対応表は複数あってもよいと思う。 簡単に言えば、モジュールとかパッケージシステムのようなもののこと。
908 名前:デフォルトの名無しさん mailto:sage [04/07/29 10:05] (assoc :key alist) の cdr を取るの マンドクサ
909 名前:デフォルトの名無しさん mailto:sage [04/07/29 13:19] plistなら?
910 名前:デフォルトの名無しさん mailto:sage [04/07/29 15:21] assocdr でも作っとけ。
911 名前:デフォルトの名無しさん mailto:sage [04/07/29 15:41] cdassoc
912 名前:デフォルトの名無しさん [04/07/29 18:16] 独習LISPとかでないかなーw
913 名前:デフォルトの名無しさん mailto:sage [04/07/29 18:47] nil
914 名前:デフォルトの名無しさん mailto:sage [04/07/29 22:17] #f
915 名前:デフォルトの名無しさん mailto:sage [04/07/29 22:20] *** ERROR: unbound variable: 独習LISP
916 名前:デフォルトの名無しさん mailto:sage [04/07/30 00:46] (define (独習LISP) (独習LISP))
917 名前:デフォルトの名無しさん mailto:sage [04/07/30 01:06] Paul Graham の "ANSI Common Lisp" は「独習 Lisp」みたいな感じじゃないか。
918 名前:デフォルトの名無しさん mailto:sage [04/07/30 01:26] nil
919 名前:デフォルトの名無しさん mailto:sage [04/07/30 02:08] 名前空間に付いて興味深い話が聞けたんで避けてたけど、CMUCL Mac OS X 版がマージされますた。 これで世代別 GC の (非 SPARC) RISC CPU への移植 --> (SBCL で) スレッドの実装と行くと嬉しいな。
920 名前:デフォルトの名無しさん [04/07/30 09:22] >>917 amazonの書評では2人とも「入門向きではない」的なことを書いているけど。。。。
921 名前:デフォルトの名無しさん mailto:sage [04/07/30 10:16] >>907 >symbol から object への対応表は複数あってもよいと思う。 >簡単に言えば、モジュールとかパッケージシステムのようなもののこと。 Common Lispのパッケージシステムは、文字列からシンボルへの複数の対応表を 扱う仕組みだけど、Schemeのモジュールはシンボルからオブジェクトへの複数の 対応表を扱う仕組みとして理解していい? つまり、シンボルのバリューセルがモジュール毎に切り替わるということかな。 Emacsのバッファローカル変数みたいな感じかな。
922 名前:デフォルトの名無しさん mailto:sage [04/07/30 14:24] Schemeにはまだ標準となるモジュールシステムがありませんよね
923 名前:デフォルトの名無しさん mailto:sage [04/07/30 15:21] R6RSにはモジュールが入るとか入らないとかいう噂があったな。SRFIにはなってるの? あと既存の処理系が独自に実装しているモジュールシステムはあるよね。
924 名前:デフォルトの名無しさん [04/07/30 19:39] (新しいエッセイの翻訳が来ましたage)
925 名前:デフォルトの名無しさん mailto:sage [04/07/30 19:59] >>921 Scheme の symbol 自体には value cell は無いと考えた方がいい。 モジュールというか「環境」は、symbol をキーとし object を値とするハッシュテーブルのようなもの。
926 名前:デフォルトの名無しさん mailto:sage [04/07/30 20:03] 変数なんかないんだ。環境だけがある。
927 名前:デフォルトの名無しさん mailto:sage [04/07/30 23:28] Schemeのマクロよく知らないんですけど、再帰的にマクロ定義するにはどうしたらいいんでしょう。 とりあえず macroexpand使ったらできたんですけど、CommonLispならそんなことしなくても いいんですよね。
928 名前:デフォルトの名無しさん mailto:sage [04/07/31 00:16] Schemeのsymbol自体にvalue cellがないというのはR5RSから導かれること? Hyper Static Environmentなら確かにvalue cellは完全に不要だけど、 R5RSのあいまいなtop levelの定義ではどうも混乱してしまう。 c2.com/cgi/wiki?HyperStaticGlobalEnvironment
929 名前:デフォルトの名無しさん mailto:sage [04/07/31 00:51] >>920 確かにあの本だけで入門は難しいかも。最初に読んだ Common Lisp 本が ANSI Common Lisp だったけど、その時は既に CLHS とか CLtL とか知ってたからなぁ。
930 名前:デフォルトの名無しさん mailto:sage [04/07/31 01:32] >>920 >>929 私はANSI Common Lispで入門しましたが、あれでよかったと思っています (さすがにあれでCommon Lispを第一言語とするのは無理でしょうけど)。 Lispで何ができるのかを教えてもらったので、 今では必要に応じてHyperSpecを調べれば何とかなるようになりました。 ;; と言っても学生なのでリアルの「仕事」をしたことはないし、 ;; そもそもまだレベルの低いプログラムしか書いたことがありませんが... でも、その後に学んだ関数型言語の知識も大きいかも知れません。 やはり純粋な関数型言語は(マルチパラダイムのLispと違って)前面に押し出す特徴があるから、 「ここは関数的に書くべきだな」という感覚とか、イディオムなんかはそっちの方が学びやすかったです。 ;; もちろん、マルチパラダイムで柔軟なLispだからこそそういう知識が役立つんですが。 Grahamの新しいエッセイ、考えさせられることが多くてためになります。 ttp://www.shiro.dreamhost.com/scheme/trans/gh-j.html > 私が思い付く全ての偉大なプログラマのうち、進んでJavaを書いている人物は一人しかいない。 Goslingのことかぁぁぁ!?
931 名前:デフォルトの名無しさん mailto:sage [04/07/31 02:01] Steele でしょ。Richard P Gabriel も Sun に居たと思ったけど。
932 名前:デフォルトの名無しさん [04/07/31 06:03] XPでSLIMWを使おうとするとどういう方法がありますか? いろいろやったができないよ。
933 名前:デフォルトの名無しさん mailto:sage [04/07/31 09:14] >>930 エッセイっていうか、OSCON 2004 の基調講演だよね。 言ってることはわからなくもないけど、ちょっと電波飛ばしてねーか? と 思ってしまった俺は、きっとハッカーではないのだろう。
934 名前:デフォルトの名無しさん mailto:sage [04/07/31 11:12] >ちょっと電波飛ばしてねーか? どの辺?
935 名前:デフォルトの名無しさん mailto:sage [04/07/31 11:59] >>934 すごいハッカーになることが、人生の勝者であるかのように語っているところ。 確かにそういう面もあるかもしれないけど、そのハッカーってのはかなり特殊な 人種なわけで、彼等の特殊性は as is のまま、周囲が彼等に合わせるべき、 理解すべきとしている論調がちょっとね。 > 実際、CobolやJavaが最も人気ある言語だというような統計は誤解のもとでさえ > ある。 何が最高の道具かを知りたいなら、我々が見なければならないのは、 > ハッカーが自由に選べる際に、つまり、彼ら自身のプロジェクトに、 何を選ぶ > かということだ。この質問をしてみれば、既にオープンソースのOSが 圧倒的 > なシェアを占めており、一番の言語はたぶんPerlだということに気づくだろう。 こんな馬鹿げたことを書いてるのにもゲンナリした。最高だろうが最低だろうが、 道具は道具に過ぎない。問題は何を作るか、だと思うんだけどねぇ...
936 名前:デフォルトの名無しさん mailto:sage [04/07/31 12:17] 一番のOS アセンブラで作った自作のOS 一番の言語 アセンブラで作った自作の言語
937 名前:デフォルトの名無しさん mailto:sage [04/07/31 12:24] 「うんうん、そうだ」と自己満足的に共感するか、 「あっそう」で済ませてほっぽりだすかの 二通りしか感想のでてこない文章だな。
938 名前:デフォルトの名無しさん mailto:sage [04/07/31 12:34] >>935 論点そのものを否定してどうするw ま、言いたいことは分かるけどね。 だいたいハッカーってのは 「手段のためなら目的を選ばないという、どうしようもない奴」 が多いからな。何を作るかなんて眼中に無いのよ。 強いて言えば「手段=道具」を作りてえなとなるわけで。
939 名前:デフォルトの名無しさん mailto:sage [04/07/31 12:37] 人気のない言語を使ってるor作ってる奴の自己弁護なだけでは?
940 名前:デフォルトの名無しさん mailto:sage [04/07/31 13:18] 手段の目的化、それ即ち趣味なり
941 名前:デフォルトの名無しさん mailto:sage [04/07/31 13:27] >>935 >すごいハッカーになることが、人生の勝者であるかのように語っているところ。 実際Paul Grahamにとってはそうなのだと思う。 ttp://www.blog.net/nerds-jp.htm ここでもオタクのが偉い、みたいなこと言ってるけど、実際アメリカに住んでたら、 そういう価値観持って胸張ってないとやってけなかったのかも。
942 名前:デフォルトの名無しさん [04/07/31 14:30] >>938 そうだよね。それでも喰って行けるくらい飛び抜けていればいいんじゃない? Lispじゃ喰って行けないっていうけど、実際はshiroさんや黒田さんみたいに仕事にでき ちゃう人もいる。大学勤めならどんな言語をつかって研究しようが教えようが誰にも文句は 言われない(言わせない)しね。ふふ。
943 名前:デフォルトの名無しさん mailto:sage [04/07/31 16:58] >>942 研究の方はまだ大丈夫だけど、教える方は就職率という錦の御旗で…。
944 名前:デフォルトの名無しさん mailto:sage [04/07/31 16:59] >>942 >誰にも文句は言われない(言わせない)しね。 そしてある日、それは単なる自分の思い過ごしだった事に 気づかされる日が来るんだよね。ふふ。
945 名前:デフォルトの名無しさん mailto:sage [04/07/31 21:38] お、日本でも出版されるみたいだね。 >なお、書籍版"Hackers and Painters"の邦訳はオーム社より刊行予定。 >>944 気付かなかった振りではダメですか?
946 名前:デフォルトの名無しさん mailto:sage [04/07/31 22:21] >>945 まじっすか! なんだよshiroさん。あなうんすshiroよ。
947 名前:デフォルトの名無しさん [04/07/31 23:51] CMU CL の19aリリースのアナウンスってないのでしょうか? ディレクトリ下にブツはあるようですが・・・ ftp://ftp.common-lisp.net/pub/project/cmucl/release/19a/
948 名前:デフォルトの名無しさん mailto:sage [04/08/01 22:28] なぜ S 山 euske というお方の日記には,変わった用語が使われているのでしょうか. Lisp で悟るとあのような日記を自然と書くことができますか? コンピュータサイエンスの教授にはなぜあのような人が多いのでしょうか?
949 名前:デフォルトの名無しさん mailto:sage [04/08/01 22:41] >>947 7/31 ころアナウンスするよって書いてあった気がするけど、まだみたいね。 バイナリはそれでオケなはず。
950 名前:デフォルトの名無しさん mailto:sage [04/08/02 10:10] AS/400なんて、モノとしては非常に素晴らしい製品なのに、 なぜ悪い道具というレッテルを貼られてしまっているのだろう。 単に、自分たちが慣れ親しんでいるUNIX Like OSと似ていないから というだけ?
951 名前:デフォルトの名無しさん mailto:sage [04/08/02 10:49] www.cons.org/cmucl/news/index.html にアナウンス出てますね。
952 名前:デフォルトの名無しさん mailto:sage [04/08/02 11:07] もうすぐ次スレか。 【普通のやつらの】CommonLisp Scheme Part11【上を逝け】 でどうよ。
953 名前:デフォルトの名無しさん mailto:sage [04/08/02 11:20] 変なコメント付けて厨臭くしなくてもいいよ
954 名前:デフォルトの名無しさん mailto:sage [04/08/02 12:29] >>952 かっこ悪すぎ。
955 名前:デフォルトの名無しさん mailto:sage [04/08/02 12:39] >>950 自分で底の底までいじれないからじゃない? AS/400の中の人になれば別なんだろうけどさ。
956 名前:デフォルトの名無しさん mailto:sage [04/08/02 16:19] MacもPCに比べればクローズドだよな。 やっぱりあれだよ。70年代からコンピュータに どっぷり浸かってた人ならIBMをよく思うのは無理だろ。 またIBMがLinux担いだところで、その魂胆の方が先に見えて しまうんだろうな。
957 名前:デフォルトの名無しさん mailto:sage [04/08/02 20:10] 【普通のスレの】CommonLisp Scheme Part11【上を逝け】
958 名前:デフォルトの名無しさん mailto:sage [04/08/02 20:39] Lisp Scheme Part11
959 名前:デフォルトの名無しさん mailto:sage [04/08/02 21:36] >>957 かっこ悪すぎ。
960 名前:デフォルトの名無しさん mailto:sage [04/08/02 22:00] 11traP emehcS psiL
961 名前:デフォルトの名無しさん mailto:sage [04/08/02 22:52] (thread '((common lisp) (scheme)) :part 11)
962 名前:デフォルトの名無しさん mailto:sage [04/08/02 22:54] >>961 あー、先を越されてしまったが、もっとシンプルに '(Lisp Scheme Part11)
963 名前:デフォルトの名無しさん mailto:sage [04/08/02 22:55] common-lisp-&-scheme-part-11
964 名前:デフォルトの名無しさん mailto:sage [04/08/02 22:58] Revised^11 Thread on Scheme
965 名前:デフォルトの名無しさん mailto:sage [04/08/02 22:58] '(thread (Lisp . Scheme) (part . 11))
966 名前:デフォルトの名無しさん mailto:sage [04/08/02 23:14] CommonLisp Scheme Part11でいいんじゃないの?スレタイは式じゃなくて文字列じゃん。 ;;「キターっ」て、>>947 のこと?
967 名前:デフォルトの名無しさん mailto:sage [04/08/02 23:36] 次スレ CommonLisp Scheme Part11 pc5.2ch.net/test/read.cgi/tech/1091456033/
968 名前:デフォルトの名無しさん mailto:sage [04/08/03 00:56] clisp の win32 版を,日本語ディレクトリ以下で使う方法を教えてくだされ. ext:cd とか load ができないのだよ. OS は WindozeXP.いちおう lisp で書いとけば 環境に依存しないだろうと思ったのに, windoze で日本語ユーザー名で My DQNments しか使えないので...
969 名前:デフォルトの名無しさん mailto:sage [04/08/03 13:21] >>968 文字コードの設定はちゃんとしている?
970 名前:デフォルトの名無しさん mailto:sage [04/08/04 09:32] Graham氏はJavaに対して対抗意識剥き出しにしてるが、 CommonLispやSchemeの普及を阻害してるのは、本当は PerlやPythonだと思う。現代版Cobolに対してLispの 優位性をアピールすることにどんだけの意味があるのか。
971 名前:デフォルトの名無しさん mailto:sage [04/08/04 09:47] >>970 それがねぇ。Scheme教えようとしても、「就職に役立つのはJava」なんて 言われちゃう世の中なんですよ。
972 名前:デフォルトの名無しさん mailto:sage [04/08/04 23:35] >>971 最強の言語というのがあって,それは使っている人が多いはずで, それさえ身に付ければ十分,という伝説のせいでしょうか.
973 名前:デフォルトの名無しさん mailto:sage [04/08/05 00:34] Javaは平均的プログラマー向けにデザインされた言語。 そうゴスたんが言ってたよ。
974 名前:デフォルトの名無しさん mailto:sage [04/08/05 00:58] groups.google.co.jp/groups?dq=&group=comp.lang.lisp&selm=mkhdrk2jtk.fsf%40*n*o*s*p*a*m*franz.com Franz のセミナーのやつだよね。
975 名前:デフォルトの名無しさん mailto:sage [04/08/05 23:28] >>974 すげ…書いてあることがサッパリ理解できんが 何か格好良い事だけはわかった これが Lisper の考えるレベルかしら…おれには無理かしら
976 名前:デフォルトの名無しさん mailto:sage [04/08/06 22:40] UFFI が clisp に対応していないとは,一体どういうことかね?
977 名前:デフォルトの名無しさん mailto:sage [04/08/07 01:42] >>971 就職の面接で「Scheme使えますよ」と言ってみたら 「Lispみたいなやつだっけ?」ぐらいの反応しか帰ってきませんでした。orz
978 名前:デフォルトの名無しさん mailto:sage [04/08/07 10:22] >>977 その答えが返ってくるだけまだよい方では・・・
979 名前:デフォルトの名無しさん mailto:sage [04/08/07 13:34] >>976 「clispのFFIがUFFIよりもっと抽象化されているから」という答えをclispの 作者がしていました。 が、clisp と UFFI でぐぐるとたしかpascalさんという人が書きかけたclisp用UFFIが あったとおもう。
980 名前:デフォルトの名無しさん mailto:sage [04/08/07 14:48] >>979 ( ・∀・)つ〃∩ヘェーヘェーヘェー.サンクスコ.
981 名前:デフォルトの名無しさん mailto:sage [04/08/08 22:45] 埋まる前に落ちそうだね。 (call/cc (lambda (c) (pc5.2ch.net/test/read.cgi/tech/1091456033 c)))
982 名前:デフォルトの名無しさん mailto:sage [04/08/09 00:33] むしろ新スレの方が落ちそう。
983 名前:デフォルトの名無しさん mailto:sage [04/08/09 14:20] 埋め質問。 Scheme(Gauche)でCのsizeof相当の処理は可能ですか? 表面的にはchar/short/long/多倍長の違いが見えないので難しそうですが。
984 名前:デフォルトの名無しさん mailto:sage [04/08/09 19:32] 何の size のことなのか? それをどう使おうというのか?
985 名前:デフォルトの名無しさん mailto:sage [04/08/09 23:51] >>983 意味と意図がボクもよく分からない。 とりあえず Gauche での扱いを説明しておくと、文字と小さな整数は即値。 文字は wchar だと思っとけばいい。小さな整数の範囲は、long の範囲より 若干狭い。 昔の scheme では、文字が整数だったけど、今は別。 (char? #\a) => #t (char? 100) => #f (char? 1000000000) => #f (fixnum? #\a) => #f (fixnum? 100) => #t (fixnum? 1000000000) => #f (exact? #\a) => #f (exact? 100) => #t (exact? 1000000000) => #t もしかして、ユニフォームベクタ使いたいのかな?
986 名前:デフォルトの名無しさん mailto:sage [04/08/10 04:23] ユニフォームベクタで解決しました。 ttp://www.shiro.dreamhost.com/scheme/gauche/man/gauche-refj_207.html#SEC230 もろにこの部分。すんません、次からはちゃんとマニュアル内探します。
987 名前:968 mailto:sage [04/08/10 22:55] >>969 文字コードのちゃんとした設定というのが分かりません. とりあえず思いついたコーディング名を引数にしたりしました. 自宅のマシンではないのでメモがないんです. lisp がないと私はただの豚なんです教えてくださいぃぃ.m(__)m
988 名前:デフォルトの名無しさん mailto:sage [04/08/10 23:31] >>987 ttp://clisp.cons.org/impnotes.html#encoding このへんでしょうか。
989 名前:デフォルトの名無しさん mailto:sage [04/08/11 13:13] Windows cygwin版clisp 2.31での話。 clisp -E ASCII は認識されて*default-file-encoding*, *pathname-encoding*, などが、デフォルトの#<ENCODING CHARSET:ISO-8859-1 :DOS>から#<ENCODING CHARSET:ASCII :DOS>に 変更されました。 しかし clisp -E ja_JP.SJIS は何の効果もないもよう。 トップレベルで (setq shift-jis (make-encoding :charset 'charset:shift-jis :line-terminator :dos)) (setq *default-file-encoding* shift-jis) (setq *pathname-encoding* shift-jis) (setq *terminal-encoding* shift-jis) として、 (ext:cd "/cygdrive/c/マイ ミュージック") とすると、 *** - PARSE-NAMESTRING: syntax error in filename "/cygdrive/c/マイ ミュ/" at position 12 とエラー。 (parse-namestring "マイ ミュージック")とすると *** - PARSE-NAMESTRING: syntax error in filename "マイ ミュージック" at position 0 とエラー。 "マイ ミュージック"はちゃんと9文字として認識されています。 また、(setq *terminal-encoding* shift-jis)をすると、 (format t "~S~%" 'a) => ~S~% というバグが発現しました。 イヤ〜ンな感じ。俺のやり方がタコなだけだといいんだけど。