CommonLisp Scheme Part10
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
NGNGPart1: http://piza2.2ch.net/tech/kako/987/987169286.html
Part2: http://pc.2ch.net/test/read.cgi/tech/1002584344/
Part3: http://pc.2ch.net/test/read.cgi/tech/1008220265/
Part4: http://pc.2ch.net/test/read.cgi/tech/1016211619/
Part5: http://pc3.2ch.net/test/read.cgi/tech/1023091882/
Part6: http://pc3.2ch.net/test/read.cgi/tech/1031560687/
Part7: http://ruku.qp.tc/dat2ch/0311/20/1042167213.html
Part8: http://pc2.2ch.net/test/read.cgi/tech/1058263391/
Part9: http://pc2.2ch.net/test/read.cgi/tech/1069594582/
前、"Schemeスレはあるのになんでcommonlispスレはないの?"とか言って別のスレを建てた大馬鹿者がいたので、
標題にCommonLispと付けておきました。
Lispの話題でCommonLisp,Scheme,EmacsLisp(専用スレッドがある)以外のものが出ることはこのスレの歴史上でも
稀なので問題はほとんどないかと思います。
関連リンクは>>2-10あたり
0002デフォルトの名無しさん
NGNG日本Lispユーザ会(日本語)
http://jp.franz.com/jlug/index.html
ここにかなりの情報があります。
http://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の入門サイト。
0003デフォルトの名無しさん
NGNGhttp://buri.sfc.keio.ac.jp/lisp/menu.html
Practical Scheme(日本語)
ttp://www.shiro.dreamhost.com/scheme/index-j.html
「普通のやつらの上を行け」など、興味深い文書を沢山翻訳されてます。
(Gaucheという完成度の高いscheme処理系作者さんのページでもあります。)
Scheme Hash(英語)
http://okmij.org/ftp/Scheme/index.html
S式でXMLを使える様にするSXMLなど
John McCarthy's Home Page
http://www-formal.stanford.edu/jmc/
LISPの生みの親、J・マッカーシーのページだそうです。
Association of Lisp Users
http://www.alu.org/alu/home
米国のLispユーザ会
0004デフォルトの名無しさん
NGNGSICP(英語)
http://mitpress.mit.edu/sicp/full-text/book/book.html
「計算機プログラムの構造と解釈」の原書です。
全てオンラインで読めます。
計算機プログラムの構造と解釈 第二版 (snip) に関連するホームページ
http://www.ipl.t.u-tokyo.ac.jp/sicp/
SICPの回答集
http://www.melt.kyutech.ac.jp/~gogogo/sicp_ex/
http://pluto.aurorasd.co.jp/~mkama/sicp/
http://www.ipl.t.u-tokyo.ac.jp/sicp/solution.root.html
http://www.sampou.org/scheme/sicp/answer/
0005デフォルトの名無しさん
NGNGSchemeで書かれた正規表現ライブラリ
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
http://www.iro.umontreal.ca/~dube/
mini-schemeよりも小さい(?)bytecode変換系
Lisp 言語処理系: CAMPUS LIsP, Lemon version
http://aten.aial.hiroshima-u.ac.jp/~kakugawa/clisp/index-ja.shtml
Cコードによるわずか1000行の実装
Cliki
http://www.cliki.net/index
CommonLispのプログラムがたくさん紹介されているのでここを当たるべし。
0006デフォルトの名無しさん
NGNGhttp://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
http://home.adelphi.edu/~sbloch/class/272/tclos/tutorial.shtml
Schemix
http://www.abstractnonsense.com/schemix/
Linuxのkernelへのパッチで、/dev/として扱えるTinyScheme
Bibliography of Scheme-related Research
http://library.readscheme.org/
Scheme関連の論文リンク集
0007デフォルトの名無しさん
NGNG過去スレ
Part1: http://piza2.2ch.net/tech/kako/987/987169286.html
Part2: http://pc.2ch.net/tech/kako/1002/10025/1002584344.html
Part3: http://pc.2ch.net/tech/kako/1008/10082/1008220265.html
Part4: http://pc.2ch.net/tech/kako/1016/10162/1016211619.html
Part5: http://pc3.2ch.net/tech/kako/1023/10230/1023091882.html
Part6: http://pc3.2ch.net/tech/kako/1031/10315/1031560687.html
Part7: http://ruku.qp.tc/dat2ch/0311/20/1042167213.html
Part8: http://pc2.2ch.net/tech/kako/1058/10582/1058263391.html
Part9: http://pc2.2ch.net/test/read.cgi/tech/1069594582/
0008デフォルトの名無しさん
NGNGawkで書かれたわずか500行のLispインタプリタ
awklispを読めばLispが理解できる
ttp://www.accesscom.com/~darius/
Emacs Lisp 2
http://pc2.2ch.net/test/read.cgi/tech/1068467385/
* Hotdog Scheme http://rover.cs.nwu.edu/~scheme/
MS が金出してたみたい
* Bigloo http://www-sop.inria.fr/mimosa/fp/Bigloo/
CLR 用のコードを吐けるようになったらしい
継続
なんでも継続
ttp://www.shiro.dreamhost.com/scheme/docs/cont-j.html
Schemeへの道:継続
http://www.stdio.h.kyoto-u.ac.jp/~hioki/gairon-enshuu/SchemeNotes/continuation.html
継続の使い方
http://www.geocities.co.jp/SiliconValley-PaloAlto/7043/index.html#continuation
継続の使用法
http://www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/block.html
CPS(継続渡しスタイル)の説明
http://www.csl.sony.co.jp/person/masui/Forum/data/20011215023622/
0009デフォルトの名無しさん
NGNG>>7
君もやっちまったか(w
0010デフォルトの名無しさん
NGNGhttp://www.sampou.org/scheme/t-y-scheme/t-y-scheme-Z-H-1.html
Schemeの教科書
よろずや
http://www.geocities.co.jp/SiliconValley-SanJose/7474/
lispの実用的な情報が色々。
0011デフォルトの名無しさん
NGNGttp://www.paulgraham.com/arc.html
0012デフォルトの名無しさん
NGNG∧_∧
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >_∧∩
_/し' //. V`Д´)/ ←11
(_フ彡 /
0013デフォルトの名無しさん
NGNGCLtL2: Common Lisp the Language 2nd edition
http://www-2.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html
CLHS: Common Lisp Hyper Spec
http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/FrontMatter/Chapter-Index.html
R5RS: Revised(5) Scheme(ja)
http://www.sci.toyama-u.ac.jp/~iwao/Scheme/r5rsj/html/r5rsj.html
便利な情報リソース)
The Common Lisp Cookbook: いわゆる Cookbook
http://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 処理系
http://tinyscheme.sourceforge.net/minischeme.tar.gz
TinyScheme: Minischeme を色々弄ったもの
http://tinyscheme.sourceforge.net/
KI-Scheme, AM-Scheme, etc...
http://www.nifty.com/download/dos/prog/lisp/
LispMe: Palm 上で動く Scheme 処理系. これも SECD virtual machine.
 http://www.lispme.de/lispme/
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNGLISP Scheme http://pc2.2ch.net/test/read.cgi/tech/987169286/l50
LISP Scheme Part2 http://pc2.2ch.net/test/read.cgi/tech/1002584344/l50
LISP Scheme Part3 http://pc2.2ch.net/test/read.cgi/tech/1008220265/l50
LISP Scheme Part4 http://pc2.2ch.net/test/read.cgi/tech/1016211619/l50
LISP Scheme Part5 http://pc2.2ch.net/test/read.cgi/tech/1023091882/l50
LISP Scheme Part6 http://pc2.2ch.net/test/read.cgi/tech/1031560687/l50
LISP Scheme Part7 http://pc2.2ch.net/test/read.cgi/tech/1042167213/l50
LISP Scheme Part8 http://pc2.2ch.net/test/read.cgi/tech/1058263391/l50
LISP Scheme Part9 http://pc2.2ch.net/test/read.cgi/tech/1069594582/l50
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNGいい加減にしてください。
0018デフォルトの名無しさん
NGNGまず、LISPスレ見てる様な奴は、ほとんどが他のLISP系スレも
同時に見てる、という事を忘れないでくれ。
ここのスレタイが`CommonLISP'となった以上、話題提供したり
自分で盛り立てたりして維持できると思うのなら立てるのは自由だ。
本当に立てるならスレタイを「マイナーLISP隔離スレ」みたいな感じに
してくれると再利用しやすいと思う。
まあよく考えれ。
0019デフォルトの名無しさん
NGNGゆるし、う、うご、、、ごめんなさい
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG1/30のレス 41
1/31のレス 24
2/01のレス 89
驚異的だなw
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNGCL的にはこっちかとw
ttp://cgi.at.infoseek.co.jp/lambda_list/cgi-bin/lambda.cgi?name=CommonLisp#7
0024デフォルトの名無しさん
NGNGWeblog って要するに日記ツールでしょ? CLISP って遅いって聞くし。
>>22 の言うように WiLiKi みたいな Wiki のほうがまとめとか書き込めて
嬉しいんじゃないかな。でも Shiro さんとことかに書くのはマズイ予感。
2ch 色がついたら WiLiKi とかのイメージダウンになるかもしれないし…。
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNG大馬鹿者はおまえ
0027デフォルトの名無しさん
NGNG2ch ねらーが数人とかならともかく,スレのまとめとか FAQ とかあるのが
少々か?世の中には 2ch 嫌いな人も居るわけで,そーゆう人が引いてしま
うんじゃないかとちょっと心配.
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNGpython, ruby が動かせるところも当たり前になってきましたね.
# もちろん重いのは禁止ですが.
lisp も...
0033デフォルトの名無しさん
NGNG構わないって話じゃないの?
>>32 そういう無料ホスティングサービスあるんだ。Wikiも動かせるよね、重そうじゃないし。
>>31
Perlで書かれたCLじゃなくて、Common LispをPerlに直すトランスレータの話題は
最近、comp.lang.lispであったな。
0034デフォルトの名無しさん
NGNGweblog っても /(weblog 10) ← 10 日数分の日記を表示するコマンド
みたいなのがあるだけで、基本的には Wiki だよ。データをメモリに
読みこんで動作するらしいし、ローカルで動かす分には CLISP でも
全然遅さは感じない。しかしリンクが _(Link) みたいな非標準な形式だし
HTML の生成機能とか不要な機能もついてるし、みんなで使う Wiki にはちょとねぇ。
0035flatline@Vim%Chalice ◆r6EONKKhcc
NGNGいつまで存在するか保証はしません
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNGonlisp.pdf頂きました。アリガトソ
0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNGのは、↓にある様な事が出来るという事ですよね?
ttp://www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/actor/actor.html
メッセージ送信と聞くと、オブジェクト指向言語を思い浮かべるのですが、何らかの
繋がりがあるのでしょうか。Act1 の資料を探したのですが、見つかりませんでした。
0040デフォルトの名無しさん
NGNG004125
NGNGありがとうごさいます。
>>25は初心者スレとの勘違いした上に文章削って、
「やっぱ辞めとこ」って"キャンセルボタン"を押した
つもりが"OK"ボタンだったりする2重の誤射です。
おちゅーしゃのお気に入りの中に、旧スレとここと初心者が
並んでてついうっかりというか…。
lisp初心者どころかプログラム初心者ですが利用させて
いただきます。といってQ&Aを拾うことくらいで、
読ませて頂くことがほとんどだと思いますが。
0042デフォルトの名無しさん
NGNGちょうどbitの掲載号を読み返してた所だったりw
教えてくれてありが�d!
0043デフォルトの名無しさん
NGNGいいだしっぺにやってもらおうじゃないか。
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG> ttp://www.komaba.utmc.or.jp/~flatline/wiliki.cgi
> いつまで存在するか保証はしません
ありがとう。内容がたまってきたら、定期的にバックアップをどっかに
おいておいてくれませんか。バックアップの負担を分散しておけば、
何かあったときに、復旧できる可能性が増すでしょ。
0048デフォルトの名無しさん
NGNG無理にやってくれなくてもいいけど。
0049デフォルトの名無しさん
NGNGにすこし書いときました。Wikiは初めてなので、もっといいフォーマット
があるかも。
0050デフォルトの名無しさん
NGNGどっか CGI の使える無料鯖とかでミラーできるかもしれないしね。
閲覧だけならそっちを勧めれば本家に負荷かけずに済んでウマー
0051デフォルトの名無しさん
NGNG> どっか CGI の使える無料鯖とかでミラーできるかもしれないしね。
ミラーとなると... Wilikiってschemeで書かれているんだよね?
schemeを使わせてくれる無料サーバがあるかな?
もしかして、Wilikiって文法レベルで他の言語処理系で実装されている
Wikiシステムと互換性があるのかな?
0052デフォルトの名無しさん
NGNG基本的な構文くらいなら Perl で作っても比較的簡単でしょ。マクロは厳しいかもし
れないけど。まー最悪 HTML にしちゃうって手もあるわけで。
# でもファイルのアップロードとかできる Perl 製 Wiki も捨てがたいなー。WiLiKi
# だとスレのアーカイブをウプするのとか管理者にやってもらわなきゃいけないよね?
0053デフォルトの名無しさん
NGNGといっても項目だけなので内容はどなたか宜しう。
既存のもの(toyama-uとか本家WiLiKiとか)と同じのを作ってもしょうがないので
ここでの質問などを纏めてFAQなどを充実できたらいいなあ。
0054デフォルトの名無しさん
NGNGcvs -d :pserver:[email protected]:/home/anoncvs/CVS-cmucl login
-> unknown host
となるので、MLを見てどうやらマシンが不調なのか別のサーバに切り替わったらしい。
cvs2.cons.orgかtrumpet.cons.orgが使えるらしいので
cvs -d :pserver:[email protected]:/home/CVS-cmucl login
cvs -d :pserver:[email protected]:/home/CVS-cmucl login
とやってもunknown hostとなる。MLには新サーバのIPが207.22.2.3となっていたので
cvs -d :pserver:[email protected]:/home/CVS-cmucl login
とやったが、これは永遠と待たされてタイムアウト。
誰かCVSにアクセスできてる御仁はおらぬか。
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG> となるので、MLを見てどうやらマシンが不調なのか別のサーバに切り替わったらしい。
ほんとに ML 読んだのか? 切り替わっ *た* と? とりあえずマターリ待つかもっかい ML 読み直すか汁。
0057デフォルトの名無しさん
NGNG"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:[email protected]:/home/CVS-cmucl login
とやってみたがタイムアウト。cmuclのwebの例に倣って
cvs -d :pserver:[email protected]:/home/anoncvs/CVS-cmucl login
としてもやはりタイムアウト。
Toy氏がupdateに15分かかる云々と言っているが、loginに5分以上かかるということはあるまい
と考えて、思案に暮れている次第。
その他、
http://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)
なのでもはや私には理解不能ということでここに助けを求めました。
0058デフォルトの名無しさん
NGNGマターリ待てと逝っているだろーが。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.
0059デフォルトの名無しさん
NGNGいえ、それを聞いて理解しました。
cvs-commitの日付を読み違えていて、21日以降cvsへのアクセスがないことに気付きませんでした。スマソ。
0060デフォルトの名無しさん
NGNGでもバグがあった為、バグフィックス版0.7.4.1を
だすそうです。
0061flatline@Vim%Chalice ◆r6EONKKhcc
NGNG現在,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の主戦場ですよ.みなさん,ぜひぜひがんばって下さいよ.
0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNGGosling EmacsのMock Lispといい、Javaといい。
Gosling EmacsはGNU Emacsに負けたけど、Javaはどうなるかな。
Sunが潰れたら、意外と簡単に逝ってしまいそうな気もする。
それとも、もう臨界値をこえて普及したから簡単には死なない?
プログラミングしやすさで考えると、C++ならJavaでいいやって
気もするけど、それならC#のほうがもっと気持いい?
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNGああ、80年代は遠くなりにけり。
0066デフォルトの名無しさん
NGNGよな.他の言語の良い面は積極的に取り入れるべきだと思うし.(Java だとパッケー
ジシステムとか豊富なライブラリとか?).あと Common Lisp は完全に動的じゃな
いぞ.型とか型とか型とか.オプショナルな型システム大好きな漏れにはこれがツボ
なわけだが(必須だとウザーだけど無いと物足りない).
Web 関連とかってどうなのかねぇ? Common Lisp だと Aserve + WebAction だろう
けど趣味で遊べるようなもんでもないしねぇ.もっと気軽にあそべる環境がないと人
気でないと思われ.Portable Aserve とかもスレッド使える実装ってフリーじゃあん
まりないし.IMHO も慣れてないと使うの大変だろうし.他になんかあったっけ?
0067デフォルトの名無しさん
NGNGcl-httpを解説してた本があったな。
0068デフォルトの名無しさん
NGNGcl-http が気軽に遊べるかどうかは微妙だが……
0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNGどの言語がどの言語に対してどんな場面で、なにがどういうふうに勝っているのか
を分析しなくては、言語が発展しないのでは? ただの印象批評で、カッタ、マケタ、ワショーイ、
ではは面白くないけど。
まぁ、俺は単純に言語の栄枯盛衰をみているだけでも楽しいけどね。
Common Lispの型システムよりも、より動的な型システムを持つ言語を教えて
くれないかな?
>>67
cl-httpってライセンスが曖昧だった気がする。大統領関連の公式ウェブサイト
の一部でcl-httpが使われていた(いる?)って話があったね。
007166
NGNG他の言語の良い面は見習うべきだと言ってるつもりなんだけど ……例えば Java だ
とインターフェースに対してプログラムするスタイルとか CLOS にインタフェースを
MOP で組み込んでみればいいわけで.
より動的な型システムってのはどーゆうのかよくわかりません.物分りが悪くてスマソ
0072デフォルトの名無しさん
NGNG> 他の言語の良い面は見習うべきだと言ってるつもりなんだけど
うまくできるのなら賛成。
> 例えば Java だ
> とインターフェースに対してプログラムするスタイルとか CLOS にインタフェースを
> MOP で組み込んでみればいいわけで.
Javaのインターフェイスというと、メソッドのシグナチャの一群をインターフェイスと
呼んで一まとめにしてあつかうやつだよね。これって、CLOSだと多重継承とGeneric関数で
実現できるのでは?
>>66
> あと Common Lisp は完全に動的じゃな
> いぞ.型とか型とか型とか.オプショナルな型システム大好きな漏れにはこれがツボ
> なわけだが(必須だとウザーだけど無いと物足りない).
上の記述を見て、66さんが好きな型システムを実現している言語ってどんなんかなと
思ったわけ。CLより、もっと「ユルイ」型システムかなとか。
007366
NGNG漏れは
Common Lisp にも(オプショナルで)静的な型がある == "完全に動的" ってわけじゃない
というつもりですた.で,これが好きだと言ってるつもりだったんです.
作るだけなら動的だけでも良いけど動かす時には性能が必要なとこもあるじゃん.
0074デフォルトの名無しさん
NGNGif defined(FreeBSD) をはずしてみました。
一見直ってるけどいいのかな。
FAQ?
0075デフォルトの名無しさん
NGNGWiliki のデータベースって他の環境でも使いまわせるのかな?
とりあえずダウンロード可能なところに置いて頂けると嬉しいなぁ。
0076デフォルトの名無しさん
NGNG0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNG恐れ入ります。
FreeBSDで make したらなんか新しいの取りに行ったと思ったら。
0079デフォルトの名無しさん
NGNGflatline 氏のサイト
http://user.ecc.u-tokyo.ac.jp/~g340299/
Paul Graham『On Lisp』邦訳
http://user.ecc.u-tokyo.ac.jp/~g340299/onlisp_j.pdf
http://user.ecc.u-tokyo.ac.jp/~g340299/onlisp_j.tex
(最終更新日:2004.02.01 翻訳済み:18章/全25章)
おまけ。PDF から引用。
> 翻訳に手を付けたのは2003 年の始め位だったのですがね.
> 受験勉強から逃避していたあの頃からもう1 年以上経ってしまったのか.
受験生のうちからこんな高水準の翻訳を…。
# スレ違いだが、Vim を Scheme ベースで作り直してくれる人がいたら
# 現人神として終生、たたえられると思う。
0080デフォルトの名無しさん
NGNGhttp://www.pmsf.de/personal/darwin/
http://article.gmane.org/gmane.lisp.cmucl.devel/4901
0081デフォルトの名無しさん
NGNGsparcあるから既にPowerPCもあるかと思ったよ。
じゃあ残るはWindows(←なぜかportできない)だけだね。
0082デフォルトの名無しさん
NGNG"(←だれも port しない)" の間違いだろう。何故か、なんてのは自明だろ。
主要開発者がだれも Windows 使ってないから。
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNGスゲー面倒そう
処理系2つ作り置きするようなもんだろ?
0086デフォルトの名無しさん
NGNGというのは冗談として、そのへんは勘弁してください。そんなに珍しい事でもないでしょう?
0087デフォルトの名無しさん
NGNGcygwinのライセンスが多分GPL系ということで、cmuclの大部分がパブリックドメインであることを
考えると、ライセンス的に縛りがきつくなるね、cygwin使うと。
cmuclのメーリングリストへ、windowsポートに金だすよと言ってた人がいたけど、どうしたかな。
0088デフォルトの名無しさん
NGNG雇うとか汁。どうしても欲しければ仕事として頼むという手もある。pmai タンを一年
も雇ってフルタイムで移植してもらえば Win32 ネイティブで移植できるんじゃねーの。
0089デフォルトの名無しさん
NGNG「WindowsにPortしたいので金を払うからやってくれるLisper募集」
していました。それで、元のライセンス(パブリックドメイン)から変更したくないので、
cygwinは使わない方向で考えていると言っていました。俺の知る限り、1人がやりたいと
名乗りをあげていました。あとSBCLの方へいってみれば、とも言われていました。
0090デフォルトの名無しさん
NGNGこれが結構色々な面で障壁になってるよね。
0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNG「元のライセンスを保つためには,伝播性をもつライセンスのものと組み合わせられない」
ということなら,GPLなどの伝播性が問題ということでしょう.
ところで私はGPLの要求は真っ当なものだと思う.
この辺の悩みは健全な開発に必要不可欠なコストでしょう.
0093デフォルトの名無しさん
NGNGこの意味が分からないとしたら、>>91はオープンソースライセンスをほとんど知らないんだろうね。
0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNG煽りは他所でやってくれ
0096デフォルトの名無しさん
NGNGttp://www.kahua.org/
0097デフォルトの名無しさん
NGNGで?低脳な漏れにもわかるように、もちっと紹介してくれょぅ。
ドキュメント読んでも利点がよくわからん。どこがどうすごいの?
0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNG貴君はまずこの辺から。
http://www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi?Scheme%3aCPS
0100デフォルトの名無しさん
NGNG> 制限がないから障壁なんじゃないか。
> この意味が分からないとしたら、>>91はオープンソースライセンスをほとんど知らないんだろうね。
意味が分かりません。障壁とはなんですか? 具体例をあげていただけますか?
0101デフォルトの名無しさん
NGNGググったらそれらしいのが出てきたけど、いまいち手がかりが
つかめず…
0102デフォルトの名無しさん
NGNGCOM/ActiveX なら DrScheme (MysterX) がサポートしていますけど。
実際にはどういうことをやりたいのかな? ドキュメントへのオブジェクト埋め込みかな。
0103デフォルトの名無しさん
NGNG0104100
NGNG俺は、オープンソースライセンスやパブリックドメインについての議論を
多少なりともフォローしてきているつもりです。
今後、cmuclを使用する上で、何かライセンス的にハマるといやなので、
パブリックドメインに置かれているソフトウェアが誰にどういう面で
障壁になっているのか教えてくれませんか?
>>92
> 「元のライセンスを保つためには,伝播性をもつライセンスのものと組み合わせられない」
> ということなら,GPLなどの伝播性が問題ということでしょう.
どのように組み合わせるかによって、GPLが持つ伝播性の影響がでるかどうか変わるでしょう。
0105デフォルトの名無しさん
NGNGつまりこういうことじゃないかな。
GPL,LGPLみたいなライセンスが使われているライブラリ(など)は、
まったく制限のないパブリックドメインのソフトウェアには使えないと。
例えば、cmuclが(GPLだと反発する香具師が多そうなので)LGPLでリリースされていたとすると、
cmuclの中に取り込めるコードがどのくらいあるか考えてみるといい(何もLispのコードに限ったことじゃないわけだし)。
そして、それらが現状の(パブリックドメインの)cmuclに取り込められるかどうか、をね。
オープンソースの現状は
http://sourceforge.net/softwaremap/trove_list.php?form_cat=14
になっているわけで、GPL/LGPLキモイとか言っても、無視することはできないだろ。
0106デフォルトの名無しさん
NGNGまあ、パブリックドメインなら派生ソフトウェアは自由にライセンスを選べるわけだし、
気に入らないなら派生作ってGPLにしたっていい(保守する人が少なければ廃れるのがオチだけど)。
だから、そこまで深刻な問題でもないよな。
0107デフォルトの名無しさん
NGNGWinFXでWin32を順次置き換えていくらしいから、
もう既にWin32で囲い込みする必要もないだろうに。
サポートの手間がメンドクサイからまあ、なさそうだけど。
0108デフォルトの名無しさん
NGNG>まったく制限のないパブリックドメインのソフトウェアには使えないと。
まず、自分で使用するだけなら法的に問題なく使えるよね。
ソフトウェアを配布する場合でも、パブリックドメインになっている
ソフトウェアをGPL(など制限のきつい方)にライセンスしなおせば、
問題なく使えて配布できるでしょ?
> 例えば、cmuclが(GPLだと反発する香具師が多そうなので)LGPLでリリースされていたとすると、
> cmuclの中に取り込めるコードがどのくらいあるか考えてみるといい(何もLispのコードに限ったことじゃないわけだし)。
パブリックドメインにあるソフトウェアはいつでも、ライセンスを変更する自由があるという点が一つ。
これから、もしGPL, LGPLと互換性がないソフトウェア群が非常に多くなったときにどうするか?
FSFと一蓮托生でいいのか。
そこらへんを考えると、パブリックドメインにあるソフトウェアが障壁になっているという
言い方はあべこべだと思う。
0109デフォルトの名無しさん
NGNGパプリックドメインなソフトは、GPLの普及にとって障壁になっていると
考えられるんじゃないの?
0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNGもちろんそう。
これはデベロッパサイドの問題。すなわち>>89の"cygwinが使えない"とか他にも"readlineが使えない"とかね。
>ソフトウェアを配布する場合でも、パブリックドメインになっている
>ソフトウェアをGPL(など制限のきつい方)にライセンスしなおせば、
>問題なく使えて配布できるでしょ?
GPLでリリースしたらそれはGPLのソフトウェアであってパブリックドメインではないからそもそも前提が違う。
CMUCLプロジェクトがGPL/LGPLを選択するか否かという問題ではcygwinの件で既に蹴っているではないか。
>パブリックドメインにあるソフトウェアはいつでも、ライセンスを変更する自由があるという点が一つ。
これも上に同じ。ライセンスを変更したらそのソフトウェアはパブリックドメインではない。
そのソフトウェアがパブリックドメインを続ける限りはcygwinもreadlineも使えないし、"GPLに変えたら使えるじゃん"というのは"cmuclがパブリックドメインを続けようとしていて、その方針をとることによるcmuclプロジェクトへの制限"という話のすり替え。
>これから、もしGPL, LGPLと互換性がないソフトウェア群が非常に多くなったときにどうするか?
>FSFと一蓮托生でいいのか。
明らかなプロバガンダ。GPLでリリースしたソフトウェアはFSFに支配されるようになるみたいな言い方だな。
0112デフォルトの名無しさん
NGNGスマソそれは読んだ事あるんだ。で、ついに継続ベース Web アプリケーション鯖デターーー
とおもったんだけどサンプルとかあんま載ってないからさ。こうスゲーとわかるような
サンプルキボンヌ。
0113デフォルトの名無しさん
NGNGいいたいことが分かりにくいな。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に支配されるようになるみたいな言い方だな。
じゃあプロパガンダを消した残りの部分はどう?
0114101
NGNGありがとうございます!
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")
0115デフォルトの名無しさん
NGNGExcel とかに渡せるのかな?その辺が可能なら Dr. Scheme インスコしてみようかな.
0116デフォルトの名無しさん
NGNG0. 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でも何でもいいからライセンス付けてくれれば善意の第三者ぶれる
ので少しは安心。
# あ〜、不安になってきた。明日勤務先の規定調べないと。確か委託研究以外
# はコピーライト俺でいいはずなんだけど。
0117デフォルトの名無しさん
NGNG...
>なんか陰謀説みたいな話だけど、単純にcygwinかreadline使いたい人は使えばいいし、それを
>配布したい人は、GPLかLGPLでcmuclをフォークすればいいだけでしょ? だれもだれかを制限しようと
>なんてしていないでしょ?
それを"出来る"(=GPL/LGPL/BSD...に出来る)というのはお前の云う通り。
しかし、例えば、誰かが"cmuclをcygwinに移植しようかな"と言い出したとき、技術がそこそこあってそれが可能な人達というのは
まさにcmuclプロジェクトの彼らのことだろ(他にもたくさんいるだろうが、まず注目されるの彼ら)。
cmuclが現在パブリックドメインであることはこれ(=cygwinに移植しようかな)を多少なりとも足踏させる結果になっただろ?
可能論じゃなくって実際にそれをやる人が居るかを考えたときに、cmuclがオープンソースであることとcmuclがパブリックドメインであることには意識の違いが出てくると思わないか?
>じゃあプロパガンダを消した残りの部分はどう?
とりあえず
>>FSFと一蓮托生でいいのか。
についてはっきりと釈明しろと。で、これ
>これから、もしGPL, LGPLと互換性がないソフトウェア群が非常に多くなったときにどうするか?
別に何もしないでしょ。何か問題になる?
これまでの資産は
http://sourceforge.net/softwaremap/trove_list.php?form_cat=14
莫大にあるというのに。
0118デフォルトの名無しさん
NGNG0119117
NGNGこれは忘れてたな。そういえばsourceforge.jpにはpdsがなかったなあ。
これって、もしかしてcmuclプロジェクトに参加できない...ってことじゃないよな。
0120デフォルトの名無しさん
NGNG頼むから、お 前 ら C o m m o n L i s p の 話 題 に 戻 ってくれ。
スレが伸びてもライセンスについての議論じゃあ、lispスレとしての価値がない
↓新鮮な話題を希望
0121デフォルトの名無しさん
NGNGCVSに入ってるnqueenが面白いですよ
0122デフォルトの名無しさん
NGNG>>121
マンセーこいつぁ面白そうだ。最初っからこのくれー宣伝汁 !
でもまだ Anonymous CVS はないのか。今後に期待〜
0123デフォルトの名無しさん
NGNG新しいlispの実装ができましたよ。
(defun lisp ()
(loop
(format t "~%* ")
(prin1 (eval (read)))))
0124デフォルトの名無しさん
NGNG書き込みのときに
unbound variable: alist-delete
って出るんですけど 対処法ありますか?
(リロードすると書き込めてるんですが・・・)
0125デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNG0128124
NGNG(define-module wiliki.db
(use srfi-13)
の部分に
(define-module wiliki.db
(use srfi-1)
(use srfi-13)
てやったら オケーぽいけど
これでいいのかな?
012992@Vim%Chalice ◆r6EONKKhcc
NGNGライセンスあれこれ
http://pc.2ch.net/test/read.cgi/unix/1032702590/
たまたま別スレの都合で数日前に書き込んだんですけど.
0130デフォルトの名無しさん
NGNG誤爆? 宣伝?
0131
NGNG(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)))
とした時のラムダ計算の課程を教えてくれませんか。
0132デフォルトの名無しさん
NGNGn := 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
0133
NGNGありがとうございます、ホントに。助かりました。
0134デフォルトの名無しさん
NGNG誰か作ってそうなもんだが。
0135デフォルトの名無しさん
NGNG0136デフォルトの名無しさん
NGNGttp://dotlisp.sourceforge.net/
Activity Percentile (last week): 19.2626%
0137デフォルトの名無しさん
NGNGスタンドアローンプログラムを作ってみたら約 3MB の実行ファイルが出来た @
Mac OS X. こんなもんかな。
ところで、数ある Lisp レベルのスレッドの実装ってマルチプロセッサ下でどの位
スケールする物なのでしょうか? 実装依存 && 環境依存でしょうか。
0138デフォルトの名無しさん
NGNG最速スクリプト言語決定戦!
http://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
0139デフォルトの名無しさん
NGNGC で書いたプログラムを動かすには C のランタイムが必要だ。
Java で書いたプログラムを動かすには java のランタイムが必要だ。
Lisp で書いたプログラムを動かすには Lisp のランタイムが必要だ。
で、通常 C のランタイムはシステム標準で付いてくるので意識する人が
少ないだけ。
寡聞にして Lisp レベルのスレッドの実装が複数あるとは知らなかった。
商用 Lisp は大抵 OS のネイティブスレッドだろうしなぁ……。まぁ
Lisp レベルのスレッドだとあんまりマルチプロセッサだから〜とか
期待しないほうがいいんじゃないかな。ネイティブスレッドのほうが
どう見ても有利だろう。
0140デフォルトの名無しさん
NGNG>寡聞にして Lisp レベルのスレッドの実装が複数あるとは知らなかった。
すんません。嘘書きました。CMUCL 以外の処理系がネイティブである
事をあまりにも強調してるので、混乱してました。
>商用 Lisp は大抵 OS のネイティブスレッドだろうしなぁ……。まぁ
>Lisp レベルのスレッドだとあんまりマルチプロセッサだから〜とか
>期待しないほうがいいんじゃないかな。ネイティブスレッドのほうが
>どう見ても有利だろう。
御意。
ファイルサイズの件について、ECL はデフォルトで共有ライブラリ化
されるみたいなので Mac 以外でも試してみます。現状でも特に不満は
無いです。
0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNG俺にゃぁこーゆうのは複雑怪奇に見えるが,それでも、lisp よりはマシだとか思う
人も多いのだろうな。
0143デフォルトの名無しさん
NGNG大分昔に聞いたんだけど、どうなったんだろう。親分の思惑とは
離れて、LISP嫌いのUNIXユーザが多すぎるんだろうな。arcなんてのも
最近は更新されてないし。
0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNG##の使い方見てて切なくなった(w
0146デフォルトの名無しさん
NGNG今はC++のtemplateを使ったgeneric programmingに萌え。
0147デフォルトの名無しさん
NGNG最近興味本位で触ったLispのマクロにくらくらしてる。
0148デフォルトの名無しさん
NGNGいちいち全部比較してくよりは、GCのマーク&スイープみたいに
マーク付けながら辿っていった方がいいかな。
0149デフォルトの名無しさん
NGNGhare and tortoise
0150デフォルトの名無しさん
NGNGguile/libguile/list.c の scm_ilength() を見たらよいよ。
0151デフォルトの名無しさん
NGNG環境は、Win2000 です。
0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNGDrSceme が簡単でいいんじゃないの?
cygwin + gauche という手もあるけど。
0154デフォルトの名無しさん
NGNG漏れ、最初DrScheme使ってt-y-schemeやったけど、
売りのトレースとかが、初心者モード(ほとんど何にもできない)でしか使えなくて泣いた。
0155デフォルトの名無しさん
NGNGSICPのサンプルコードはSCMかMIT-Schemeだった気がするので、
Cygwinで動くようならこれが無難?
win2kならPetite Chez + ChezEditも良いかもしんない。
0156151
NGNGWindows binary 版をインストールしてみました。
EDwinって言うEmacs見たいなエディタも付属してます。
つか、殆どEmacs。。。
Lisp/Scheme やるには Emacs も覚えなあかんの。 _| ̄|○
Schemeの処理系って小さいイメージがあったけど
MIT-Schemeって一式で35Mbyteもあるのね。
0157デフォルトの名無しさん
NGNGWin環境の人からすると異常だけど、
UNIXのソフトって全体的にemacsのキーバインドに沿ったものが多いからね。
0158デフォルトの名無しさん
NGNGさあ、*nix文化へいらっしゃい。
今までM$に飼い頃されてたのはなんだったんだ、と開眼するから。
0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNGさてどうしよう。
0162140
NGNGmzScheme は Lisp レベルでの thread みたいでした。RScheme はサイトが落ちていて不明。
ECL で --enable-threads するとビルド出来ない(最新 CVS 版)のですが、Linux 限定なのかな。
0163デフォルトの名無しさん
NGNG一応、vi (ex, ed) は使えるんですけどね。漏れって vi 信者。w
などと言いながら emacs のマニュアル本買って来ました。
0164デフォルトの名無しさん
NGNG地方在住 lisper は逝きたくても逝けないのです。おながいします。
0165デフォルトの名無しさん
NGNGウイソのプログラムでメシを食ってる漏れとしてはそんな事は口が裂けても・・・
0166これってどうよ?
NGNGhttp://www.caddr.com/code/lython/
スラドの記事
http://slashdot.jp/developers/04/02/15/1528254.shtml?topic=93
0167デフォルトの名無しさん
NGNG(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!")
0168デフォルトの名無しさん
NGNGちょっと前に話になったスクリプト云々の話は
これに食われそうだね。
ポータブルな実装としてはベースがpythonなら問題ないだろうし。
0169デフォルトの名無しさん
NGNG速度: pythonはバイトコード
ライブラリ: pythonよりもC/C++のライブラリの方が膨大
0170デフォルトの名無しさん
NGNGFFI が面倒なので Python のライブラリでウマーって事でしょう.
まぁ,中途半端な Lisp モドキよりは普通に Python 使ったほうが
いいような気がしますがね…
0171デフォルトの名無しさん
NGNGライブラリを手軽に使うのだけが目的なら、Common LispかSchemeと言語仕様を同じにしなくちゃね。
ただ、ここから新しい言語として羽ばたかせようというなら話は別だけど。
Arcみたいにね。
まぁ、ただ面白そうだからやってみたんだろうけど。
0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNG孵化する日は先で、生まれたてのホヤホヤという感じです。
みんなが作るのが好きな俺Lispの1つですね。
しかし、よくSlashdotが取り上げたね。それが悪いというわけじゃないけど。
0176175
NGNG0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNGしかし、インデントのかわりにS式使ってる感じだね。
そういえば、Parrot上のSchemeはどうなったんだろ。Parrot自体が資金ショー
トという噂も聞いたこともあるけど。
0180デフォルトの名無しさん
NGNG実際に組み込むためのHOWTO文書とかチュートリアルってあります?
けっこう検索したんだが見付からない.
guileを組み込んだGNUプロジェクトのアプリはいくつかあるけど,大き過ぎて見る気がしない.
なんか「Schemeで拡張できるtail(1)を作ってみました」みたいな文書ないもんですかね.
0181デフォルトの名無しさん
NGNG速すぎて、非互換な変更とかがけっこうあって、アプリに組み込んだ人が苦労した
という話がありました。とかいうふうに一度、レッテルを貼られると、それを取り除く
のに苦労しますよね。GNUはマニュアルをちゃんと書く習慣があると思うんだけど、
guileのマニュアルにアプリへの組み込みチュートリアルないのかな?
>>179 つーか、Parrotをやってる人たちって金もらっているのですか?
ParrotがJVMレベルのバーチャルマシンとしてみんなに認められれば、オモロ。
0182デフォルトの名無しさん
NGNGとりあえず去年の今ごろのParrot/Perl6の紹介には金が足りないというのがあっ
た。http://www.newsfactor.com/perl/story/20748.html
CVSにはscheme用もあったけど動くのか不明。ぱっと見、まだ途中かなという
感じがした。H"なんで下して試す元気がないから、誰が試してくれるとうれし
い。
;; 遅れぎみ(婉曲的な表現)なんで、逆に誰かがどれでもいいから別のVM上に
;; Perl6を実装しちゃえば英雄になれるかも。
0183180
NGNGGuileのinfoのPart 3がそれっぽいんですが,どうもイマイチ実感が...
マトモなサンプルになってないんですよ.
ドローソフトの組み込みにするために,いかに「図形」をSchemeオブジェクトとして
Cレベルで定義するかが主眼らしいんだけど.
そんな高尚なことよりとりあえずS式の設定ファイルを読みたいだけなのにな.
ま,がんばったらできそうなので文書にするかも.
0184デフォルトの名無しさん
NGNGGaucheはドキュメントはまだ無いみたいだけど、インタプリタであるgoshが
「Gaucheライブラリのサンプルアプリ」という位置付けらしいのでソース見るのが早い。
goshはlibgaucheを初期化してrepl起動してるだけだから本当に小さいし。
0185デフォルトの名無しさん
NGNGgdbm.so が ext/Makefile から外されてる
gdbm.c はコンパイルできない。エラー多すぎ
までは調べました
0186デフォルトの名無しさん
NGNGndbm 使うと perl コンパチのファイルができたみたい・・
なので gdbmは不要となりました。
0187デフォルトの名無しさん
NGNG思うので、それが見つけられていないのでは。
gdbmが/usr/localとかにインストールしてあるなら、
./configure --with-local=/usr/local みたいにするとか。
0188デフォルトの名無しさん
NGNGconfig.log 見て納得しました。
perl は p5-GDBM 入れないと駄目なんですね。
gdbm はあまり使われてないと。
0189デフォルトの名無しさん
NGNGどうやったら 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)))
バッククオートを入れ子にして使うのがどうしてもうまくいかなくて
ほかと重ならない変数名で逃げてます。実用上は問題ないんですが
もっとスマートな解決策はないものでしょうか。
0190デフォルトの名無しさん
NGNG>5 を印字してから 6 を返すような関数です
マクロの typo です。
0191デフォルトの名無しさん
NGNGちょっとあなたのと仕様が違いますが、昔書いたものを。
(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)))
0192189
NGNGlet の変数定義をマクロ展開の結果に置き換えるマクロを書くわけですね。
勉強になります。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* がうまくできなくて困ってます。
まず値を集めて、後から展開するという方針が間違ってるのかもしれません。
どうしても評価のレベルが一致しないんですよね。
0193デフォルトの名無しさん
NGNG(setq alist '((a 1) (b 2)))
(alist-bind alist (print (+ a b)) (* a b))
とかいたファイルをコンパイルしたら、alist-bind の展開時に
まだ alist がバインドされてないとかでエラーになるような…。
0194デフォルトの名無しさん
NGNGパターンが単純であればこんな感じかな?
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)))))
0195189
NGNG返りましたけど。>>192 がうまく動かないはそのせいなのかもしれません。
0196189
NGNG例えば (dbind* '(a (2 3 4)) (('a (b 3 c)) (+ b c))) がマッチして、6 が返されます。
シンボル以外のアトムや quote されたシンボルをネストした S 式の中に書くことができ、
パターンの同じ場所に eq になるアトムが存在するときに、マッチするものと見なされます。
上の例の 3 や a がそれです。このとき、a はシンボル a に束縛されます。
0197デフォルトの名無しさん
NGNGふむ、若干面倒だね。とりあえず、パターンのシンボルに
リストがマッチするものとして書いてみた。
(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)))))
0198197
NGNG(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))))))
0199デフォルトの名無しさん
NGNG(string-concatenate-reverse '(" must be" "Hello, I") " going.XXXX" 7)
っていう式を評価させたらエラーになったんだけど、
SRFI-13ではそういう実装も許されてるの?
それともインストール失敗しただけ?
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNGperlとgaucheの対応表なんてどっかにありませんか。
とりあえず
open(STDERR, ">&STDOUT")
$| = 1
$!
がわからない。
0202デフォルトの名無しさん
NGNGttp://www.shiro.dreamhost.com/scheme/gauche/man/gauche-refj_236.html
optionalついてないのがGaucheでの仕様なんじゃないの?
0203デフォルトの名無しさん
NGNGperlよくわからない
0204デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG$| = 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 の対応一覧が役に立つかも。
0207デフォルトの名無しさん
NGNG----
$|=1;
open IN, "foo.pl";
print while (<IN>);
-----
(call-with-input-file "foo.scm"
(lambda (in) (copy-port in (current-output-port)))
:buffering :none)
0208こゆことかな...?
NGNG------------------------------
#!/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);
0209デフォルトの名無しさん
NGNG簡単に行かないというのがわかりました。
dup と flush は gosh本体に仕込んで起動時オプションで処理する。
$! もグローバル変数に組み込んでしまうのが簡単か
0210デフォルトの名無しさん
NGNGいろいろ解説してくれた人がいたんで代わりにまとめ。
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 をキャッチするのをイメージ。
0211189
NGNGありがとうございました。遅くなりましたが、自分の欲しい内容への改造が
やっとできたのでお伝えします。
比較対象がアトムや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を返すようになった
0212嵩
NGNG(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
となっているけど、もう少し詳しく説明できる人いますか?
ラムダ計算が今一よくわからないもんで。
0213デフォルトの名無しさん
NGNG詳しく説明できるが
聞 き 方 が 気 に 食 わ な い
0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNGselect = λ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
0216デフォルトの名無しさん
NGNGletで囲めばいいじゃん!
0217デフォルトの名無しさん
NGNGSchemeの末尾再帰の動きが良くわからないのです。
どなたか教えてくださいませんか
(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) として
どういう風に再帰展開されるのかわかるかた
教えていただけませんでしょうか。
0218デフォルトの名無しさん
NGNG1ステップずつ考えれば分かるだろ
0219デフォルトの名無しさん
NGNG(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
}
0220217
NGNGありがとうございます。ぼけてました。引用もとの文には
(if (= n 0) x
と書いてあるのに手持ちのメモに
(if (= n 0) 1
と書き写してしまいそっちをみていてはまってしまいました
すっきりしました。おさわがせしてすみません。
0221217
NGNG引用元はSoftwareDesign の2000年9月号のScheme特集でした。
「末尾再帰を使うとスタックを消費しない」
と書いてあったけどイメージしにくかったんですが
for ループに対応してると考えるとわかりやすいですね。
0222デフォルトの名無しさん
NGNG明示的副作用を書なくて良いというのがあって、
Schemeではset!をほとんど使わずにコードが書ける。
0223デフォルトの名無しさん
NGNGまあ、"俺Lisp"的な実装はは末尾再帰最適化がなかったりするけど。
0224デフォルトの名無しさん
NGNGSchemeは言語仕様上いつでも安心して使えるってことだよ。
例えばtail recursionがproperじゃないCommonLispで
「常に末尾再帰を意識しながら書く」って奴がいるとも思えないが。
0225デフォルトの名無しさん
NGNG言いたい事が良くわかりまらないんだが with-slots あたりで満足ですか?
>>224
大抵のプログラマは意識はしてると思いますが。
末尾再帰の話が出てこない CL の入門書は見たことないですし。
CL だと最適化オプション下げれば末尾再帰の最適化が
OFF になってデバッグしやすくなるし。
0226デフォルトの名無しさん
NGNG再帰呼び出しが末尾にあるかどうかは最初はほとんど気にしません。
読みやすさや見ための綺麗さを優先して最初はコーディングします。
再帰を使う時は、スタックの消費量が問題になるほど、呼び出しが深くなるか
どうかには注意します。そして、CLを使っているときは、もし再帰呼び出しが
末尾位置にあれば、ああ、スタックの消費量を気にしなくてもいいかな、という
考えが頭に浮かびます。
0227225
NGNGいかん、丁寧に直したら副作用で日本語が壊れている……
>>226
末尾再帰って末尾位置に再帰があれば良いってもんじゃないんだけど。
0228デフォルトの名無しさん
NGNG>末尾再帰って末尾位置に再帰があれば良いってもんじゃないんだけど。
R5RSに定義されている「末尾位置」のつもりだったんですけど?
0229デフォルトの名無しさん
NGNG> 言いたい事が良くわかりまらないんだが with-slots あたりで満足ですか?
あんた、いい人だ!
でもgoshに無いのでやっぱりCLOS止め
0230デフォルトの名無しさん
NGNGスマン。末尾位置ってはじめて聞いたもんで。tail context の事なのか?
>>229
なんだそりゃ! 無いならお前が作れ!
0231デフォルトの名無しさん
NGNG> tail context の事なのか?
そうです。不正確でしたね失礼しました。今、R5RSで確認したんですけど、
tail contextが正しい用語みたいですね。覚えておこう。ちなみにtail contextの
日本語定訳はあるのかな?
gaucheでゴーシュ。俺はしばらく「ガウチェ」と発音していたよ。
0232デフォルトの名無しさん
NGNG末尾呼び出しを思いっきり使えるかどうかって、
コーティングスタイルがまるで変わってくると思うんですが、
>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コンパイラが
ちゃんと末尾として認識するのかなと。
0233デフォルトの名無しさん
NGNGいや、おれは「letで囲めば良い」を布教させる事に全力を傾けたい
だから、もう一度、キョンキョンにこの歌を歌ってもらおう
(キョンキョン)おまえら!一緒に歌ってくださーい
♪defineの次に、letで囲めばぁー
いーじゃん♪ (見逃してくれよー)
いーじゃん♪ (見逃してくれよー)
♪作ったlambdaの引数はいつもこれ→(msg . args)
いーじゃん♪ (メッセージ送れよー)
いーじゃん♪ (メッセージ送れよー)
(キョンキョン)よし、分かったな。じゃあ解散!
0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNG大抵のコンパイラは普通に認識するよ。
0236デフォルトの名無しさん
NGNG0237デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNGこういうコーディングをよくするの? 見ためは、綺麗だよね。
0239デフォルトの名無しさん
NGNGそういうコードが安心して使えるかどうかっていうと駄目だろ。
CommonLispはコンパイラの最適化って点でインプリメンタの気まぐれなわけだし。
コーティングスタイルにまでは及ばない。
0240デフォルトの名無しさん
NGNGCPS(232みたいなk=continuationを渡していくやつ)はよく使うよ。
0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNGプログラマは処理系のマニュアル見て安心して使うだろう?末尾再帰の最適化が完全
に良い事づくめなら Scheme みたいに規格で決めちゃってもいいかもしれんけど,デ
バッグがやりにくくなるからなぁ……
でも普通は処理系が対応してりゃ安心して使えるだろう。大抵のコンパイラは末尾再
帰の最適化機能を備えているわけだ。以前 c.l.l でも出ていたがやっぱ最適化オプ
ションに「末尾再帰の最適化」を設けるべきだろうなぁ。規格以外は一切使わないと
いうポリシーもありだと思うけどね。
0244sage
NGNG0245デフォルトの名無しさん
NGNGデバッグがやりにくくなる?
どんなデバッグしてるのさ
ログ出すだけじゃないの?
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNGスタックフレームのぞくだけだけど…。ひょっとして「ログ出す」
ってのが普通なの?漏れ Lisp の正規の教育受けてないので
常識には自身がないんだよね。
0249デフォルトの名無しさん
NGNGどうやら国語も勉強しなおしたほうがいいようだ。吊ってくるわ。
0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNGJava/C/C++でさえ書籍orWebの情報だけでやっていく人がたくさんいるし。
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNG情報が減るのは当たり前だと思ってたんだけど。Scheme では関数呼び出し
情報とかはあんまりデバッグに使わないんですか?
0254デフォルトの名無しさん
NGNG普通の再帰みたくツリー上に出るんじゃない?
デバッグでなんか大きな違いってあるの?
0255デフォルトの名無しさん
NGNGログ出しについての説明か?
ループの中で変化する変数を表示するだけですが。
0256デフォルトの名無しさん
NGNGえ、何という処理系ですか?デバッグ周りって処理系依存ですよね。
トレース実行って特定の関数だけとか全体とか指定できるんですか?
>>255
それだけじゃキツイなぁ。再帰がふか〜い所でエラーな時とか。
やっぱエラーになってデバッガが立ち上がったところから手繰って
いけたほうが便利だと思いますが。私の使ってる処理系は debug レベル
を 2 以上にすると末尾再帰の最適化が行われなくなるのでエラーに
なった時点からフレームをたどっていけますが…。
0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNG売り物の処理系でも付いていないというのは、要望が少ないからなのかな? たしかに
バックトレースの表示などの伝統的なやり方でもデバッグできるけどね。あと、要所
要所に(format t "my-var = ~S~%" my-var)を挿入とか。俺はPerlでもこのやり方で
デバッグするね。Data::Dumperという便利なものもあるし。
俺はEmacs Lispではソースレベルデバッガであるedebugをもっぱら使ってdebugはほとんど
使ったことがない。
0259デフォルトの名無しさん
NGNG0260デフォルトの名無しさん
NGNG見渡しながらデバッグできると気持がいいんだよね。ついでに、監視したい式なんかを
複数登録しておいて常時、その値を表示させておくとか。ブレーク時に画面上で変数の
上にマウスポインタを置くだけで、値が表示されるとか。
つまり、昔かたぎの人からみれば、俺は現在のIDEに毒されているヘタレということか。プ
0261デフォルトの名無しさん
NGNG現時点でもエラー箇所の表示とか凝ったことできるし。
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNGメタルスライムAは逃げ出した
0264デフォルトの名無しさん
NGNG要らないのかな?拾ってきたプログラムがエラー吐いてとまったときと
かバックトレースが空だとちょっと悲しいんだけど。
>>257
なんか安心して使える trace の実装とかあります?処理系によっては
付いてるみたいだけど。付いてないのも結構あるので困るんですが。
0265デフォルトの名無しさん
NGNGそういうのはどう転んでも処理系依存だしなあ。
いつでも外せるassertみたいなの埋め込むぐらいしか。
昔さわったminischemeのトレースはトレース対象を出力用の
フック関数で挟む方式だった。後付けマクロ。
関数突入・脱出でトレース出力するので、
トレース対象関数は自然と末尾再帰が外れて山形の出力になる。
ただし内部関数、名無し関数には使えない。
0266デフォルトの名無しさん
NGNGこれって何に由来してんだぁ?
0267デフォルトの名無しさん
NGNGfoo と bar は RFC で定義されているよ
0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNGA 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はどう答える?
0270デフォルトの名無しさん
NGNGって言えばいいじゃん。翻訳もせずに丸投げなあたり宿題か何か?
まぁ実際 ML にまでそうしろと言う Lisper は少ないと思うよ。
NetNews でも ML の数値周りが気に食わないと噛み付いてた Lisper
は居たけど ML に Lisp 式の数値にしろ!とまで言うやつぁ少ないだろ。
理由はなんで ML がそうしてるかを考えればわかるだろ。
0271デフォルトの名無しさん
NGNG型無しのありがたみって何だろうな、というネタフリなんよ。
0272デフォルトの名無しさん
NGNGML スレでやれば?型無しのありがたみは無いってことでいいからさ。
デバッグ方法が聞けてウマーと思ってたのに、そんなつまらんネタ振るな。
だいたいここは Lisp 総合スレなんだ、型有りの Lisper 連中からすりゃ
ハァ?って話題だろーが。全部の LISP 型無しという狭い見識をなんとか
してから出直してきてくれ。
0273デフォルトの名無しさん
NGNGLISP Scheme Part9
http://ruku.qp.tc/dat2ch/0403/01/1069594582.html
0274デフォルトの名無しさん
NGNG良いところもあるよなぁ、ということを言いたかった
だけなんだがなぁ...
0275デフォルトの名無しさん
NGNG0276デフォルトの名無しさん
NGNG1 :デフォルトの名無しさん :04/03/02 19:14
(ちょっと入れ子でスレ立たせてくれや)
健全なマクロって不便だし、不健全なマクロの貸しコートもささくれ立っていてなんかイヤ。
だから、健全なマクロに「不健全」ていうオプション欲しいよな?
お前ら、どう思いますか。
0277デフォルトの名無しさん
NGNG2 :デフォルトの名無しさん :04/03/02 19:15
2get
0278デフォルトの名無しさん
NGNG個人的にはつまらないマクロと楽しいマクロだな。変数キャプチャ
があった方がいろんな意味で楽しい。はまるとデバッグも愉快な事
になるしな。アヒャヒャヒャヒャ。
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNGgensym命。でもSRFIのhygienicマクロそのまま読めない罠。
まあhygienic作る暇あったら正規表現でも統一しなさいってこった。
0281デフォルトの名無しさん
NGNGdefine-boring-macro/define-amusing-macro とか?
まぁ変数キャプチャを防いだところで世間の見る目はかわらんよね。
R... な言語の作者だってマクロはダメポって言ってたけどこれは
変数キャプチャ云々の話じゃないわけだし。
0282デフォルトの名無しさん
NGNG世間の見る目って?どんな風に見られてるの?
m@zはどうしてマクロはダメポって言ってるの?
0283デフォルトの名無しさん
NGNG「神聖なる構文を一般利用者が触るなんてとんでもない。そんなの混乱の元だよ!」
ユーザビリティの問題だとかいってたあたりの事だと思われ。確認してないから
不正確かも知れんが探すのマンドクサ(括弧の話だったかも?)
0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNGえ、LISPには劣るって!?
0286デフォルトの名無しさん
NGNGしゃらくせえ。
おれ様が欲しいのは圧倒的な自由なんだよ!
Schemeは聖域無き言語だぜ!
ユーザビリティーだと?
ヌルイ!ヌルイよそれ!
ちょーヌルイよ!
あーヌルイ。母さーん、火ぃつけてくれ。
ふぅー、ぬるぽ。
0287デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNG設定のコツを教えてくれ。
\esで評価しようとするとvimが固まるんだけど…
0289デフォルトの名無しさん
NGNGと ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←>>286
0290デフォルトの名無しさん
NGNG↓
Common Lispを習ったら、再帰はC++と同じくらいしか使わないなと思った。
↓
Schemeを習ったら、「やっぱりLispは再帰が命?」と思った。
0291デフォルトの名無しさん
NGNG末尾再帰の最適化が保証されていないと、いやがる人がいそうな書き方だよね。
実際は、メモリを結構積んでいるマシンが増えたから、再帰が多少深くなったって、困る場面ってそうそう
ないような気もするけど。
0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNGCPS ってもう少し汎用的な概念だと思う。
state パターンも原始的な CPS だと言えなくもない。
末尾再帰を使うのはたまたま scheme が末尾再帰を正当化してくれているから。
0294デフォルトの名無しさん
NGNG> 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
と言って立ち上がらない…
0295デフォルトの名無しさん
NGNG(Martin は週末に時間があったらがんがるそうです)
CLOS based on Gerd's PCL 2003/06/18 09:23:09
* (subtypep 'standard-class 'standard-object)
T
T
0296294
NGNGcmucl 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って重箱の隅をつつきだしたら結構あるし。
0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNG[1]> (subtypep 'standard-class 'standard-object)
NIL ;
T
0299デフォルトの名無しさん
NGNGはやくなおらないなか〜。PCL をいじってたのは Gerd Moellmann です。だから Gred's PCL。
19a からこっちになる予定。
0300デフォルトの名無しさん
NGNGapt-get install cl-ppcre
で、clisp、cmucl、sbcl-mtなどインストールされているコンパイラ用にちゃんと
コンパイルしてインストールくれるんだね。
しばらくDebianにさわってなかったけど、なんだか、とんでもなく便利になってきている気がする。
debパッケージになっているライブラリも多いし。Debian使っているLisperが多いのかな。
たしかcmuclの開発者もdebianの人が多かったよね。
あと、Redhat(Fedora?)だとメモリチェッカか何かの影響でcmuclが動かない(かった)という話も
きいたことがあるね。今でもそうなのかな?
0301デフォルトの名無しさん
NGNG同意。
早く復活しないとSBCLに(ry
0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNGhttp://www.cons.org/cmucl/benchmarks/index-print.html
0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNG0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNGftp://ftp.averillpark.net/cmucl/doc/cmu-user/compiler-hint.html#toc161
を熟読。
0308デフォルトの名無しさん
NGNGcygwin入れてconfigure環境作るのマンドクサ
0309デフォルトの名無しさん
NGNG確かに。漏れもGaucheのためにcygwin入れたよ。
0310305
NGNGレス遅くなりまして済みません。SBCL と CMUCL の比較で、SBCL はまだ block compile
が出来ないよみたいな記述があったので、お聞きしました。
>>307
どうもありがとうございます。読ませて頂きます。
0311デフォルトの名無しさん
NGNG0312189
NGNG>>211 の後で、ドットリストも扱えるように改造して、欲しい仕様の物ができました。
それを、いま移植作業を進めているプログラムに同梱したいのですが、著作権表記や
ライセンスなどでご要望がありましたらお知らせください。
(元プログラムがBSDライセンスなので、それと同じで配布できるとありがたいのですが)
0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNG0317デフォルトの名無しさん
NGNG0318デフォルトの名無しさん
NGNG0319デフォルトの名無しさん
NGNGところで >>189 は何を移植してるんだろ。
期待して待つぞ〜
0320デフォルトの名無しさん
NGNG0321189
NGNGhttp://khdd.net/kanou/kangae/2003/Apr.html#12.1.4 をご覧ください。
0322デフォルトの名無しさん
NGNG0323デフォルトの名無しさん
NGNGと間違えたんだろ
0324デフォルトの名無しさん
NGNG0325デフォルトの名無しさん
NGNG(loop for i from 128 to 255 do (set-syntax-from-char (code-char i) #\a))
みたいに処理系固有の処理は *features* を使うとイイと思われ。
0326デフォルトの名無しさん
NGNG(lambda (a b) (> (car a) (car b)))
0327デフォルトの名無しさん
NGNG逆に汚いかも
(lambda (a b) (apply > (map car (list a b))))
0328デフォルトの名無しさん
NGNGみたいに書きたいということじゃないの。
0329326
NGNG(sort '((5 a) (3 b) (4 c))
(lambda (a b) (> (car a) (car b))))
map,cut,apply,compose等を使って相当考えたんですが
lambdaを使わないで表現できません・・・
綺麗or簡潔にするのは無理な気がしました。
でも汚い例ですら考えつかなかったので悔しいです。
0330
NGNG(lambda(m)(m x y)))
(define (car z)
(z (lambda (p q) p)))
としたとき、(car (cons x y)) が x を生じることを
証明せよ、とSICPに言われたんですけど、よくわからんのです。
頭がこんがらがって。
mzscheme というのを使ってるのですが、動きを追うための
機能ってないんでしょうかね。
0331デフォルトの名無しさん
NGNG普通に式変形してけば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
0332
NGNGあ〜、なるほど。ありがとうございます。
すっきりしました。わたしまだ基本ができてないっすね。
精進します。
0333デフォルトの名無しさん
NGNG(sort '((5 a) (3 b) (4 c)) #'> :key #'car)
0335デフォルトの名無しさん
NGNGどうしても必要なら
(sort '((5 a) (3 b) (4 c)) > car)
という引数を受け付ける様にするとか。
car>という関数でも作るとか。
0336デフォルトの名無しさん
NGNG0338
NGNG(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)))
となって、あれ?となります。けど実行するとさかさまになっている
なんかわからないです。だれか動き方を教えてください!
0339デフォルトの名無しさん
NGNG(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)
0340
NGNGあ!
append 自体が入れ子になるわけですね!
やっとわかった!ありがとうございました!
0341デフォルトの名無しさん
NGNGWCL 3.0 - Embeddable Common Lisp for Linux
http://wcl.kontiki.com/
何でもいいから情報キボンヌ
0342デフォルトの名無しさん
NGNG関係ないけど、クロージャをオブジェクトと見立てて self や this 相当の機能を実現しようと
するとマクロを使うか引数で渡してあげるしかないのかな。
0343デフォルトの名無しさん
NGNGletrec とか使えば、とりあえず自分を参照できるけど。
(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)
とか、こういう話?
0344デフォルトの名無しさん
NGNGそっか、let で括ってあげれば良いんですね。lambda だけでと考えてました。
0345デフォルトの名無しさん
NGNGもう二ヶ月以上も経過してるぞ。
0346デフォルトの名無しさん
NGNG無いでしょ。Martin タンだってボランティアなんだしあまりワガママを
言うもの気の毒じゃん。どうしても文句言いたきゃ cmucl-devel で騒ぐ
ほうか良いと思われ。
0347デフォルトの名無しさん
NGNGなのに
>どうしても文句言いたきゃ cmucl-devel で騒ぐほうか良いと思われ。
ってのは一番ヤバい選択なような。
0348デフォルトの名無しさん
NGNG黙ってたほうが賢明かと。別に配布が完全停止ってわけでもなくデベロッパーは
黙々と作業してるわけで。でも建設的な提案(回線とセットアップ済みハードウェア
を提供とか)があるなら言ってみれば。
0349デフォルトの名無しさん
NGNG俺はそうは思わない。以上
>でも建設的な提案(回線とセットアップ済みハードウェアを提供とか)があるなら言ってみれば。
なんで建設的な話?
不毛な雑談を認めないのかよ。
建設的な提案があればこんなところではなくcmucl-develへ投稿するところだが。
0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNGcト 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、 \:::::::::::::::..、 ~" / ヽ.___,./ //ヽ、 ー
0352デフォルトの名無しさん
NGNG不毛な雑談でもオモシロければイイ。同じネタのループはイクナイ。
で CVS の復旧マダーな話は「こんなところ」でも既出なわけだが。
0353デフォルトの名無しさん
NGNG0354デフォルトの名無しさん
NGNG展開してみた。
((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 と見立てるって、こういうので合ってるの?
0355デフォルトの名無しさん
NGNG>>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* が用意されてるわけだ。
0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/026256100X/249-6997664-7938729
と思ったら、The Little Mler などというもっと面白そうな本が...
0358デフォルトの名無しさん
NGNGhttp://www.shiro.dreamhost.com/scheme/trans/iflisp-j.html
0359デフォルトの名無しさん
NGNGメソッド呼び出し形式が書ける様になれば普及すると思うんだけど、
どうかな。
シングルメソッドディスパッチでいいし。
つまりこういうこと
(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)
こうなる。
でもこれじゃ使う人いないだろう。
まいった。
0360デフォルトの名無しさん
NGNG>(だが、気をつけ給え。その論理の行き着く先はWindowsだ。)
ワロタ
広まるのが悪いみたいな言い方だな(w
0361デフォルトの名無しさん
NGNG. や -> は繋ぎの役割しかしてないから、括弧と両方あるのは冗長。省こう。
object と getter や method の順序は、lisp だと procedure が前だから、
(setf (prop obj) value) と ((method obj) param)
あと方のは中の括弧はなくてもいいか。そうすると、(method obj param)。
あれ、両方とも今のままだ。
0362デフォルトの名無しさん
NGNG0363デフォルトの名無しさん
NGNGみたいに見えるように定義したら、loop嫌いな人も減ったかな。
(loop (for item in list) (collect item))
0364デフォルトの名無しさん
NGNG12.600000000000001
> (* 1.05 12.0)
12.600000000000001
Gaucheでこの誤差をなくす方法を教えてください。
(プログラム初心者板ものですね。申し訳ないです)
0365デフォルトの名無しさん
NGNG(* 105/100 12)
とすれば、、、
12.600000000000001
あれ???
0366デフォルトの名無しさん
NGNG十進数使え。Gaucheにあるかどうかはしらんが。
0367デフォルトの名無しさん
NGNGformatで桁指定できれば助かるんだが。
0368デフォルトの名無しさん
NGNG#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
になる事について,どう思う?
0369デフォルトの名無しさん
NGNGhttp://docs.sun.com/source/806-3568/ncg_goldberg.html
日本語訳は腐っていた記憶あり。
他にも浮動小数点数の入門文書あったら紹介してください。
0370デフォルトの名無しさん
NGNG1.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の方が正確やね。
見にくいことは否定しないが。
0371デフォルトの名無しさん
NGNGgosh> (* 1.05 1.2 10)
12.6
0372デフォルトの名無しさん
NGNG(obj 'msg args) という形で Smalltalk のメッセージ式風に記述するとか。
キーワード引数付きのメッセージ式って Lisp 等の関数呼び出し式と同様に
一貫した記述(条件分岐とか、繰り返しとかもメッセージ式風に記述出来る)
が出来て、尚かつ読み易くて イイ! と思うんだけどどうかな?
0373デフォルトの名無しさん
NGNGそんな簡単なことで普及するなら Dylan はとっくの昔にメジャーになっとるがな。
要するに、マクロで書式を自由にできることがウリの LISP で駄目だってことは、
(なにが駄目だかわらかんが)問題は(あるとすれば)書式にあるんじゃないっ
てことなんだよ。(で、なにが駄目で問題なんだ…?藁)
0374デフォルトの名無しさん
NGNG0375デフォルトの名無しさん
NGNG・(すでに)C/C++言語並みに広まっていること
・C/C++のようにどこでも動くこと(最近のPCでも、組み込み機器でも)
0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNGお前、括弧の使い方が下手だな。
その文章、激しく読みにくいぞ。
0378デフォルトの名無しさん
NGNG分からないかな。
"普及すれば普及する"というロジックが。
最初の出発点は些細なことでしょ。(Lispは重すぎたとか)
0379デフォルトの名無しさん
NGNGただそれは、ある言語が普及しだして、一応、人気が軌道にのってからの話しでしょ。
>最初の出発点は些細なことでしょ。
最初の一撃ってけっこう大切なことでしょ。それが些細なことであっても。
0380デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNG0382デフォルトの名無しさん
NGNGいいから、携帯でLisp動かしてみろ。GBAでもいいよ。
PCとかワークステーション以外は、始める前から年寄り引退確定か
0383デフォルトの名無しさん
NGNG>382 は自分でLisp処理系を作ったことがないのか?
0384デフォルトの名無しさん
NGNG>382 はILC2003で絶賛された湯浅センセのXSでも勉強すれ。
hxxp://www.xslisp.com/
0385デフォルトの名無しさん
NGNG・処理系作れ
馬鹿の一つ覚えですか?
Cだったらすでにコンパイラがあったりするわけですよ。
お前らは、新しい環境が着たらそのたびに、コンパイラ作ってるのかと小一時間・・・
もう、Lisperとやりあうのは疲れた
0386デフォルトの名無しさん
NGNG「新しい環境」を作った人達が一緒に開発するかもしれないけど。
「すでに」あるかどうかは、その環境と言語がどれだけ普及してるかって話でしかないと思う。
0387デフォルトの名無しさん
NGNG> いいから、携帯でLisp動かしてみろ。GBAでもいいよ。
たしか、LispMeという処理系がPalm PilotというPDAで動いていたな。
携帯とかGBAとかでも、開発環境が入手しやすければ、だれかが動かしても
おかしくないね。LispといってもCommon Lispのようにライブラリ的な機能が
豊富にそろっている言語から、Schemeみたいに山椒は小粒で…みたいなものまで
色々あるんだよ。
>>385
>Cだったらすでにコンパイラがあったりするわけですよ。
たしかに最初から使えれば便利だね。Cでそのままプログラミングするか、
Lispのようなもう少し抽象化が行われた言語を実装してから作業するか、
そのコストの見積りだろうね。
>お前らは、新しい環境が着たらそのたびに、コンパイラ作ってるのかと小一時間・・・
だれかが作業をやってくれていなければ、自分でやるか、人にやってもらうしかないでしょう。
それは、Cでも変わらないよ。ただCとLispの守備範囲はあまり、かぶらないと思うけど。
0388デフォルトの名無しさん
NGNG0389デフォルトの名無しさん
NGNGならバックエンドにはすでにある C コンパイラを利用するような
拡張をするという手もあるよ.C のソースを出力すりゃいいわけで
仲良くやってけるじゃん.なんで勝手に対決姿勢になってんの?
0390デフォルトの名無しさん
NGNGそういやKCLはオブジェクト言語がCだったような。
0391デフォルトの名無しさん
NGNGターゲット用の専用言語(GC 無しとかね)を作るのも楽だな.S 式ベースで構文考
える手間が少ないし.C のソース出力でもアセンブラ出力でもバイナリ出力でも気合
いと時間に応じて自由に選べるし.
0392デフォルトの名無しさん
NGNGあれ?誰もいない・・・
0393デフォルトの名無しさん
NGNGジリリリリリリリリーン
0394デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNGttp://www.bluetail.com/~luke/misc/lisp/slime.pdf
0396デフォルトの名無しさん
NGNGttp://www.bluetail.com/~luke/misc/lisp/slime.pdf
0397デフォルトの名無しさん
NGNGttp://www.bluetail.com/~luke/misc/lisp/slime.pdf
0398デフォルトの名無しさん
NGNGttp://www.bluetail.com/~luke/misc/lisp/slime.pdf
0399デフォルトの名無しさん
NGNG0400デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNG「ふぁ〜(眠)け、けいさつ〜?」
「そうだ。警察だ。早く開けなさい。」
「け、けいさつ〜?ここは、けいさつじゃないよ〜。」
「ふざけるな。私は警察だぞ。いつまで寝たふりしてるんだ。早く開けろ。」
「ふぁ〜(眠)ね、ねた〜?ね、ねたなんて、ふってないよ〜」
「ネタ振りじゃないよ!寝たふりだよ!このやろう!無駄な抵抗は止めろ!」
「ね、ねたふり〜?こ、ここは、ネタスレじゃないよ〜。」
「ここはネタスレじゃないよ!ここをネタスレ化している荒らしはお前だろ!いいから開けろ!」
「あらし〜?」
「そうだ。容疑を認めるならさっさとここを開けなさい!」
「こ、ここは、ゲームセンターじゃないよ〜」
「俺はアラシじゃないよ!!お前が荒らしなんだよ!なんだよっゲームセンターって!!!炎のコマかよ!・・・」
「・・・」
「・・・」
(;´∀`)
0403デフォルトの名無しさん
NGNGnil
0404デフォルトの名無しさん
NGNGうれピー!!!
(;`∀`) 韮韮韮韮韮韮韮韮韮
韮韮韮韮韮韮韮韮韮
韮韮韮韮韮韮韮韮韮
韮韮韮韮韮韮韮韮韮
0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNG>>春爛漫
1/2 なんちゃって!
0407デフォルトの名無しさん
NGNG感想聞かせて
0408デフォルトの名無しさん
NGNG0409デフォルトの名無しさん
NGNG(class-name (class-of (class-of #'make-instance)))
ちなみに、cmucl18eだとstandard-class、clisp 2.33だとbuilt-in-class
ですが、MOP的には、funcallable-standard-classが正しい気がします。
0410デフォルトの名無しさん
NGNGLISP初心者です。
ここのスレの皆様方に教えっていただきたいことがあるのですが、
WINDOWS版のCL-HTTPを落としたいのですが、MITのHPのダウンロード
できそうなリンクがほとんどエラーになるのですが、CL-HTTPを
ダウンロードするにはどうすればいいんでしょうか?
よろしくお願いします。
0411デフォルトの名無しさん
NGNG0412デフォルトの名無しさん
NGNG⊂⌒( `Д´) < WINDOWS版のCL-HTTPを落としたいよ〜!
`ヽ_つ ⊂ノ
ジタバタ
0413デフォルトの名無しさん
NGNG[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
0414デフォルトの名無しさん
NGNGttp://www.cutt.co.jp/book/4-87783-102-9.html
こんなもん出てるようだけど、どうなん?
0415デフォルトの名無しさん
NGNGどうみても入門書でたいして面白そうな例題もないこの内容で、この値段。うーむ。
0416デフォルトの名無しさん
NGNG0417デフォルトの名無しさん
NGNG他のやさしいシリーズの倍近い値段は置いておくとして
(ページ数も倍の480だし)、
よりによってCommonも何もついてないLISPとは、
いったいどういうことなのか。
読んでみないことには何とも言えないけど、
最終章にコンパイラとローダとリンカがあるということは、
やっぱりCommonLISPなのか。
日本のLISP業界にとって歴史的事件となるのかどうか。
0418デフォルトの名無しさん
NGNG>(class-name (class-of (class-of #'make-instance)))
LispWorksPersonalEditionで試してみると
FUNCALLABLE-STANDARD-CLASS
だね
0419デフォルトの名無しさん
NGNGttp://homepages.inf.ed.ac.uk/wadler/language.pdf
0420デフォルトの名無しさん
NGNG> よりによってCommonも何もついてないLISPとは、
> いったいどういうことなのか。
書店で立ち読みしたところ第一章にCommon Lispと明記してあったのだが。
何を見当違いのことで騒いでいるのかね。
0421デフォルトの名無しさん
NGNG内容はどうだったの?
0422デフォルトの名無しさん
NGNG手元ではこんなんですが.
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 <http://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
*
0423409
NGNGFUNCALLABLE-STANDARD-CLASSの方が、MOP的に「正しい」とまでは言えないかもしれないけど、
「そのほうが自然」とは言えるかな?
clispの開発者の人が1、2年前にMLで、「FUNCALLABLE-STANDARD-CLASSをサポートしないの?」と
尋ねられて、「自分で書いても同じような事を手軽にできるし、ANSI規格でもないから、今のところ
作業予定はないよ」と言っていました。
0424デフォルトの名無しさん
NGNGACL がでてないみたいなので一応書いておく。
CL-USER(1): (class-name (class-of (class-of #'make-instance)))
ACLMOP:FUNCALLABLE-STANDARD-CLASS
ACL 6.2 にて。
0425デフォルトの名無しさん
NGNG0426デフォルトの名無しさん
NGNG(- 1)
はなぜ-1になるのでしょうか?
引数が一つの時は引数に-を付けて返す、というのが関数として定義されてるから
という理解でいいのでしょうか?
0427デフォルトの名無しさん
NGNG>という理解でいいのでしょうか?
いいです。
Function `-'
http://www.lispworks.com/reference/HyperSpec/Body/f__.htm
> If only one number is supplied, the negation of that number is returned.
0428デフォルトの名無しさん
NGNG関数定義されてるから、という理解でよかったみたいですね。
どうもでした。
0429デフォルトの名無しさん
NGNGは1
(+)
は0
0430デフォルトの名無しさん
NGNG-を付けて返すと、the negation of that number is returned は全然違うぞ
0431デフォルトの名無しさん
NGNG0433デフォルトの名無しさん
NGNGthe negation of taht number は正負反転した数のこと。
negative numberというぐらいだから、負は正の「反対」だと
自然に思っているのだろうね。
0434デフォルトの名無しさん
NGNG「-を付けて返す」と「正負反転して返す」は全然違うぞ
0435デフォルトの名無しさん
NGNG何が、どう違うかいいなよ。
0436デフォルトの名無しさん
NGNG「-を付けて返す」という言い回しに対しての、
無益な重箱の隅を突く日本語講釈ですか?
(最近、関数型関連スレはこの手の変な人が増えて悲しいですね。)
ところで、
(- -1)
この式は何が返ると思いますか?
0437デフォルトの名無しさん
NGNG0438デフォルトの名無しさん
NGNG予想2:文字通り (- -1) => "--1"
0439デフォルトの名無しさん
NGNG>この式は何が返ると思いますか?
>予想2:文字通り (- -1) => "--1"
字面レベルでの議論だとは気がつきませんでした。
複素数の場合かなとも想像していました。
0440デフォルトの名無しさん
NGNG('A`) => (-_-)
(゚д゚) => (゚∀゚)
(* ゚▽゚) => ゚▽゚
0441デフォルトの名無しさん
NGNGなんだか処理系によって値が違うんですが。
(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))
と異なる結果になるんです。言語仕様上どっちが正しいんでしょうか?
0442デフォルトの名無しさん
NGNGこのへんかな
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
0443デフォルトの名無しさん
NGNGhttp://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を共有して使いまわしていいと言っているわけではないと思う。
0444デフォルトの名無しさん
NGNG`(,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はこの場合関係ない。
0445443
NGNG最初は、俺もquoteの一種だから変更するべきじゃないと、
正しく解釈していたんですが規格を誤読して解釈を変えてしまいました。
書き直さなきゃならないコードがあるな。ありがとう。
この場合、cmuclは以下のような事をやって、consしないようにしていると
いうわけね。
(let ((list (list nil nil)))
(defun bq (x)
(setf (car list) x)
list))
0446デフォルトの名無しさん
NGNG>いうわけね。
例が間違っていました。忘れてください。
0447441
NGNG(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))
となりました。リストの末尾に定数リストが来ていると使い回されるようです。
0448デフォルトの名無しさん
NGNGそうみたいですね。それで、その分、consする回数が減ってリソースの節約になり、
それは規格で許された動作であると。
0449デフォルトの名無しさん
NGNGhttp://www.lisp.se/emacs-cl/
0450デフォルトの名無しさん
NGNG0451デフォルトの名無しさん
NGNG0452デフォルトの名無しさん
NGNGxyzzy なんだけどなんか関連ってあんの?
0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNG0455デフォルトの名無しさん
NGNG>>451 >とりあえずぐぐってみてはどうか。
googleで調べてみたけど、結果を絞りきれなかった。Emacs系エディタリストには記載が
あったけど、情報は名前だけ。Common Lispのサブセットを搭載しているという情報はなし。
0456デフォルトの名無しさん
NGNGJargon Fileの
ttp://www.catb.org/~esr/jargon/html/X/xyzzy.html
を参照。
0457デフォルトの名無しさん
NGNGcmucl web siteの指示どおりanonymous cvsで入手しようとすると、
/home/anoncvs/CVS-cmucl: no such repository
と言われて失敗します。
0458デフォルトの名無しさん
NGNGhxxp://common-lisp.net
0459デフォルトの名無しさん
NGNGありがとう、入手できました。
linuxのfirefoxでcommon-lisp.netを表示すると、トップページの横一列になった項目に
打ち消し線がかかっているように見えるので、ずっと、改装中なのかと思っていたよ。
たぶん、単なる下線の表示がおかしくなっているのね。
0460デフォルトの名無しさん
NGNG0461デフォルトの名無しさん
NGNG0462マグデジニウム偏角線
NGNG処理系は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")を評価する」
と云う継続が代入されるのではないかと思ったのですが、なぜそうではないのでしょうか?
0463デフォルトの名無しさん
NGNG0465デフォルトの名無しさん
NGNG暇に飽かせてANSI CommonLispの解答っぽいものを作ってみました。
誤り、勘違いなどあったら教えて頂けるとありがたいです。
0466デフォルトの名無しさん
NGNG0467デフォルトの名無しさん
NGNGlist: (a b c)
tree: (a (b) ((c))))
graph: #1=(a #2=(b . #1#) . #2#)
graphのもっとよい表記法を希望します。
0468デフォルトの名無しさん
NGNGScheamて。
それにDrShcemaとはなんや?
>私が読んで良かったなー、と思っている本を紹介します。
ほんとに読んだのか?
・・・まあそれはともかく、
紙媒体の参考資料集としては使えるかも。
0469デフォルトの名無しさん
NGNG11冊は多すぎ。一冊読めば使えるだろ。しかもC++を使う⇒=Windowsユーザと勘違いしてるし、
他の項目も同様。
0470デフォルトの名無しさん
NGNG0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNG(define x (cons 'x 'x))
(set-car! x x)
(set-cdr! x x)
x
==> ???
0473デフォルトの名無しさん
NGNGhttp://srfi.schemers.org/srfi-38/srfi-38.html
x => #0=(#0# . #0#)
0474デフォルトの名無しさん
NGNG(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))))
0475デフォルトの名無しさん
NGNG(define (f x)
(letrec ((g (lambda (x) (* x x))))
(g (* x x))))
0476デフォルトの名無しさん
NGNGlet でいい
0477デフォルトの名無しさん
NGNGこの場合は、だろ
0478デフォルトの名無しさん
NGNG; (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))
を評価した結果が違う.
0479デフォルトの名無しさん
NGNGそんなことより、質問の答えが知りたい。
0480デフォルトの名無しさん
NGNG考え方がおかしい。定義は実行されない。
0481479 != 474
NGNG(define (f x) ..
(define (g x) ..
だと、fが定義されるときにgも定義されそうだが、
(define (f x) ..
(let ((g ..
だと、gに値が束縛されるのは実行時ではないか、
ということだと思うが、結局何が違うのかは俺にはよくわからん...
0482デフォルトの名無しさん
NGNG(define (g x) (+ 1 x))
(set! g (let ((g g)) (lambda (x) (+ 1 (g x)))))
(g x))
こんなんだったら違いがでるんじゃない?
0483デフォルトの名無しさん
NGNGProgramming as if Performance Mattered
http://www.dadgum.com/james/performance.html
0484デフォルトの名無しさん
NGNGありがとうございます。
SRFIにあったとは気づきませんでした。
英語読まないとだめですね・・・。
0485デフォルトの名無しさん
NGNGトップレベルのdefineとinternal defineは、字面は同じ
"define"だけど、全然別物だよ。
前者はトップレベルの束縛を定義するもの。後者はレキシカル
変数の束縛を定義するシンタックスシュガーでletrecと同じ。
0486デフォルトの名無しさん
NGNGそれで納得。CommonLispのdefunとは違うんだね。
>>484
Schemeで、REPループがwrite/ssを使うように指示するにはどうすんのかな。
CommonLispなら変数*print-circle*をtrueに設定すればいいのだけれど。
0487474
NGNG局所関数定義(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))
0488デフォルトの名無しさん
NGNGそんなのは処理系依存
多少賢い処理系ならどっちもパフォーマンス的には同じかと
さらに賢く最適化をする処理系なら前者の方が良くなるはず
0489デフォルトの名無しさん
NGNGInternal defineが毎回コンパイルされると思ってるみたいだが、
そんなペナルティはない。evalじゃないんだから。安心して使え。
0490474
NGNG純粋に言語仕様だけを見れば,gのinternal defineの定義はfの実行時に毎回行われますよね.
でもそれなりの処理系を使っている限り,最適化してくれるので意識する必要はないということかな.
最適化というのは>>487のような変換を処理系が自動でやってくれるということでしょうか.
0491デフォルトの名無しさん
NGNG> 純粋に言語仕様だけを見れば
どこにそんな仕様が?
> 最適化というのは>>487のような変換を処理系が自動でやってくれるということでしょうか.
違う
後者の場合、f のコンパイル時には f-g は再定義される可能性があるため特定できないが、
前者の場合、f のコンパイル時には g が再定義される可能性は無いため (g (* x x) をインライン展開できる。
0492デフォルトの名無しさん
NGNG> 純粋に言語仕様だけを見れば,gのinternal defineの定義はfの実行時に毎回行われますよね.
確かに、インタープリタの場合、あなたの言う通りに遅くなる処理系が
存在する可能性もあるけど、そのレベルの事を心配して、コーディングを変える必要は
ないことが多いのでは。
0493474
NGNGありがとうございます.
なるほど,インライン展開ですか.考えていませんでした…
中身をある程度知っていないと効率的にしようと思った対策が
逆効果ってことはよくありますよねぇ.
0494デフォルトの名無しさん
NGNG外したレスなんでアドバイスに困る。
0495デフォルトの名無しさん
NGNG「gのinternal defineの定義はfの実行時に毎回行われますよね」
と書いている時点でclosureというものを激しく誤解している予感。
最も単純な(最適化しない)実装でも、closure g作成のコストは
f実行一回あたりcons一個分。
0496デフォルトの名無しさん
NGNGclosure g作成のイメージは、
(define g (list 'closure '(lambda (x) (* x x)) current-lexical-environment))
みたいな感じでいいのかな。
0497デフォルトの名無しさん
NGNG環境からxを探すコストがかかってしまう。
レキシカルスコープでは毎回同じxが発見される
ことになるんだから、ローカルにバインドされた
識別子はコンパイル時に参照に置き換えられるのが普通。
実行時には、レキシカル変数はもはやシンボルや
identifierではなく、名前のわからない、ただの参照になってる。
0498デフォルトの名無しさん
NGNGhttp://www.guile.jp
0499デフォルトの名無しさん
NGNG0500デフォルトの名無しさん
NGNG【以下の文章を、各種掲示板にコピペして47氏を救おう!】
すみません、貴サイトには直接は関係のない話題ですが、
広くネットに携わるものとして、いや、日本国民として、真剣に考えるべき事案であると考え、あえて宣伝させていただきます。
管理者様、もし、不適切とお感じならば、どうぞ削除なさってください。
先日、著作権違反の幇助との名目で、ファイル交換ソフトwinnyの製作者で、東京大学助手の金子勇氏(通称47氏)が逮捕されました。
しかし、winnyそれ自体は、違法なファイルの流通だけでなく、合法なファイルの流通も可能なものであり、著作権を違反するか否かは、ソフトの作成者ではなく、ソフトの使用者に、その責任がゆだねられるべき問題であります。
さきに、winnyを使用して、著作権違反で逮捕された二人のユーザーは、47氏と何らつながりのない人間であり、「幇助」の理由を付して逮捕するには、あまりにも無理があります。
以上の観点から、私たちは、Winny開発者、47氏に対する不当逮捕に強く抗議します!!
京都府警は、逮捕の理由として、「『著作権法への挑発的態度』が逮捕理由」に挙げたと、報道されています。この報道が真実であるとすれば、これは思想信条の自由の侵害であり、「思想犯」として不当逮捕したものと断ぜざるを得ません!!
これはもはや著作権の問題ではなく人権問題です!!皆様のご協力をお願いいたします。
詳しくは、下記ページをご覧下さい!
Winny開発者 47氏を救う為に
http://77483.org/47/
ネットワークの自由防衛同盟
http://www.netfreedom.tk/
プログラマ仲間の新井氏が設置したblog(47氏支援運動など)
http://www.moodindigo.org/blog/archives/cat_kaneko.html?page=%B6%E2%BB%D2%CD%A6%BB%E1%BB%D9%B1%E7
また、本運動に賛同される方、お知り合いの掲示板などに、本文章を掲示していただけると幸いです。
0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNG0505デフォルトの名無しさん
NGNG0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNGだが、普通に読めば催促にしか読めないだろう。
0509デフォルトの名無しさん
NGNGまず、尋ねている人が翻訳版「On Lisp」の読者かどうかさえ、分からないでしょう?
それに、翻訳者に向けて書いたのかさえ分からないし。自分でチェックするのが
面倒だから、誰かに聞いたとか。
あんまり自分の「普通」を信用しすぎないほうがいいよ。
0510デフォルトの名無しさん
NGNG509を発言したのが507だったら笑い話にしかならないけど。
0511デフォルトの名無しさん
NGNG「みんなが「普通」に「普通」と言う言葉を使っているから俺も"揶揄をこめて"「普通」と言ってみただけだよ」
と言ったら?
0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNG507のような意見を「普通」と考える人もいる。
また、507は出来るだけ「字面」のみで判断しようとしている点で、
できるだけ広い「普通」をカバーしようとしている。
「ことほどさように"普通"には同じ日本語を使う者の中でも差異がある」と
509は"普通"議論をもちだしたのではないの?
506が「"俺"には催促に聞こえるな」と言っていれば"普通"の意見だろうけどな。
0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNG裏づけが無ければその「普通」は507の中での「普通」でしかないわけで
507自身が509の発言をするのは結局のところ自分の中の「普通」を
棚に上げた都合のいい「普通」感の押し付けでしかないということだ。
0516デフォルトの名無しさん
NGNGnil
lisp> (in-package :俺)
#<The 俺 package>
lisp> (use-package :みんな)
Error: Using package `みんな' results in name conflicts for these symbols: 普通
[condition type: package-error]
0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNG0520デフォルトの名無しさん
NGNGけっこう、おもしろそうだ。つーか、まとまった資料を読みたく思う。
0521デフォルトの名無しさん
NGNG誰か実況たのむ
0522189=312
NGNGhttp://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/efont/wadalab-fontkit/
>>191 さんに助けていただかなければ絶対あきらめていました。ありがとう
ございます。
>>519 のセミナーに行かれる方がいらっしゃいましたら、>>189 が感謝して
いたと和田先生にお伝えいただければ望外の喜びです。
0523デフォルトの名無しさん
NGNG>ACL7.0の新しい正規表現ライブラリ 講演者: 川合史朗
Shiroさんはgaucheの開発をしながら、こんなライブラリを書いているのか。すごいね。
Edi WeitzさんのCL-PPCREとの比較レビューを読みたいな。
ACL Trial Editionはまだ6.2か。
0524デフォルトの名無しさん
NGNGあと Kahua もやってるでしょ
0525デフォルトの名無しさん
NGNGフリーのライブラリってありますか?
ACLだとあるみたいですが,フリーはなかなか見つからない・・・
0526デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNGページ見ていると同じ人種だなっていうか、哲学とか高度な話題をさりげなく
振ってしまう高学歴lisperの中でもヒトキワ庶民派って言うか、アホな記事を
読んでいたりすると、(例えばメリケンは飯の味はわからねぇと文句タレる新山)
Oh,Pretty!なんて感じたり。ヒヒヒッ。
同じ穴のムジナっていうかにほいがするんだよね。っーつわけで新山センセもがんばって
メリケンのように弾けまくっってください。
0529デフォルトの名無しさん
NGNG0530デフォルトの名無しさん
NGNG最新のアホ GtkYes http://www.unixuser.org/~euske/silly/gtkyes/ の
無意味さにはワラタ (ダイアログ全てにビシバシ [Yes] を押してくれる
ランチャーのような単なる実用プログラムを彼が作るはずがない)。
0531デフォルトの名無しさん
NGNGなかったか。
新山ネタをフりつつ真面目な話をして恐縮なのでありますが、Symbolicsのマシン
を知って思ったのです。lispでレンダリング(行列計算や座標計算)までやって
いるのだろうか?と。例えばcのmallocのようなヒープの確保をするような場面
ってあるじゃないですか。ピットマップを操作する場合などですが、その場合
lispではどのように処理しているのだろう?と疑問に思ったのです。
GIMPのスクリプトもscheme系らしいですが、Cやfortranならば配列とかmalloc
である程度のメモリーを確保してそのメモリーへの各種操作という形になります
よね。lispだとリスト処理や記号処理のイメージが強くてどうしてもSymbolicsの
ようなCGのビットマップ操作や座標変換、行列の計算のイメージが全く頭に浮かばない
のですが、詳しい人この辺りの話しりませんか?
0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNGbit-vector型なんてのもあるから、ビットマップ操作は普通にできる気がします。
行列型はないけど、多次元配列は使えるので、行列の操作関数群もだれかがすでに
書いて公開している気がします。
0534デフォルトの名無しさん
NGNGoptimizeでspeed最高、safety最低にしてちゃんと型宣言すれば、
simple-vectorやbit-vectorのアクセスはCで配列使った場合と
変わらないよ。そのかわり配列の境界チェックや型のチェックは
プログラマの責任になるけどね。
0535デフォルトの名無しさん
NGNGそのくらい、プログラム開発システムとして完成度が高い?
それともWindowsとVisual Studioなんかと比べたら見劣りする?
経験者の人、いねーかな。
0536デフォルトの名無しさん
NGNGあのレベルに到達できていないらしい。本当かどうかは知らんけど。
アレをオープンソース(システム?)として公開しようとかいう動きもどっかにあったような。
0537デフォルトの名無しさん
NGNG思ってしまいました。何らかのツリー型データベースも一旦ファイルからリストへロードして
などするのかと。
もう一つ聞きたい事があるのですが、Lisperの人たちは手続き型プログラミング
で言うところのフローチャートのような図は書いたりしないのですか?
オブジェクト指向となるとUMLなどありますし、Lispだとどんな図を日常的に
書いているんでしょう?リストか?、再帰のツリーかな?
Symbolicsの画面キャプチャにはそれっぽい図も見かけたりしますが。(class継承の
ずのようなもの)
>ILC2003に居合わせた人達が言うには商業的に失敗しただけで現存するどの処理系も
>あのレベルに到達できていないらしい。本当かどうかは知らんけど。
という事は、現物を触った人はここには誰も以内と?
昔の第五世代コンピュータプロジェクト辺りでLispマシンを研究していたと
言うような話を聞いた事があるんですが、サイ(psy)のあれは推論マシンだしたか?
0538デフォルトの名無しさん
NGNGhttp://www.pfu.co.jp/hhkeyboard/kb_collection/images/symbolics.gif
このキーボードは使いやすそう
0539デフォルトの名無しさん
NGNG使った人によればAの隣のRUBOUTは一度慣れると病みつき
だそうです。
オレの代の頃にはハードがいかれてたんでほとんど置物と
化していて残念だった記憶が。いじり倒してみたかった...
0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNGもしかして、Lisperはリストしか使わないとか思ってた?
自分でコード書くときに図を書くことってほとんどないな。
コードが大きくなりそうな時に全体の構成をコメント中にメモったりはするけど。
他人のコードを読む時には、Allegro Composerだと関数の呼び出し関係や
クラス階層をグラフ表示してくれるんでたまに使うかな。
0542デフォルトの名無しさん
NGNGhttp://shibuya.pm.org/blosxom/techtalks/bkcon_reviews.html
で最近講演してますね。
0543デフォルトの名無しさん
NGNGバックスペースでプロンプト文字 "<" を超えて
行頭までカーソル移動してしまいます。
動作は問題ないのですが何かと不便で困っています。
何かお気づきの点がありましたらお願いします。
0544デフォルトの名無しさん
NGNGstty の設定か何かで、改行コードが CR+LF (Carriage Return + Line Feed) に
なってるからでは?
勘違いだったらスマソ。
0545537
NGNG0546デフォルトの名無しさん
NGNGttp://www.sra.co.jp/smalltalk/SML/archives/2004-May/006503.html
0547デフォルトの名無しさん
NGNGflatline氏の日本語訳『on Lisp』、第20章「継続」の説明がすばらしい。
いろいろ読んだけど、これほどすっきりと理解できたことは無かった。
ありがとうございます。
ところで、pdf版の図109(P148)、TeX のタグが残ってしまっているようです。
ご報告まで。
0548543
NGNG今色々キータイプしてみたら Ctrl + BS で
バックスペースが出来て,プロンプト文字 "<" でブロックされました。
何か分かりますでしょうか?
0549デフォルトの名無しさん
NGNGhttp://tabesugi.net/memo/2004/61.html
> 新山は、汎用プログラミング言語としての Lisp (Scheme) はもう信用していない。
> だって、現在のたいていのアプリケーションで大変なのはデータ構造の設計と
> 入出力の扱いで、そういう部分はふつう圧倒的に手続きだらけなんだもん。
…(略)…
> いまでは自然言語処理っつうと、ほとんどが「どーやって大量のデータを収集・
> 変換・学習・適用するか」につきているので、これはおそろしく手続き的な操作で、
> Scheme なんか使ったらほとんど begin と let* だらけになる。
新山氏が以前言っていた
http://tabesugi.net/memo/2003/92.html
> だいたい新山はもともとストイックな Scheme が好きだったのだが、あまりに
> 実用的でないから Python に「逃げてきた」のである。
って、そういうことだったのね。ライブラリの少なさの問題ではないのね。
ちなみに、COBOL の代わりにこそ Java ではなく LISP を、という主張もされていて、
(最初の引用元を参照)、こちらも非常に興味深い。
0550デフォルトの名無しさん
NGNG0551デフォルトの名無しさん
NGNG0552デフォルトの名無しさん
NGNGと
> Scheme なんか使ったらほとんど begin と let* だらけになる
に論理の飛躍を感じるのは漏れだけですか?
ブブカもびっくりですよ。
『Schemeはプログラマを映す鏡』だなあと思う今日この頃、おまえら、いかがお過ごしですか。
0553デフォルトの名無しさん
NGNG>> 552
ところで「begin, let*を使うコードだらけになるじゃん」と言う主張は
新山さんが明らかに何か分かってないという証拠になるのかな?
もしそうならどうしてそうなのか教えて欲しいなぁ。
0554デフォルトの名無しさん
NGNG0555デフォルトの名無しさん
NGNG普通に動いたよ。ドキュメント読む暇が無いんで後回しになってるけど。
0557デフォルトの名無しさん
NGNGレスサンクス。試してみる。
古参Interlisperの話を聞いてみたいな…
0558デフォルトの名無しさん
NGNGつまるところ、ストイックな Scheme で全てをやろうとすると、
begin や let* の嵐になるということではないか。言いかえれば、gosh などの
現実的(または妥協的)な Scheme 処理系を使ったことがないのかもしれない。
日記は良く読んでないので外してるかもしれんけど、新山氏は普段 Python を
使ってるらしいからね。
# ほら、Python ってライブラリが充実してるじゃん
0559デフォルトの名無しさん
NGNGおれも聞いてみたい。どうしてもSymbolicsとかの統合環境への夢が捨てがたい。
いま良くあるような保護指向のOSのモデルと、統合環境指向のシステムを
うまく統合させる方法ってないのかねぇ。
0560デフォルトの名無しさん
NGNGたぶん、「ストイック」の意味が違うと思う。
変数をできるだけ使わず、関数のネストだけで
コーディングするのがストイックなScheme流なんだと
思う。
0561デフォルトの名無しさん
NGNGそれは Scheme 限定というより、Lisp 族の一般的な慣習のような。
ああでも、elisp やってる人達はちょいと違う気もするけど。
まあどうでもいいか。
0562デフォルトの名無しさん
NGNG0563553
NGNGに賛成。でも個人的には、関数型プログラミングの作法と手続き型の作法をまぜこぜに使えるのがLISPの強みの1つだとおもうので、新山さんの意見には賛同できないんだけど。
0564デフォルトの名無しさん
NGNGCVS の CHANGELOG には Linux で pthread サポートしている様に書いてありますけど。
0565デフォルトの名無しさん
NGNGこれを関数型の記述のまま、計算量を減らすことはできないでしょうか?
まず、定義どおりに関数型で記述してみました。
(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)))))
0566デフォルトの名無しさん
NGNG(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 さんのところも見てみたのですが、
http://www.shiro.dreamhost.com/scheme/gauche/man/gauche-refj_86.html
これも結局、手続き型と同じ、小さい項をまず計算して、徐々に大きい項を求めていく
やり方でした。定義がそのままコードになるような書き方ではないと思います。
ということで、質問をもう一度まとめますと、
定義がそのままコードになるような書き方で、fibonacci 数列の一般項を求める関数の
計算量を減らすことはできないでしょうか?
以上です。どうかよろしくお願いいたします。
0567デフォルトの名無しさん
NGNG一度計算した値をとっておくだけで、再帰的な「素直な」定義はそのまま。
0568デフォルトの名無しさん
NGNGありがとうございます。memo関数とは、これのことでしょうか?勉強してみます。
http://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) が何回現れても、それは毎回、別の約束オブジェクトとみなされるから、
再計算するしかないのですね。まだまだ勉強が足りないなあ。
0569(define (´∀`) 'マターリ)
NGNG(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)))))
0570デフォルトの名無しさん
NGNG> 末尾再帰に無理に書き換えた
そうか?俺には自然に見える。
末尾再帰 = ループ という概念に慣れていないだけでは?
0571デフォルトの名無しさん
NGNGの最後に載ってるfibがO(log n)でなかったかな
0572デフォルトの名無しさん
NGNG面白いコードをありがとうございます。ただ、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
恥ずかしながら、このコードは私には難しいです。
慣れた人になら、このコードも関数型らしい「定義を書くだけでそれがそのままコードになる」
記述に読めるのでしょうか?
0573デフォルトの名無しさん
NGNG×自分がわかりやすいように書き直した、
○自分にわかりやすいように、自分なりに書き直した
0574デフォルトの名無しさん
NGNG0575デフォルトの名無しさん
NGNG"関数型らしい「定義を書くだけでそれがそのままコードになる」"
ってだれに聞いたのか知らないけど、幻想入り過ぎなのでは。
0576デフォルトの名無しさん
NGNG計算機プログラムの構造と解釈
問題3.27 メモ化
問題1.19 対数的
0577デフォルトの名無しさん
NGNGその書き方のまま、高度なキャッシングをするよう最適化するような処理系があったらうれしいな。
仕様としては、R*RSには入らないだろうけどSRFIになら入りそう。
でもこれは夢のような技術っぽい。
0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNGhttp://mitpress.mit.edu/sicp/full-text/book/book-Z-H-22.html#%_sec_3.3.3 と
http://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 を知っていたらなあ。
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-11.html#%_sec_1.2.4
は私には難しいので、時間をかけて考えてみます。
ということで皆さま、いろいろありがとうございました。
0580デフォルトの名無しさん
NGNGhttp://www.sci.toyama-u.ac.jp/~iwao/Scheme/scheme.html
ここに処理系のリンク先あり
Windowsなら
DrScheme
あるいは
Petite Chez Scheme + ChezEdit
が簡単
0581デフォルトの名無しさん
NGNGDrSchemeを入れてみました。
40Mってのには驚きましたよ。
0582デフォルトの名無しさん
NGNG午前中は完全に雑談だった。せっかく早起きしたのにちょっと鬱。
明日に期待しよう。
0583デフォルトの名無しさん
NGNGまあそう言うな、生CEO や生和田先生や生Shiroさんが見れただけでもオレは満足だ
もっとちゃんと時間をとって役に立つ話をやって欲しいとは思ったけど
0584デフォルトの名無しさん
NGNG漏れ行きたくても行けない地方在住者。
レポートキボンヌ!キボンヌ!
0586デフォルトの名無しさん
NGNG; Fast loading /opt/franz/acl70b/code/regexp2.fasl
;;; Installing regexp2 patch, version 0
; yacc constructing #<GRAMMAR-CLASS REGEXP> ...
; Finished
T
CL-USER(3):
regexp2キター
0587デフォルトの名無しさん
NGNGしかしACLの値段は高いのお…
0588デフォルトの名無しさん
NGNG・HSPに関係の無い話題でスレッドを上げまくる
・HSPオフィシャルサイトの住人を名指しで誹謗中傷する
・重複スレを乱立させる
などの荒らし行為を行っています。
みんなで団結してム板のゴミどもを追い出しませんか?
【HSP関連スレ】
【皆のレイプ魔】HSP初質P25【WWEヲタ=ハゲ】
http://pc5.2ch.net/test/read.cgi/tech/1086878505/
HSP>>>>>>>>>>>>>C=糞w
http://pc5.2ch.net/test/read.cgi/tech/1071899663/
今日もどこかでHSP初心者が質問ですP19
http://pc5.2ch.net/test/read.cgi/tech/1084089079/
HSPについて
http://pc5.2ch.net/test/read.cgi/tech/1085149790/
0589デフォルトの名無しさん
NGNGStructure and Interpretation of Classical Mechanics
を読み進むのにScmutilsを使いたいのだが、MITScheme
は苦手だ。他の処理系に移植されていないだろうか?
Chez Scheme にあるとうれしいのだが。
0590デフォルトの名無しさん
NGNG私もぜんぜん知らないのだけど、Google で検索すると、
ChezEdit-NT の作者である 笹川さんが出てくる。
http://www.sampou.org/scheme/sicp/mailingList/msg01408.html
その結果は
http://chabo.kingdom.biglobe.ne.jp/93453084312522391/bbs/index9.html
> SICMのためのScmutilsを動かしたいんだけど、MIT-Schemeはどうも苦手だなぁ。
> かといって移植するのは大変な労力だ。どうしたもんだろう。
どうも移植はされていないっぽい。
Gauche 方面では、
Scheme:ライブラリ -> scmutils
http://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 に行くしかなさそう。
0592デフォルトの名無しさん
NGNGこのページの例を見て、目がさめるようによく分かりました。
http://www.namikilab.tuat.ac.jp/~sasada/diary/200308.html#d28
なあんだ、まず最初に巨大にネストした無名関数をこしらえて、
それを一気に実行するだけじゃないか。
それだったら、普通にスタックが積まれる再帰とコストが等しくて当然。
しかし、Petite Chez Scheme は CPS の方が二倍ほど速いのですね。
自分の手元で試してみても同様でした。不思議ですね。
0593デフォルトの名無しさん
NGNGこないだAllegroCommonLispのウワサを聞きつけトライヤル版を試してみたくて
ダウンロードしたんだが、さっきFranz.comのSalesManagerのクレイグから
いきなしメール来て、ACLを何処で知ったか、とかいって幾つか質問が
書かれたハードオファーなメールが来たんだよ。英語だし意味ワカンネエし、
毎日にチャンネルしかやってない俺にとって非常に恥ずかしいっていうか、
何で俺のようなアホにメールよこすんだよ!っていうか、「読んでくれて
ありがとう。私はあなたからすぐに便りをもらうことを期待します」とか
クレイグ書いてるし、そういう訳で困っています。
普段アホの新山とかblog読んでアヒャヒャと喜んでいるアホなのですが、天才新山名誉
教授でもなんでも良いのでだれか知恵を貸して下さい。
知名みにlispは初心者で、本当はAllegroCommonLispよりもGaucheを使って
半日ほどハアハアしてたりDを使っていました。
0594デフォルトの名無しさん
NGNG相手は単に商売なんだから、ほっといたらいいんではないかー?
0595デフォルトの名無しさん
NGNG「ウミネコ」の魔術をといてやるよ
0596デフォルトの名無しさん
NGNGトライアル版落とすとそのメール来るよね。
前に落としたときは日本の法人から営業担当者のメールが来ますたよ。
そんな高いもん個人で買えないからご遠慮メール出しちゃったら、担当が変わりましたメールが忘れた頃に(w
そこまで売りたいなら値段下げれ!とか思た(藁
0597デフォルトの名無しさん
NGNG0598595
NGNG0599デフォルトの名無しさん
NGNG知れないから指導教員に頼んでみるのもいいと思うけど。
0600デフォルトの名無しさん
NGNG使ったことがある人のAllegro CLの「これはべんりだ」ってあたりを
聞かせてもらえるとうれしいかも。
あと、個人的にはAlleglo Storeがすごそうなんだけど、そのへんも。
0601デフォルトの名無しさん
NGNG処理系があるのはACLだけかな。Trial版でもちょっとしたプログラム開発には十分使えますよ。
0602デフォルトの名無しさん
NGNG0603デフォルトの名無しさん
NGNGで紹介されているSECDR-Schemeですが、配布元のサイトが
無くなっているみたいです。
私が利用しているDNSが悪いのでしょうか?
誰か親切な人うぷしていただけませんか?
0604603
NGNG0605デフォルトの名無しさん
NGNGLispWorksは?
>>603
覚えてたら暇なとき発掘してみるよ。flatlineさん(だっけ?)が上げてたサイト使わせて
もらってねら〜Lisper用ポータルでも作ろうか。
先週のセミナーでも思ったんだけど、Lisp興味あるけどどこから手を付けたらいいのか
わからないって人も結構居るみたいだし。
0606デフォルトの名無しさん
NGNGわからないって人も結構居るみたいだし
禿げしく力強くうなづきつつ、同意。
0607デフォルトの名無しさん
NGNGとりあえず c.l.l と Blog と wiki と *-dev 系の ML はチェックしてる。
0608デフォルトの名無しさん
NGNGそうだよなぁ。
Schemeに関して言えば、そういう情報を集積する場所としてWiLiKiがあると
思うのでがしがし「こんな情報はないのか?」って書き込んでみるといいかも。
0609デフォルトの名無しさん
NGNG次スレは
【common lisp】(S式のみで語らう漢のスレ)【scheme】
でお願いしm
0610デフォルトの名無しさん
NGNG(だが気をつけ給え。
((その論理)の行きつく先は)
(激しく読み難い(スレ)だ))
0611デフォルトの名無しさん
NGNG(and (気をつけ給え。 インデント)
(equal (修正すると >>610)
(気をつけ給え。
(equal (行きつく先 (その論理))
(激しく読み難い スレ)))))
0612デフォルトの名無しさん
NGNG去年、プログラミング言語2(Scheme)の単位落としたんだよな・・・
今年の後期プログラミング言語2(Lisp)取らないと・・・
0613デフォルトの名無しさん
NGNGおれんとこは2年前から逆になったわけだが
0614デフォルトの名無しさん
NGNG0616デフォルトの名無しさん
NGNGメリットを感じましたか?
私は Scheme をある程度おぼえて、簡単なプログラムなら書けるようになったの
だけど、この知識が例えば Java でのプログラミングに生かせるかというと、
今のところ、よく分からない。
関数プログラミング、ファーストクラスクロージャ、継続、マクロなどはとても
面白いと思ったけれど、Java では使えないし。
今のところ、JavaScript で何かできるかな?と思うぐらいです。JavaScript には
ファーストクラスクロージャがあるから。
エリック・レイモンドが
http://cruel.org/freeware/hacker.html
「LISP は、それをモノにしたときのすばらしい悟り体験のために勉強しましょう。
この体験は、その後の人生でよりよいプログラマーとなる手助けとなるはずです。
たとえ、実際には LISP そのものをあまり使わなくても。」
と言っていたのはどういう意味なんだろう?
0617デフォルトの名無しさん
NGNG> たとえ、実際には LISP そのものをあまり使わなくても。」
LISP を直接扱う仕事が少ない、LISP の技法が C に直接マッピングし辛い(クロージャとか)って
事ですよね。Java でも無名クラスとか CPS とか使う機会はそれほど無いのではないでしょうか。
0618デフォルトの名無しさん
NGNGSecdr.tar.gz が 313KB なんでそれくらいでしょうね。ライセンスは GPL みたいなんで
うぷろださえあれば私もうぷ出来ます。
ところで、SECD マシンじゃなくて SGCD マシン(G-Machine)というのがあるみたい
ですが、これってどういう物なのでしょうか?
ググって見たらグラフ理論と関係あるみたいですが、グラフ理論って最適化とかでよく
聞く物の、中身が良く分かりません。。。
0619デフォルトの名無しさん
NGNGちょっとメール欄が気になりますが、まあ、まさにその通りです。それだけでは
Java のプログラミングスタイルが大きく変わる、という気がしないんです。
Lisp の良さは、どのようにも書けることだと思うんです。手続き型風にも、オブジェクト
指向風にも、関数型風にも書ける、何でもそろう百貨店のようです。
ところが他の言語は専門店なんです。例えば Java はクラスベースの型制限のきつい
オブジェクト指向言語として書く以外に、あんまりできることがない。そうすると、
結局デザインパターンに従って書くより他にないのかな、ということになってしまう。
Java 捨てろ、と言われても、Lisp でやらせてもらえる仕事なんてないし。
皆さんはどのように考えていらっしゃいますか?
>>618
私もグラフ理論はぜんぜん知らないんですが、n次空間での点と線の組み合わせの性質を
研究する学問だと聞いたことがあります。応用としては、回路図を基盤に起こすとき、
どのように回路を取り回せばよいかを検討するのに役立つそうです。
レゲエ数学者の秋山仁先生が、日本における第一人者だそうです。
『秋山仁の 落ちこぼれは天才だ 』
http://www.amazon.co.jp/exec/obidos/ASIN/4062739623/
0620デフォルトの名無しさん
NGNGんー。逆方向で。
Lisp が百貨店だとしたら、他の言語で初めて触れるような機能に出くわしたとき、
「ああ、これは Lisp で言ったら○○だな」
て風に(Lisp にマッピングして)理解してみる、ということがやり易い、
ていう具合に考えてみるのはどうでしょう。
0621デフォルトの名無しさん
NGNGG-Machineは、lazyな言語向きの仮想機械で
実行にグラフ書換えを利用してるものだったような。
うろ覚えだけど。
グラフ書換えについては、
『コンピュータ基礎理論ハンドブック』のたぶん2巻に解説があった気がする。
0622デフォルトの名無しさん
NGNG確かにそれはできるかも知れません。実は Lisp を源流としている技術はこの業界には
すごく多いみたいですから。
Java には、フレームワークだとか、EJB とかさまざまな新技術が次々導入されて
いますが、「あ、これは Lisp のアレに相当するな」と分かれば習得は早いでしょうね。
しかし、もともと Lisp のエキスパートだった人はそれで良いでしょうが、今から
Lisp を学ぼうという人はどうでしょう?遠回りをせず、Java の新技術を学んだ
方が早いのではないかという気がします。
何しろサーバサイド・プログラミングは Java の一人勝ちで、Java だけ覚えれば
それで済んでしまうような状況ですから。代わりに Lisp が普及していてくれたらなあ。
0623デフォルトの名無しさん
NGNG以前、「継続というのは、靴下を裏返すようにして、ひっくり返した ラムダ」
という話を聞いて感動したのですが、
この下のほうの Shiro さんの説明
http://www.shiro.dreamhost.com/scheme/wiliki/wiliki2.cgi?Seminar%3aKahua
「値を返す ≡ 値を継続手続きに渡す」
これを聞いて、さらに感動しました。
結局 Scheme の制御構造は ラムダしかない。関数もブロックも環境も、全部
ラムダ。なんか世界の見え方が変わってしまいますよね。
しかし、これを Java でのプログラミングに、どのように生かせばいいのだろう…。
0624デフォルトの名無しさん
NGNG1. 再帰を恐れる.再帰で考えられない.再帰のコーディングの仕方に慣れていない.
2. 配列ばっかり.
3. スコープについてしっかり理解できていない.
4. なぜか速度ばかり気にして,少ないステップ数を重視した見辛いコードを書く.
といった感じになると思います.
でも,これは「言語はいくつか学べ」の理由でしか無いかも.
0625デフォルトの名無しさん
NGNGお前、C使いに物凄い偏見を持っていないか?
または、たまたま >>624 の周りでCを使う奴は皆
その程度にしか使えないだけなのか?
0626デフォルトの名無しさん
NGNG何故 scheme は list の末尾が nil ではないのですか?
末尾は nil にしておいた方が美しい設計だと思うのですが・・・
0627デフォルトの名無しさん
NGNG0628デフォルトの名無しさん
NGNG0629デフォルトの名無しさん
NGNGリストの末尾は他と区別できる単一の要素(空リスト)があればいいだけなので、特にnilだと
美しいという根拠がわかりません。それよりも真偽値と区別のないLispよりはSchemeの方が
すっきりしているのではないでしょうか。そもそも真偽値とリストは型が違うわけですから。
0630デフォルトの名無しさん
NGNG名前が欲しいだけなら(define nil '())で。
0631デフォルトの名無しさん
NGNG'(a . nil) が (a) にならない罠
0632630
NGNGごめん、忘れてください。
0633603
NGNG有難う御座います。↓とかにうpして貰えれば嬉しいです。
ttp://www.uploda.net/cgi/uploader2/index.php
>>605 = 615
ご親切に有難う御座います。
bz2でうpできる場所は、見つかれませんでした。
拡張子を誤魔化してうpするという方法が、可能かどうかまで調べていません。
気が向いたら、うpしてください。
0634デフォルトの名無しさん
NGNGいらっしゃらないのでしょうか。この言語はとても魅力的だけど、仕事にほとんど
生かせないのなら、なんとも悲しいものがあります。
Namazu の高林さんが
「Scheme を学んでからは、他の言語でプログラムを書くときの切れ味もずいぶん変わった
気がする。」
http://namazu.org/~satoru/unimag/10/
と言っていたから、すごく期待していたんだけどなあ。
そう言えば高林さんは、Java が嫌いだとも言っていたか…。
http://www.ogis-ri.co.jp/otc/hiroba/others/OORing/interview20.html
0635デフォルトの名無しさん
NGNG0636デフォルトの名無しさん
NGNG上げといた。こういうの使うの初めてなんだけど、これで良いのかな。
0637デフォルトの名無しさん
NGNG今どきLispをやろうなんて物好きは、趣味で楽しんでやってるだけなんだから
仕事に生かそうなんて期待するな。
0638603=633
NGNG勝手に想像していたものより良い意味で裏切られました。
まだ、ちょろっと読んだだけですが、付属のLibも一通り揃っている感じですし
SECDRのRを何故Sから分離したのか、勉強してみたいと思います。
そういえば、どこかでSECDH machineというのが有ると聞いたときがありますが
ここでのHの意味って、何なんでしょうね?
0639デフォルトの名無しさん
NGNGプログラミングスタイルが変わらないんだとしたら、要するにLispで
やってるような抽象化が必要とされるようなプロジェクトをやってない
ってことでは。実際、Paul Grahamがなんと言おうと、世の中の
プログラムの9割はそんな「力」を必要としないんだしさ。
漏れは、どうしても仕事でLisp以外の言語で書かざるを得ない時は、
人間コンパイラになったつもりで頭の中の高階関数のコードを静的な
クラスに展開したり、人間マクロエクスパンダになったつもりで
パターンに沿ったコード書いたりしてるけど。つくづく無駄なことを
してると思うが、そのぶん金払うのはお客さんだしね。
ただ、どうしても我慢ができなくなった時は、LispでJavaやらCやらの
簡易マクロプロセッサを書くこともある。
0640デフォルトの名無しさん
NGNGそう割り切ればいいのかもしれませんけど、仕事しんどいし、何かこの知見を
利用して楽になれないものかと思っちゃうんです。
>>639
> 要するにLispでやってるような抽象化が必要とされるようなプロジェクトをやってない
ああ、それはありますねえ。
せっかく CPS を理解したんだから、今度の Java の仕事で session に継続を
保持させてみよう、と思ったんですが、考えてみたら、CPS を用いるほど細かい
制御はまず必要ないんです。
Lisp が一番力を発揮するのは、構文解析とか、複雑な構造のデータを扱う場合
だと思うんですけど、そういう仕事やってないですし。DB に SQL を発行して、
返った値をオブジェクトに収めて、JSP で表示させて、ハイ、おしまい。
マクロで展開させたいと思うようなことも、あんまりないです。
嫌だと言っても、世の中の99%はそういう仕事ですし。
「技術野郎の復讐---Revenge of the Nerds---」への反響
http://www.shiro.dreamhost.com/scheme/trans/icadmore-j.html
>>635 氏の言う通り、私には Lisp は必要なかったのかな?いや、Lisp 業界が
私を必要としていないのか。…鬱だ死のう。
0641デフォルトの名無しさん
NGNG標準IOをインターフェース変えずにファイルやソケットや文字列に割り当てたり。
C/C++言語もそういう仕様だったらよかったのに。
こっちは出来た時代が古かったんだね。
0642デフォルトの名無しさん
NGNGほかの言語でリストコンテナ書き直す回数が減った。
いまどきのC++やjavaには標準で付いてるけどね。
でもそういう標準コンテナを使うときも
LISPで培ったやり方が適用できると思う。
先にLISPのマクロ知ったおかげでboostとかのライブラリが幼稚に見える。
0643デフォルトの名無しさん
NGNGそれなら一番手っ取り早いのはJavaのエキスパートにコードを見せて
何か改善点がないか相談することでしょ。
改善のしようがなかったら、転職するかその仕事に耐えるかしかない。
どうやったらJavaに生かせるかLisperに訊かれても、そんなん知らんがな。
自分で応用していくしかないんだよ。
0644デフォルトの名無しさん
NGNG0645デフォルトの名無しさん
NGNG0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNG>被害妄想な645
0648デフォルトの名無しさん
NGNGどっかのMLにいたよ。
0649デフォルトの名無しさん
NGNG0650デフォルトの名無しさん
NGNG0651デフォルトの名無しさん
NGNGお前に言ったわけじゃないんだが
0652デフォルトの名無しさん
NGNG0653デフォルトの名無しさん
NGNG複雑なデータ構造の仕事をしている人だと、Lisp の経験が生かせるみたいですね。
>>643
なんというか最近、Java の世界そのものに息苦しさを感じてしまいまして。
Lisp の世界は自由自在・融通無碍だとどこかで聞きまして、Lisp だけで食っていける
人はまずいないそうですから、Lisper が Java を書くことも当然あるだろうと。
Java しか知らない人からじゃなくて、そういう視野の広い人から、話を聞いて
みたかったのです。
0654デフォルトの名無しさん
NGNG本物の Lisper なら、
>DB に SQL を発行して、
>返った値をオブジェクトに収めて、JSP で表示させて、ハイ、おしまい。
その作業を、システムを使うユーザーにやらせようとする。
つまりスクリプトを積む訳だ。
で、スクリプトには当然 Lisp を採用。
0655605=615
NGNGSECDR入手済みだよね?親切な人が生息しているようで何より。
過去ログ眺めてきたけど、何か妙に卑屈になってるのが居るみたいね。
2chで泣き言いってる暇があったら自分でLisp使う仕事作りゃいいのに。
漏れは作ったぞ。他にLisper居ないから1人デスマーチだけどな(w
0656デフォルトの名無しさん
NGNG暇なとき調べてみようと思って手付かずなので誰かが使用感レポートしてくれることを期待して貼っておこっと。
hxxp://www.evaluator.pt/linj.html
0657デフォルトの名無しさん
NGNGめんどくせーことするな
0658デフォルトの名無しさん
NGNGいまの設定は、下の設定です。
(setq scheme-program-name "d:/cygwin/usr/local/bin/gosh.exe -i")
http://kawacho.don.am/win/meadow/customize/dot-emacs-sample.html#japanese
ご面倒ですが、アドバイスをお願いします。
0659デフォルトの名無しさん
NGNGMeadow1.15はutf-8対応でないそうなので、Meadow2をインストールしました。
そして、M-x set-buffer-file-coding-system utf-8にしました。
すると、こんな出力になっています。
gosh> (display "山下")
ツ山ツ可コ#<undef>
0660デフォルトの名無しさん
NGNG0661デフォルトの名無しさん
NGNGありがとうございました。
ご指摘のとおり、set-buffer-process-coding-systemで
inputもoutputもutf-8に設定することで、問題解決しました。
ども。
0662デフォルトの名無しさん
NGNGスッキリ一つながりに書けるようになるよ。
http://tabesugi.net/memo/2003/b1.html#101129
普通なら HTTP リクエストごとに分断されたコードを書かなきゃいけないけど、
継続を使って、コードの実行を中断して、HTTPリクエストを処理してから再開、
といった作業がシームレスに行えるから。
だけど、この継続をいちいち手作業で作るのは面倒くさいね。言語自体が継続を
サポートしていないと、かえって面倒くさいと思う。Java じゃ無理か。
Perl6 は継続をサポートするようになるそうな。Perl使いの皆さん、おめでとう。
http://tabesugi.net/memo/2004/61.html#092240
Perl使いは誰も継続なんて知らないみたいだけどな。
新山氏のサイトを斜め読みしていたら、たまたま出てきたんで書きました。
0663デフォルトの名無しさん
NGNG文字列を使ったらいいのか分かりません.
cliki に置いてあるコードでも両方見かけます.
叫ぶぼどではないので大文字は避け,キーワードを使いたいのですが,
どんなトラブルが起こりうるのでしょうか.教えていただきたいのです.
パッケージ名は :pkg-name のようになっていて,その中で :export される
シンボルは #:func1 のようにすれば絶対安心なのでしょうか?
0664デフォルトの名無しさん
NGNGちょっとしたプログラムを install するにもコレが必要らしいです.
google しても関係なさそうなサイトばかり引っかかります.
正直,べんり? 入れなきゃダメ?
0665デフォルトの名無しさん
NGNG昔からある defsystem に代わるもの.CLOS ベースになってる.
依存関係や C ライブラリのビルドなどが設定可能な便利
ツールだが,どうしても嫌なら別に入れなくてもいいぞ.
全部手動でやる事も面倒だけど可能だし,defsystem 用の
ファイルも提供してるプロジェクトも多いしな.
0666デフォルトの名無しさん
NGNG使ってれば普通に入ってるし、正直便利。いろんな人が作ったライブラリ突っ込むのも
asdf-install一発で片付くんでらくちんだよ。
hxxp://constantly.at/lisp/asdf/
0667664
NGNG恥ずかしながら,lisp プログラムのインストールに make のような
ものが必要ということさえ知りませんでした.
(load "hoge") 一発かと...
debian を使っているので,sarge あたりから
common lisp 周りのパッケージが増えたな,と感じていました.
ただ,自分の管理下でないシステムに,自分が書いたコードを持っていったとき
のことが気になります.そのコードが,asdf を使ってインストールされた
プログラムを使っていると,向こうのシステムにも色々持っていかないと
なぁ,,,という気がするのです.
とにかく試してみます.ありがとうございました.
0668664
NGNG$ 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 を入れたいのに.
0669デフォルトの名無しさん
NGNGある程度の規模になると依存関係とかロード順を考えなきゃならんでしょ?
C/C++ だってファイルが増えてくると make や IDE の支援が必要になるわけで。
で、C/C++ のソースを配るときに make があるか心配だから make を使わない
というほどの心配性ならともかく、asdf 自体は特に依存してないのでそんなに
心配する必要はないです。asdf.lisp 添付してもいいしね。
それでも、どーしても嫌なら自分で書いたコードには使わなきゃ良いだけです。
0670デフォルトの名無しさん
NGNGできれば自分の環境(特に使ってる clisp のバージョン)はかいといた
ほうがいい。なぜなら clisp で format のバグで asdf.lisp がコンパイル
できないバージョンとかあったからな。最新のは大丈夫なんだけど。
で、先に asdf.lisp をロードしてないとかそーゆうんでないかな。今手元に
clisp が無いんで推測なんだが。
0671664
NGNGはい.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
0672デフォルトの名無しさん
NGNGインストールに 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 にしとくのが吉。
0673664
NGNG親切にありがとうございます.
いま,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.
セグメンテーション違反です
0674デフォルトの名無しさん
NGNGつっても無理矢理ビルド通しただけなんで、実用性はありませんけど。
素朴な疑問ですが、Lisper な人ってスレッドをあまり必要としていないんでしょうか?
ネイティブスレッドを使える環境がかなり限られている感じがします。
0675674
NGNG0676デフォルトの名無しさん
NGNGDebian使ってLispやるならsidがいいのではないかと。
Kevin M Rosenbergが精力的にパッケージ作ってくれてるのでマジで助かります。
バグ修正したり機能拡張したコード送ると(暇なら)次の日にはパッケージ更新してくれるし。
ディスク容量とかメモリとかはカネで時間(作業効率)が稼げると思えば安いもの。組み込み
用途を検討中とかなら話は別だけどね。
hxxp://b9.com/debian.html
>>674
Lisperがスレッドを必要としないってことはないでしょう。SBCLのウリのひとつだし。
Lisperは正規表現を必要しないってのは聞いたことがあるけど。リーダーマクロマンセー。
0677664
NGNG便利な正規表現を使えるようになりました.みなさんのおかげです.
ところで,
(asdf:oos 'asdf:load-op 'cl-ppcre)
が終わるのに 2 分くらいかかりますが,これは毎回必要なんですか?
実際に使うために動かすのは手元ではないので耐えられますが...
>>676 sid は色々気をつけないとならないので逃げます orz
0678デフォルトの名無しさん
NGNGcl-ppcre をロードした後に (saveinitmem) で
新しいイメージを作ってそっちを使うようにするのが定石です。
#!/bin/sh
/usr/local/bin/clisp -M ~/my/dir/initmem
みたいに自分のイメージを使って起動するシェルスクリプトを
パスの通ったところに置いておきましょう。
あと、clisp なら標準の regex, あるいは pcre モジュールの
ほうが性能は良いって事は心に留めておいたほうがいいです。
cl-ppcre は移植性と互換性は良いけどね。
0679デフォルトの名無しさん
NGNGを定義すると、「"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)")
0680デフォルトの名無しさん
NGNGあっ。。。
(define output-charset "euc-jp")
(define (main args)
(cgi-main
(lambda (params)
`(,(cgi-header
:content-type #`"text/html; charset=,output-charset")
0681デフォルトの名無しさん
NGNGたぶん、HTTPがステートレスな接続形態であることをうまく隠して、
複数のHTTP要求と応答をひとつのセッションとしたコーディングができるようになるのかなと
想像しています。具体的に教えてください。
また、Continuation Passing Styleで書けば継続が直接サポートされていない
Common Lispでも同じように綺麗なコーディングができますか?
Kahuaも継続を売りにしていますよね。
0682デフォルトの名無しさん
NGNGエラーが発生してしまいます。
場所は
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時には何も指定していません。
どなたか対処法をご存知ありませんか?
0683664
NGNG>>672 で (saveinitmem) に触れていただいたのに見落としていました.すみません.
debian sarge の cmucl でも cl-ppcre を難無く load できました.
移植性と互換性とはいっても,古いバージョンには入れられないものなんですね.
他所 (sparc マシン) の cmucl で動くか試してみましたが,
load 中,api.sparcf で type-error が出て入れられないんです.
しかも api.lisp の何行目が悪いのかも分からず...
自宅では軽い clisp で作り,cmucl の入ったサーバーにアップロードという
目標は無理のようです.orz
0684デフォルトの名無しさん
NGNGKahuaのチュートリアルがわかりやすいかと。
http://www.kahua.org/cgi-bin/kahua.cgi/kahua-web/show/doc/hello-kahua#H-y3tjno
ちなみにKahuaでいう「継続ベース」というのは、call/ccでどうのこうの
ということではなくてCPSで書きますということです。
すなわち、Common Lispでも同様にやれるでしょう。
0685デフォルトの名無しさん
NGNGhttp://www.common-lisp.net/project/ucw/index.html
Common Lisp で継続ベースの Web アプリ開発フレームワーク、だそうです。
使ったことないですが。
0686デフォルトの名無しさん
NGNGエラー吐いてデバッガに落ちてるんじゃないの?
バックトレースとかスタックフレームとか調べてみた?
まず「ソースコードの何行目が悪いのか」という思考から「どこの式が悪さしてるか」を
意識するようにしてみるといいかも。
0687デフォルトの名無しさん
NGNG0688664
NGNGすると,コケたはずのインストールが,修正していないのに出来てしまいました.
(asdf:oos ...) も (load "cl-ppcre-0.7.7/load.lisp") も出来ます.
;;; 管理者さんがこのスレにいるのでしょうか...
そして,マイ core も作りました.
あとはカッコいいプログラムを作るだけです.ありがとうございました > root
0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNG思たんやけど、なんで今さら…。めっさ、違和感あるわ。次世代ちゃ
うやろ。
0691デフォルトの名無しさん
NGNG夢が壊れるよ。
0692デフォルトの名無しさん
NGNGあの年で(失礼)、また教授になってもhackするのはいいことじゃないですか。
おまえらももっとhackしろというメッセージだと思ってます。
0693デフォルトの名無しさん
NGNGhack するのは、デフォじゃないの?
0694デフォルトの名無しさん
NGNGもっと若い人に譲らなきゃ。
0695デフォルトの名無しさん
NGNG0696デフォルトの名無しさん
NGNGget-output-string-stream は output stream にしか使えないんですね.
0697デフォルトの名無しさん
NGNG>お金とって来れる偉い人がなっちゃいかんよなぁ。
もしかして「京大教授」って、意外と薄給なのでは?
0698デフォルトの名無しさん
NGNG処理系は? まぁ、このへんを参考にしたらいいと思いますが。
http://www.shiro.dreamhost.com/scheme/wiliki/schemexref.cgi?port-%3estring
>>697
「お金」= 「給料」ではなくて研究費です。
給料は国立大の教授なら1000万程度では。
いいと思うかは微妙なところだけど。
0699デフォルトの名無しさん
NGNGスーパークリエイターに認定されたのは湯浅センセがどうこうできることじゃない。
695の意見が正しいと思う。
0700デフォルトの名無しさん
NGNGこんなのを見つけました。
『A Little Java, A Few Patterns』
http://namazu.org/~satoru/diary/20010320.html#p01
この本は、名著『Little Schemer』の著者によるものだそうで、デザパタの中でも
難解で知られる Visitor パターンが、関数型言語の考え方から自然に導かれることを
説明するのだそうです。
そうか。関数型言語なら高階関数で行うことを、オブジェクト指向言語はオブジェクトで
行うのか。それらの知見は、ある程度は相互に利用が可能みたいですね。
邦訳も出ているみたいです。
『Javaとピザとデザインパターン』
http://www.amazon.co.jp/exec/obidos/ASIN/4797307900
0701デフォルトの名無しさん
NGNG『Scheme vs. Common Lisp』
http://philip.greenspun.com/bboard/q-and-a-fetch-msg?msg_id=0006XQ
私は Scheme を少し知っているだけなのですが、これを読むと Common Lisp の実用性は
素晴らしいと思いますねえ。
それにしても、flame war 勃発と思いきや、あんまり騒ぎになってない。
そもそも Lisp 界にはフレームが起こるほど人がいないのか。
グリーンスパンが同じ Blog で Java を揶揄したときは、スラドを含めて
大騒ぎになったらしいのにねえ。
http://www.shiro.dreamhost.com/scheme/wiliki/wiliki2.cgi?Shiro%3alog%3a2003%b8%e5%c8%be
(2003/09/24 18:54:23 PDT)を参照
0702696
NGNGあっ,common lisp の話なのに書き忘れてしまいました.ごめんなさい.
処理系は clisp ですが,処理系に依存しない方がいいです.
いろいろ試してはみましたが,do と read-line よりいいものは無いのでしょうか.
0703デフォルトの名無しさん
NGNGlisp界には凄い人が普通にいる感じがするからじゃないかな。
shiroとか苫米地とか新山とか。
KCLの両先生はさしあたり東大寺の仁王像、京都大学は奈良の大仏、
アランスク先生はジャンヌダルクかフランス貴公子(奇行氏)といった所だろう
(適当だが)
0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNG0706デフォルトの名無しさん
NGNG>アランスク先生はジャンヌダルクかフランス貴公子(奇行氏)といった所だろう
>(適当だが)
災いを招くつもりですか?
0707デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNG苫米地さんは謎。コード読んだこと無いし。
新山さんは・・・日記職人(田口)。
0709デフォルトの名無しさん
NGNGaranskはゲームセンターで小学生突き落とした中学生
0710デフォルトの名無しさん
NGNG(directory-fold:
http://www.shiro.dreamhost.com/scheme/gauche/man/gauche-refj_272.html#SEC299
0711デフォルトの名無しさん
NGNG(fold KONS KNIL LIST ...) (SRFI1) が元ネタ。2つの引数を持つ
プロシージャを何度も呼ぶとき、第2引数の初期値として使われる。
多くの場合、KONS として cons のような 関数を使い、KNIL として
'() が使われる。
0712デフォルトの名無しさん
NGNGバイナリのみのライセンスですよねぇ(いくらするんだろう)? >chezer様
0713デフォルトの名無しさん
NGNG個人向けの販売はしてないらしい。
$9000とか、学校向けでも$4500もするんだもんな。
Kent教授に嘆願書でも出さないか?
0714デフォルトの名無しさん
NGNGそれでもずいぶん安くなったのではないですか?
ACL もずいぶん安いライセンスも出るようになったから、Chez も今後、
期待したいですね。
下は、2年前の話。
LISP Scheme Part6
http://pc3.2ch.net/tech/kako/1031/10315/1031560687.html
835 名前: デフォルトの名無しさん 02/11/26 03:59
Chez Scheme 6.0の見積もりを取ったが、いやはやあんなに高いとは。
マシン・タイプごとに24,500ドル。サポートが1機種 年間1,350ドルだと。
それほどの価値があるソフトなのか???
0715デフォルトの名無しさん
NGNG0716デフォルトの名無しさん
NGNGhttp://www.franz.com/products/packages/
これって、アカデミック・ディスカウントなの?
そうは思ってなかった。
教育関係なら、ここからさらに割り引かれるのかと思ってました。
ご存知の方おられませんか?
0717デフォルトの名無しさん
NGNGWindows/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
0718717
NGNG0719デフォルトの名無しさん
NGNG0720デフォルトの名無しさん
NGNG1,980円!
0721デフォルトの名無しさん
NGNGありがとうございます。
業務システムなら千万単位の金が動くのは当たり前なので、そういうところが
売り込みの対象なのでしょうね。
SUN の Java みたいにただでばら撒いてもらえるとありがたいけど、これを
売って会社を成り立たせているから、市場の少ない段階ではおいそれと値下げも
できないし。
考えてみたら、Java がタダでばら撒かれているのがすごく不思議な気がしてきた。
0722デフォルトの名無しさん
NGNGどれ程のものだろうね。個人的にはchez(petite)で
EdwinみたいなEmacs互換のエディタがあればいいなぁ。
そういえば奥村先生の辞典にあるメルセンヌ数(素数)判定の
プログラムをpetiteで再実装したらCコンパイラ(gcc)のコードより
かなり速かった。…やっぱpetiteインタプリンタが内蔵された
エディタが欲しいなぁ。doctorの腕も上がるかもねww
0723デフォルトの名無しさん
NGNG(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#)
0724デフォルトの名無しさん
NGNG0725デフォルトの名無しさん
NGNG0726デフォルトの名無しさん
NGNG0727デフォルトの名無しさん
NGNG0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNGpetite の方はただで配ってるし、プロプラなアプリに組込んで使っても問題無い感じ。
ところで、↓この chez の方の src.rpm ってソースコード丸々入ってるんですか?
ttps://www.cs.indiana.edu/chezscheme/iu/
0730デフォルトの名無しさん
NGNGAllegro CLのWindows版があるよ。
0731デフォルトの名無しさん
NGNG了解しました
(文字化けは、文字コード設定だけの問題でした)
0732デフォルトの名無しさん
NGNG.aしか入っとらん。
そんなに世の中甘くないぞ
0733デフォルトの名無しさん
NGNGのですか? 下のような形が標準であって、戻り値の型は必須になっていない
です。Scheme的な流儀?
調べてみると、stringが返ってくるのか、portが返ってくるのか等々、判断
しにくいです。
ex) Function: read-block nbytes &optional iport
ttp://www.shiro.dreamhost.com/scheme/gauche/man/gauche-refj_101.html#SEC105
0734デフォルトの名無しさん
NGNG吊りなのか?
0735デフォルトの名無しさん
NGNGsrfi とか、あるいは(scheme じゃないけれど)clhs みたいな
フォーマットで書いてほしいって事でしょうか。
と、解釈してみます。
0736デフォルトの名無しさん
NGNGMLやWiLiKiでshiroさんにきいてみなよ。
即効でレスしてくれるぞ。
0737デフォルトの名無しさん
NGNG文字列を返すこともあれば、eof オブジェクトを返すこともあるわけで、
一つの型には決められないからじゃないのかな。
そこらへんをうまく扱えるいい表記があればね、と無責任モード。
0738デフォルトの名無しさん
NGNG型が変化しない関数は組み込みを含めてありえるわけだし。
CommonLisp族のdeclareディレクテイブはどうなんだろう。
0739デフォルトの名無しさん
NGNG0740デフォルトの名無しさん
NGNG0741デフォルトの名無しさん
NGNGすげぇな。ほんとだ。
あとは訳が完成するのをまた〜りまつこととしますか。
0742デフォルトの名無しさん
NGNG翻訳の完成度高いし。
0743flatline@Vim%Chalice ◆r6EONKKhcc
NGNG今日(昨日),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 http://www.cis.upenn.edu/proj/plclub/contest/ の方は任意の環境が利用でき,
時間も数日単位です(チームで寝る奴と書く奴を分担したり).
例年OCamlとかが人気のようですが,Common Lispも数チームずつ選んでいるようです.
これを読んでいる学生の方,どっちでもいいですが参加してみてはいかが.
優秀な方に対しても,私みたいな orz に対しても,よい体験になると思います.
0744デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNGなんかこう何とも言えないでつな(汗
C, C++, Javaてのがまた。来年あたりC#とかが追加されてみたりすんのかねぇ?
Lispでごりごりなら743もゴリゴリ逝けたはず?
まぁ、学生さんたち頑張ってくれ。
0746デフォルトの名無しさん
NGNGSBCL win32 port のパッチが公開されてるよ。
0747O....TZ@Vim%Chalice ◆r6EONKKhcc
NGNG審判システムが終了してるので,感想戦やろうにもなかなか難しい.
まぁ大きなコミュニティに属してる利点ってのは,
そういうときでも「そのコードがacceptされたチームの人」「その場で(!)解ける人」が
身近にいるってことなんですが.
ICPCはどの言語だろうと本質的な手間は変わらない問題が多いぽ.
手続的言語にしぼってるのは,それなりの意図でしょう(Pascalが加わる場合も).
まぁ「Lispだとこうなる」ってのも面白いのでちょっと過去問を解いたことがありますが.
0748デフォルトの名無しさん
NGNGcliki に置いてあるのを参考にしてみるも,全部に型を書いてあるんです.
ここまで頑張るのでは大変です.
効果が大きいとか小さいとかは,どうしたら分かるのでしょうか.
0749デフォルトの名無しさん
NGNG効果がわからないって奴の大半はボトルネックをきちんと
測定していないから〜。
型指定はその後。一番良く呼ばれる関数のインライン化、
速度なら多用される計算関数、頻繁にアクセスする配列、
メモリ量ならサイズの大きい構造体や配列、クラス等で
の型指定かなぁ。きちんと Profiling してるなら効果
もそれなりに測定できるはず。後は disassemble するとか。
0750デフォルトの名無しさん
NGNG0751デフォルトの名無しさん
NGNG0752デフォルトの名無しさん
NGNG0753748
NGNGありがとうございます.こんなに簡単に分かるものだったなんて初めて知りました.
declare 前後の効果をはっきり知るために declare 式を一斉に
on, off したいのですが,コメントにするのでは大変です.
C の ifdef のようなものがあると便利なのですが,
こういうときに役立つ方法を教えてください.
*feature* に :declare-shiru を push して #+ 等を使うのは普通ですか?
0754デフォルトの名無しさん
NGNG例えば,色々なものをごちゃ混ぜにしたリストを複数の関数で扱うとき,
(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 など).
こんなとき,みなさんはどうやっていますか?
0755デフォルトの名無しさん
NGNG(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)
0757デフォルトの名無しさん
NGNG(defun (setf kar) (obj kons)
(rplaca kons obj))
だった。
0758デフォルトの名無しさん
NGNG次は MP かしらん(ワクワク
0759デフォルトの名無しさん
NGNG(っ´∀`)っ(defun mona () ((っ´∀`)っ(defun mona() ((っ´∀`)っ
(っ´∀`)っ(defun mona () ((っ´∀`)っ(defun mona() ((っ´∀`)っ
(っ´∀`)っ(defun mona () ((っ´∀`)っ(defun mona() ((っ´∀`)っ
(っ´∀`)っ(defun mona () ((っ´∀`)っ(defun mona() ((っ´∀`)っ
0760デフォルトの名無しさん
NGNG0761デフォルトの名無しさん
NGNGまず、リストの長さを測る関数 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コンビネータを理解することの助けになると
思ったんですが、いかがなものでしょうか?
0762デフォルトの名無しさん
NGNG0763デフォルトの名無しさん
NGNGありがとうございます。なるほど、確かに前スレにありました。
見たはずなのですが、当時は理解できなくて読み飛ばしていました。
今『Scheme 手習い』の9章を読んだばかりで、
「この Yコンビネータは洗練されているけれど、分かりづらい。汎用性をなくせば、
もっと分かりやすい再帰ができるのじゃないか?」
と思ったのですが、すでによく知られていることなのですね。すみません。
以下は前スレの引用ですが、眼からウロコが落ちる思いでした。
-----------------------------------------------------------
437 名前: デフォルトの名無しさん 03/12/12 23:03
lambdaだけで回すコードは、カンの鋭い人なら、相互的な再帰処理を
書いている内に自然と気付くかもしれない
結局は、以下のより単純にした式
((lambda(x)(x x))(lambda(x)(x x)))
この式の応用だから
0764デフォルトの名無しさん
NGNG0765デフォルトの名無しさん
NGNGhobbitとBiglooってどう違うん?
0766デフォルトの名無しさん
NGNGon Lisp の邦訳の 148ページ目に、TeX のタグが残っていますよ。
-----------------------------------
Common Lisp のこのコードは,
\begin{verbatim}
(let ((f #’(lambda (x) (1+ x))))
(funcall f 2))
\end{verbatim}
0767デフォルトの名無しさん
NGNGhobbit は r4rs だし、末尾再帰の最適化もされないんじゃなかったっけ?
Bigloo がどうだか知らないけど、hobbit は Scheme で書かれてる。
Scheme で標準的な FFI のライブラリってありますか?
C の struct とか union も Scheme から扱えると嬉しいのですが。
0768デフォルトの名無しさん
NGNGSRFI でもめてたっけなー
0769デフォルトの名無しさん
NGNGcase の定義について質問です。
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 ...)))))
0770デフォルトの名無しさん
NGNG変な副作用が出るかもしれない。
0771デフォルトの名無しさん
NGNGこんなんだと違いが出るでしょ。
(case (begin (print "foo") 2)
((0) ())
((1) ())
((2) ()))
0772769
NGNG回答ありがとうございます。
理解できました。
0773デフォルトの名無しさん
NGNGでも、ほとんどのユーザーがWindowsなわけで、
LispはWinユーザーにとっては手軽じゃない。
さくっとDLできて、すこっとインストーるできれば
もっと流行るんじゃないかねぇ。
0774デフォルトの名無しさん
NGNG誰かが言ってたね。
0775デフォルトの名無しさん
NGNGこちとらpetiteをbinutilsでハックラン中なのに…
そろそろ寝まつか
0776デフォルトの名無しさん
NGNGそもそもLispなんて仕事で使えるか?
VC++やVBに疲れたプログラマが息抜きにやりたいんだろ。
0777デフォルトの名無しさん
NGNG洩れは... 「Lispならこう書ける」を基準に、脳内コンパイルしつつJava書いてる(ぉ
0778デフォルトの名無しさん
NGNG0779デフォルトの名無しさん
NGNGでね、運動神経ゼロなの。
Cは脊髄。
0780デフォルトの名無しさん
NGNGdefun の第一引数 (function name) になるって変じゃないですか?
CLHS 見たんですけど、良く分かりませんでした。(setf symbol) って何を
返すのでしょうか?
http://www.lisp.org/HyperSpec/Body/mac_defun.html
http://www.lisp.org/HyperSpec/Body/glo_f.html#function_name
0781780
NGNGhttp://groups.google.co.jp/groups?&th=49b3a6ce675ecc26
http://www.lisp.org/HyperSpec/Body/sec_5-1.html
特に
(syntax-rules (←この部分には何を書くのよ?→) ((パターン) (テンプレート))* )
↑この部分
ここhttp://www.sci.toyama-u.ac.jp/~iwao/Scheme/r5rsj/html/r5rsj.html#SEC42
によると「リテラル」などというご大層な名前が付いてるそうだが
じぇんじぇん意味わかんねーぞ(#゚Д゚)ゴルァ(#゚Д゚)ゴルァ(#゚Д゚)ゴルァ(ていうかそもそも訳が下手じゃね?)
このスレにいるスーパーハカーの皆さんは
大至急私に、リテラルの意味を教えなさい。
いや、マジで。どこにも分かりやすい説明が無くて。
あんまりバカにしないで。
0783デフォルトの名無しさん
NGNG(null? ぬるぽ)
0784デフォルトの名無しさん
NGNG0785デフォルトの名無しさん
NGNG本当に分かんないんだって!
もったいつけないで教えろよ!
0786デフォルトの名無しさん
NGNGああ、syntax-rules の説明は、R5Rs を読んでもまずわかんない。
日本語の資料に限ると、
オンラインで読める文献は >>5 に出てる「入門Scheme」以外にないと
思う。これなら何とか分かるんじゃないかな。pdf ファイル。
#http://www4.ocn.ne.jp/~inukai/scheme_primer_j.html
書籍だったら、『プログラミング言語SCHEME』R.ケント ディヴィグ (著)
http://www.amazon.co.jp/exec/obidos/ASIN/4894712261
この本、原書(英語版)が Chez Scheme といっしょにフリーで配布されてる。
古い本には syntax-rules は全然載ってないから気をつけて。
0787デフォルトの名無しさん
NGNGまあ、おちつけ。
Scheme を知ってる人は大学で習った場合が多いから、一般人が独力で学ぶ場合の
苦労はあんまり共有されてないんだよ。漏れもこれを見つけるまで、マクロの書き方
わかんなくて苦労した。
ついでだけど、R5Rs はこっちの訳のほうが読みやすいと思うよ。
http://www.unixuser.org/~euske/doc/r5rs-ja/index.html
0788デフォルトの名無しさん
NGNGしかしそのpdfファイル文字化けしてて読めなかった(Debian sarge にデフォでついてきたviewer)
あとで環境揃えて読んでおきます THX
784さんもありがとう
そして785にガッ
0789デフォルトの名無しさん
NGNGぬ?こっちも調べておきます。ありがとう
0791デフォルトの名無しさん
NGNGだからおちつけ。少しレス番ずれてるぞ。
PDF 今読めないそうだから、いいかげんな解説をしてみる。
>>782 の (←この部分には何を書くのよ?→) だけど、
そこにはマクロの冒頭に来ない予約語を書くんだよ。
例えばマクロで cond を実装するとして、必要な予約語は cond と else だろ。
マクロの冒頭に来る予約語が cond で、それは当然 define-syntax のあとに書く。
で、(←この部分→) に書くのが else だ。マクロの途中に現れる、特別な意味を持つ
シンボルをそこに書いて宣言するんだよ。
つうことは、単純なマクロならたいていそこは空欄になる。だから普通は()の中には
何も書かなくてよし。
>>790
そうか。俺も誤解してた。すまんかった。
0792デフォルトの名無しさん
NGNGなるほど。それで>769が読めそう……ですね
俺は少しのレス番のずれなど気にしないぜ!
それと、俺は>782,783,785,788,789だぜ。
実際厨学生だが。
0793デフォルトの名無しさん
NGNG((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マクロの「リテラル」はパタンマッチングの目印に使われるハズ。
あと、「学校で習った」だけの知識じゃマクロまで使えない学生も多いよ@灯台理情
好みでやりこんでるヤシが使うだけ。
0794デフォルトの名無しさん
NGNGうーん、Lispだとイテレータはいらないよねえ。リスト操作で済んじゃうから。
個人的な見解だけど、マクロの途中に出現する予約語って、普通に関数的にコードを
書くときには、あまり使い道がないと思う。cond の else だって #t と書いても
同じだし。
call/cc で新しい制御構造を作ったりするときに、真価を発揮するのだと思う。
あと、学校で習う人が全員マクロまでは行かないのは分かる。だけど自分で先に
進むとき、周囲の人に相談できるし、教官に質問もできるでしょう?図書館にいい
本もあるし。やっぱりネットと本だけを頼りに手探りで進むのとは違うよ。
声を大にして言いたいのは、Lisp を学びたいなら、絶対学生のうちにきっちりやった
ほうがいいということ。社会に出てからだと大変だもの。
私は学生の頃は Lisp をやろうなんて思わなかったんで、今、すごく後悔してる。
こういう基礎的な(応用に直接結びつかない)ものを学ぶ機会は、社会にはなかなか
ないんだもの。
0795デフォルトの名無しさん
NGNG> こういう基礎的な(応用に直接結びつかない)ものを学ぶ機会は、社会にはなかなか
> ないんだもの。
社会に出てからだっていくらでも学べる。
こんなのはやる気がない奴の言訳。
それか本当に時間のない土方プログラマかどっちか。
0796デフォルトの名無しさん
NGNG最初から読めば、>>794氏は「社会に出てから学んでいる、やる気
のある人」だと思うな。
0797デフォルトの名無しさん
NGNG噂によると本田技研の野郎の中にはまともに1週間寝ないで
設計する狂人がいるらしいけど。そういえばホンダはLispで
構築したシステム(たしか外注)持ってたよね。流石だよねぇ。
0799デフォルトの名無しさん
NGNG「あそこ(本田技研)に行けば確実に殺される」
らしい(実話)。
0800デフォルトの名無しさん
NGNG0801794
NGNG別に愚痴を言いたかったんじゃなくて
「大学というのは Lisp を学ぶには恵まれた環境だから、学生の皆さん、どうか有効に
活用してください」
と言いたかっただけなんだよ。これは Lisp だけじゃなくて、数学とか、経済学とか、
基礎的な学問なら全部に言えることだけど。
私は物理専攻で、その頃は Lisp にほとんど興味がなかった。うちの大学には Lisp の
有名な先生がいたんだけど。社会に出てから興味を持って「ああ、もったいなかったな」
と思ったんだよ。せっかくλ山のふもとにいたのに。
http://wwwfun.kurims.kyoto-u.ac.jp/MtLambda.html
まあ、やる気がないとか、土方とかは、たぶん当たってます、ハイ。
0802デフォルトの名無しさん
NGNG0803デフォルトの名無しさん
NGNGそれを最大限にフォローしてくれるのが Lisp.
0804デフォルトの名無しさん
NGNGMt.Lambda ワロタ
今度から京大をλ山と呼ばせていただきます.
0805デフォルトの名無しさん
NGNGnilってさ
0806デフォルトの名無しさん
NGNGうまい。続きを考えようとしたけど思いつかない…
0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNG0809デフォルトの名無しさん
NGNGhttp://www.yuasa.kuis.kyoto-u.ac.jp/%7Eyuasa/index_J.html
あとは誰かしら。現役の方の報告を希望。
ついでにλ山の歌の続きも希望。
0810デフォルトの名無しさん
NGNG0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNGLisp は女らしい言語だと思う。
この2つを組み合わせて使うと
まるで自分が天下無敵になったような
気分を味わえるな。
0813デフォルトの名無しさん
NGNG0814デフォルトの名無しさん
NGNG作者
0815デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNG0817デフォルトの名無しさん
NGNGがんばってる奴を何もしない奴が叩いてんじゃねーよ。ヴォケが。
0818デフォルトの名無しさん
NGNG0819デフォルトの名無しさん
NGNG/ ○/ ○
_ _ __ \_ |_ ○\ | /\
|○| /○| ○ | ○_| ○_| _| _| _| _| ̄|○
 ̄  ̄  ̄
0820デフォルトの名無しさん
NGNGそれはあなたを表しています。時節柄ご自愛ください。
0821デフォルトの名無しさん
NGNGOrbitz って CMUCL も使ってるの?
0822OTZ@Vim%Chalice ◆r6EONKKhcc
NGNGverbatim回りのミスを訂正しました.
ご指摘をいただいた方にお礼を申し上げます.
また何かあったらぜひご指摘をよろしくおねがいします > ALL
最近,さすがに内容が難しくて,適当な訳をすることが多いです.
注意して読んで下さい.
ペースもひどく遅いですが,訳了まで気長にお待ち下さい.
0823デフォルトの名無しさん
NGNG乙カレー!
http://user.ecc.u-tokyo.ac.jp/~g340299/
つうかアナタ、名前が以前と違ってるぞ。>>747は一発ギャグだと思っていたのに。
正式に改名するんですか?(笑)
0824デフォルトの名無しさん
NGNGtnx!
それにしても東大は大変だよねえ。受験が終わってからのほうがもっとキツい
競争なんだから。
まあ、気を楽にして行こうよ。いざとなったらλ山があなたを待ってるぞ。
実際、そういう人はかなり多かったぞ。
そのあとで待っているのは、「京都の一乗寺あたりに住む職業不定の怪しい人物」
という輝かしき人生だが……(泣)。
http://nicosia.is.s.u-tokyo.ac.jp/pub/essay/hagiya/essay/kyodaitodai
0825デフォルトの名無しさん
NGNG鵺の中の人なんてリアルにそんな感じだし(失礼)。
0826デフォルトの名無しさん
NGNGまたKL1みたいなプロジェクトが発足したらいいのになぁ。
>>822
がんがれ!!
0827デフォルトの名無しさん
NGNGワショーイ
0828デフォルトの名無しさん
NGNG0829デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNGGauche が出たら…乗り換えちゃうかなあ?
少なくとも試しはするだろうなあ。
0831デフォルトの名無しさん
NGNGすばらしい!
お返しというわけではないですが
SICP原書
ttp://mitpress.mit.edu/sicp/full-text/book/book.html
0832デフォルトの名無しさん
NGNGもしや831が翻訳予定で?
0833デフォルトの名無しさん
NGNGそりゃすばらしすぎる!
正直、今の邦訳は、私には英文のほうがまだ読みやすい。
特に苦もなく読める人もいるそうだけど、それはたいへんうらやましい。
0834デフォルトの名無しさん
NGNG> C は男らしい言語だと思うが、
> Lisp は女らしい言語だと思う。
というコメントがあったけど、皆さんにとって Lisp ってどんな言語?
ここに、いろんな著名人の Lisp についてのコメントがあるんだけど、
http://www.paulgraham.com/quotes.html
この中では、Alan Kay の
「 Lisp は言語じゃない。(それを)構築する材料だ」という言葉がいちばん
私にはしっくりする。
0835デフォルトの名無しさん
NGNGクヌース教授の名著が迷著になってしまったんだからね。それだけに止まらず
ヤシはクヌース教授の「日本語版への序」よりも前に「監訳のことば」として
頁を飾ってるんだから。とんでもない妄想基地外野郎だ。もっとも最近は
改訳されたのが出版されてるけどね。そういえば(クヌース教授の)他著にも
「排中律」を「三段論法」と誤訳されていた(ヒルベルトの名言を)。
かわいそうなクヌース教授…
0836デフォルトの名無しさん
NGNG0837デフォルトの名無しさん
NGNGhttp://www.math.tohoku.ac.jp/~kuroki/keijiban/e0015.html#e20020215142205
> Subject: Re: 本物のハッカーって、日本に居たのでしょうか?
> 「いま、いるか?」ではなくて、「かつて、いたか?」ですね。、
> 島内剛一、和田英一竹内郁雄、… (敬称略)
日本を代表するハッカーだったんですね。全然知りませんですた。
こんなのも見つけた。
http://godel.m78.com/diggression.html#simauti
アセンブラの天才だったみたいですね。すでにご存命ではないのか。
しかし、島内氏の経歴をまとめたページが見つからない。なんだか、一生好きなことを
やり散らかした人らしいので、まとまった業績がないのかもしれない。FSS を設立しな
かった RMS みたいな存在なんだろうか。
まあ、それはそれとして。
島○先生といい、和○先生といい、ハッカーに翻訳をさせてはいけないのかもしれない。
0838デフォルトの名無しさん
NGNG竹○先生の翻訳ってどうなの?いくつか出ているけど、読んだことない。
0839デフォルトの名無しさん
NGNGド変態がいるね
0840デフォルトの名無しさん
NGNG英語が読めてemacsでM-x infoすると感動すると思います。若い人は
本気になればある程度はすぐに読めるようになると思います。この夏に
挑戦してみては?一気に中学生からの再復習がお勧めですよ。
0841デフォルトの名無しさん
NGNG0842デフォルトの名無しさん
NGNG0843デフォルトの名無しさん
NGNG0844デフォルトの名無しさん
NGNG0845デフォルトの名無しさん
NGNG病気かしらん。
0846デフォルトの名無しさん
NGNG0847デフォルトの名無しさん
NGNGそれ、最悪。邪魔すぎ。
出版社に掛け合ってshiroさんに翻訳しなおしてもらおう。
0848デフォルトの名無しさん
NGNG海賊出版でなければ、翻訳権持っているはずですな。
0849デフォルトの名無しさん
NGNGhttp://www.htdp.org/2002-09-22/Book/
WiLiKiで見つけた
http://www.shiro.dreamhost.com/scheme/wiliki/wiliki.cgi?MzScheme
0850デフォルトの名無しさん
NGNGShiroさんにはよいコードを量産してもらったほうが有意義かと.
0851デフォルトの名無しさん
NGNG漏れは当然シカトを決め込むわけですが、Corman Lispのウリって何なのよ?評価期間に
ちらっと使った限りじゃカネ払ってまで使いたいとは思わなかったんで。
Cormanくらいの値段でACLが手に入るんならLinux/Windows/MacOSXと持っているホストの
種類だけライセンス買っちゃうんだけどね。
0852デフォルトの名無しさん
NGNG0853デフォルトの名無しさん
NGNGテンプレの過去スレ集にこれも入れて下さい。
CommonLisp初心者スレ
http://pc5.2ch.net/test/read.cgi/tech/1075464728/
; CMUCL/Darwin のソースが CVS にマージされ始めましたね。
0854デフォルトの名無しさん
NGNGACL はランタイムライセンスが馬鹿高いので、安く exe や dll 作るなら
Corman でもいいんじゃない?WinAPI ガシガシとかインラインアセンブラとか
は便利だった気がする。
0855デフォルトの名無しさん
NGNG☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・)< M$製のVisualLISP.net、マダ〜?
\_/⊂ ⊂_)_ \___________
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
|  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :|
0856デフォルトの名無しさん
NGNG0857デフォルトの名無しさん
NGNGSICPの翻訳権はサスマンかMITに掛け合えばもらえるんじゃないのか?
日本のピアソンとか和田先生は関係ないかと。
0858デフォルトの名無しさん
NGNG0859デフォルトの名無しさん
NGNG0860デフォルトの名無しさん
NGNG0861デフォルトの名無しさん
NGNG出版社が翻訳版を出したかったら・・・?
0862デフォルトの名無しさん
NGNG面白そうな物サンクス。
cond の分岐を [] で表すの初めて見たけど、良くやるの?
0863デフォルトの名無しさん
NGNG.NETフレームワークの対応予定言語にschemeが入っていたハズだぞ
期待しないで待て!
0864デフォルトの名無しさん
NGNG「サードパーティがこれこれの言語について開発環境を準備してるっぽいです」
「みんなの人気者.NET!」
という宣伝なのでは...
0865デフォルトの名無しさん
NGNGきっとサードパーティーでもうっかり人気がでればその会社ごとMSが買うだろうから。
ありえねぇな
0866デフォルトの名無しさん
NGNGポール・グラハムといい、Common な方の Lisp は愛憎半ばする言語なのかな。
昔の Lisp を知らないので、何処がそうなのか分からないけど。elisp とかやれば
分かりますか?
0867デフォルトの名無しさん
NGNG[ ] は cond に限らず、対応するカッコを強調したいときに使う。
例: ([lambda (x) (* x x)] 3)
『Little Schemer』でも、同じ表記を使っている。
ちなみに、Chez Scheme はこの表記をサポートしている。
括弧の対応が分かりやすくなるので、個人的にはとても気に入っているが、
見苦しいと思う人もいるかもしれない。
Gauche はたしか、もっと多くの種類のカッコをサポートしていたとおもう。
なお、同じ[ ]で「超括弧」と呼ばれるものを表す処理系もあるそうだ。
----------------------------------------------------------
http://plaza10.mbn.or.jp/~lisp/intro.htm
・超括弧
通常の括弧 ( ) に対して、超括弧 [ ] の使用が可能です。[ ] は、右括弧 ) 数が
ミスマッチ(少ない方に)の場合でも、強制的にマッチングをとります。
例:(A (B C (D] → (A (B C (D)))
(A (B [C (D] )) → (A (B (C (D))))
0868デフォルトの名無しさん
NGNG感想が書いてあります。
http://www.asahi-net.or.jp/~ki4s-nkmr/
Shiroさんの正規表現ライブラリについて。
>ほとんどPerl互換の正規表現ライブラリを、フロントエンド+ダミーバックエンドで
>テストスイートを通すまでに2週間、フロントエンド最適化に2週間、仮想マ
>シンバックエンド実装と最適化に2週間だもん。仕事、早い!
ほんと、速いね。他の仕事とかけもちでやってこれかな。
0869デフォルトの名無しさん
NGNG>うしたらあんな遅いコードが書けるか不思議くらい」などとおっしゃって、さ
>すが世界的ハッカーの湯淺先生からいわれたら、返す言葉はないよなあと、こ
>ちらはうなずくばかり。
CGIのようなIOの多い用途でもCommonLispは有効ですか?
0870デフォルトの名無しさん
NGNGけど、マニュアルにその旨記述がないはずだから、これはunofficialだね。
0871デフォルトの名無しさん
NGNGthanx!
Smalltalk 風と言うべきか Arc 風と言うべきか。でも、[] で括るなら lambda は省きたい
気になってきますね。{} はちょっと読み辛い感じがしますね。
0872デフォルトの名無しさん
NGNG私も昔を知らないけど、中村正三郎『電脳騒乱節』には、古いタイプのLispがいくつか
紹介されていて、それを見たときの感想は、「今の Common Lisp の方がずっといいや」
というものだった。
Guy Steele は多分、Common Lisp より先に作った Scheme を気に入っているのじゃ
ないかな。
>>869
使えるはずだよ。ポール・グレアムは Common Lispで書いたWeb アプリケーションで
財を成したから。
普通のやつらの上を行け
http://www.shiro.dreamhost.com/scheme/trans/beating-the-averages-j.html
0873デフォルトの名無しさん
NGNG古いLispにあった夢ってなんだろう?
http://nicosia.is.s.u-tokyo.ac.jp/pub/essay/hagiya/essay/zoku_omoide
http://nicosia.is.s.u-tokyo.ac.jp/pub/essay/hagiya/h/inchiki
Scheme は好きらしい。
http://nicosia.is.s.u-tokyo.ac.jp/pub/essay/hagiya/h/tensai
0874デフォルトの名無しさん
NGNG軽量インタープリターを俺樣が書く。
ちょちょいと書く。
Common Lisp にはない世界
0875デフォルトの名無しさん
NGNG話し言葉にもなった -p 記法とか。あと性能の追求とか。
俺様のための俺様スペシャルを走らせるためのコンパイラを俺様が書く。
ちょちょいと書く。Scheme には無い世界。
0876デフォルトの名無しさん
NGNGRobert 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/ こいつ
0877876
NGNG0878デフォルトの名無しさん
NGNGメンヘルじゃなくて
括弧がレインボーアイランドつーかさ、
コード書いてると楽しくなってくるよ
コードがデータで
データがコード?
あひゃ、こりゃ麻薬だね
0879デフォルトの名無しさん
NGNGquoteの発明がなかったらここまで信仰しなかったが
0880デフォルトの名無しさん
NGNGExerciseの答えとかも載ってるのかな。
0881デフォルトの名無しさん
NGNGなるほど、古き良き時代とは、なんでも手作りできた自由な時代のことですか。
萩谷先生も、自分はCプログラマであり、本物の言語はCのみだと言っていたけど、
そういう時代への懐古を込めていると考えれば納得がいくなあ。
http://nicosia.is.s.u-tokyo.ac.jp/pub/essay/hagiya/7bits/saredo
湯浅先生の『入門 Scheme』によると、湯浅先生の周りでは
? を「ピー」と発音しているそうな。
例)zero? --> ゼロピー
0882デフォルトの名無しさん
NGNGどの Lisp にも quote はあると思うが、なぜ Scheme だけを名指しするのだ?
Scheme の他の Lispと比べて良いところは、何といっても名前空間と継続だと
思うが。
0883881
NGNG× 『入門 Scheme』
〇 『Scheme 入門』
0884デフォルトの名無しさん
NGNGKahua や UnCommon Web は既出だけど、他にもいっぱい。
Seaside (Smalltalk)
http://www.beta4.com/seaside2/
UnCommon Web (CL)
http://www.common-lisp.net/project/ucw/
Kahua (Scheme)
http://www.kahua.org
Cocoon (JavaScript)
http://wiki.apache.org/cocoon/WhatIsFlow
Chris Double の Weblog のまとめ。
http://radio.weblogs.com/0102385/2003/08/30.html
Perl, Python, Ruby にもありそう。
0886デフォルトの名無しさん
NGNG自分がリストの何番目にいるのかを簡単に知る方法はないでしょうか?
0887デフォルトの名無しさん
NGNG0888デフォルトの名無しさん
NGNGthx!
0889デフォルトの名無しさん
NGNGそれでもscheme使ってるうちに>>887の様なコード見てもだいぶ平気になったよ。
連想配列は標準で入れて欲しいなあ。
0890デフォルトの名無しさん
NGNG「片側リスト」じゃなかったらどう効率良くなるんですか?
0891デフォルトの名無しさん
NGNGmember/assoc系で十分採算が取れていると気付く罠。
0892デフォルトの名無しさん
NGNGassocの方が速かったな。漏れのハッシュの実装がタコだった
だけかもしれんが。
0893デフォルトの名無しさん
NGNGなぜ Common Lisp は関数と変数とは名前空間が違うのでしょうか?
Scheme の様に同じだとシンプルだとおもうんですけど、
実用上の利点があるのですか?
0894デフォルトの名無しさん
NGNG0895デフォルトの名無しさん
NGNG0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNG意味分らん
0898デフォルトの名無しさん
NGNGだとしたらやっぱり尻尾のような仕様だな。
この点に関してはCommonLispはサル。
0899デフォルトの名無しさん
NGNGなどを別の名前空間(symbolからobjectへの関連を集めたもの)を使って管理して
いるけど、Schemerから見ると、これらを全て1つの名前空間で管理するのがいいと思う?
0900デフォルトの名無しさん
NGNG0901デフォルトの名無しさん
NGNGリスタートってこの文脈では聞いたことないんですが何ですか?
>>900
関数と変数だけ一緒で他は別々がいいってことだと
「シンプルに統一された美しいルール」にはならないけどいいの?
0902デフォルトの名無しさん
NGNG0903デフォルトの名無しさん
NGNGリスタートはコンディション機構に用意されている機能。
名前と関数群(主処理、説明表示、ユーザとの対話)を動的に結びつけるマクロrestart-bind
が基本機能。よくあるのはrestart-caseマクロで、名前やいくつかの機能が付いた大域ジャンプの
着地点として使う場合。
デバッガに入ったときに、
"変数fooの値としてcons型が期待されていたのに、1が入っていますた。
次の選択肢から選んでね。
1: fooに値を入れ直す(store-value)。
2: 無視して進む(continue)。
3: トップレベルに戻る(abort)。"
なんて、メニューがでるでしょう。これは、そのときアクティブなリスタートを
検索して、それぞれの説明表示関数を呼び出して、動的に生成されたメニューだったり
します。各選択肢が1つのリスタートによって実現されているのね。そんで、
ある選択肢が選ばれたら、そのリスタートの対話用関数が呼ばれると。
名前空間が別に用意されているのは、あと、method-combinationもそうだね。
>>902
日本では、人工知能といえばPrologが有力だと聞きました。ICOTも並列Prolog
を開発していたよね。現在のAI関連のことは知らないけど。
0904デフォルトの名無しさん
NGNGなるべく統一したい。
0905デフォルトの名無しさん
NGNGいままで仕様変更ってあった?
0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNGsymbol から object へ対応させるとき、object の種類による複数の対応はいらないけど、
symbol から object への対応表は複数あってもよいと思う。
簡単に言えば、モジュールとかパッケージシステムのようなもののこと。
0908デフォルトの名無しさん
NGNG0909デフォルトの名無しさん
NGNG0910デフォルトの名無しさん
NGNG0911デフォルトの名無しさん
NGNG0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNG0914デフォルトの名無しさん
NGNG0915デフォルトの名無しさん
NGNG0916デフォルトの名無しさん
NGNG0917デフォルトの名無しさん
NGNG0918デフォルトの名無しさん
NGNG0919デフォルトの名無しさん
NGNGこれで世代別 GC の (非 SPARC) RISC CPU への移植 --> (SBCL で) スレッドの実装と行くと嬉しいな。
0920デフォルトの名無しさん
NGNGamazonの書評では2人とも「入門向きではない」的なことを書いているけど。。。。
0921デフォルトの名無しさん
NGNG>symbol から object への対応表は複数あってもよいと思う。
>簡単に言えば、モジュールとかパッケージシステムのようなもののこと。
Common Lispのパッケージシステムは、文字列からシンボルへの複数の対応表を
扱う仕組みだけど、Schemeのモジュールはシンボルからオブジェクトへの複数の
対応表を扱う仕組みとして理解していい?
つまり、シンボルのバリューセルがモジュール毎に切り替わるということかな。
Emacsのバッファローカル変数みたいな感じかな。
0922デフォルトの名無しさん
NGNG0923デフォルトの名無しさん
NGNGあと既存の処理系が独自に実装しているモジュールシステムはあるよね。
0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNGScheme の symbol 自体には value cell は無いと考えた方がいい。
モジュールというか「環境」は、symbol をキーとし object を値とするハッシュテーブルのようなもの。
0926デフォルトの名無しさん
NGNG0927デフォルトの名無しさん
NGNGとりあえず macroexpand使ったらできたんですけど、CommonLispならそんなことしなくても
いいんですよね。
0928デフォルトの名無しさん
NGNGHyper Static Environmentなら確かにvalue cellは完全に不要だけど、
R5RSのあいまいなtop levelの定義ではどうも混乱してしまう。
http://c2.com/cgi/wiki?HyperStaticGlobalEnvironment
0929デフォルトの名無しさん
NGNG確かにあの本だけで入門は難しいかも。最初に読んだ Common Lisp 本が ANSI Common Lisp
だったけど、その時は既に CLHS とか CLtL とか知ってたからなぁ。
0930デフォルトの名無しさん
NGNG私はANSI Common Lispで入門しましたが、あれでよかったと思っています
(さすがにあれでCommon Lispを第一言語とするのは無理でしょうけど)。
Lispで何ができるのかを教えてもらったので、
今では必要に応じてHyperSpecを調べれば何とかなるようになりました。
;; と言っても学生なのでリアルの「仕事」をしたことはないし、
;; そもそもまだレベルの低いプログラムしか書いたことがありませんが...
でも、その後に学んだ関数型言語の知識も大きいかも知れません。
やはり純粋な関数型言語は(マルチパラダイムのLispと違って)前面に押し出す特徴があるから、
「ここは関数的に書くべきだな」という感覚とか、イディオムなんかはそっちの方が学びやすかったです。
;; もちろん、マルチパラダイムで柔軟なLispだからこそそういう知識が役立つんですが。
Grahamの新しいエッセイ、考えさせられることが多くてためになります。
ttp://www.shiro.dreamhost.com/scheme/trans/gh-j.html
> 私が思い付く全ての偉大なプログラマのうち、進んでJavaを書いている人物は一人しかいない。
Goslingのことかぁぁぁ!?
0931デフォルトの名無しさん
NGNG0932デフォルトの名無しさん
NGNGいろいろやったができないよ。
0933デフォルトの名無しさん
NGNGエッセイっていうか、OSCON 2004 の基調講演だよね。
言ってることはわからなくもないけど、ちょっと電波飛ばしてねーか? と
思ってしまった俺は、きっとハッカーではないのだろう。
0934デフォルトの名無しさん
NGNGどの辺?
0935デフォルトの名無しさん
NGNGすごいハッカーになることが、人生の勝者であるかのように語っているところ。
確かにそういう面もあるかもしれないけど、そのハッカーってのはかなり特殊な
人種なわけで、彼等の特殊性は as is のまま、周囲が彼等に合わせるべき、
理解すべきとしている論調がちょっとね。
> 実際、CobolやJavaが最も人気ある言語だというような統計は誤解のもとでさえ
> ある。 何が最高の道具かを知りたいなら、我々が見なければならないのは、
> ハッカーが自由に選べる際に、つまり、彼ら自身のプロジェクトに、 何を選ぶ
> かということだ。この質問をしてみれば、既にオープンソースのOSが 圧倒的
> なシェアを占めており、一番の言語はたぶんPerlだということに気づくだろう。
こんな馬鹿げたことを書いてるのにもゲンナリした。最高だろうが最低だろうが、
道具は道具に過ぎない。問題は何を作るか、だと思うんだけどねぇ...
0936デフォルトの名無しさん
NGNG一番の言語 アセンブラで作った自作の言語
0937デフォルトの名無しさん
NGNG「あっそう」で済ませてほっぽりだすかの
二通りしか感想のでてこない文章だな。
0938デフォルトの名無しさん
NGNG論点そのものを否定してどうするw
ま、言いたいことは分かるけどね。
だいたいハッカーってのは
「手段のためなら目的を選ばないという、どうしようもない奴」
が多いからな。何を作るかなんて眼中に無いのよ。
強いて言えば「手段=道具」を作りてえなとなるわけで。
0939デフォルトの名無しさん
NGNG0940デフォルトの名無しさん
NGNG0941デフォルトの名無しさん
NGNG>すごいハッカーになることが、人生の勝者であるかのように語っているところ。
実際Paul Grahamにとってはそうなのだと思う。
ttp://www.blog.net/nerds-jp.htm
ここでもオタクのが偉い、みたいなこと言ってるけど、実際アメリカに住んでたら、
そういう価値観持って胸張ってないとやってけなかったのかも。
0942デフォルトの名無しさん
NGNGそうだよね。それでも喰って行けるくらい飛び抜けていればいいんじゃない?
Lispじゃ喰って行けないっていうけど、実際はshiroさんや黒田さんみたいに仕事にでき
ちゃう人もいる。大学勤めならどんな言語をつかって研究しようが教えようが誰にも文句は
言われない(言わせない)しね。ふふ。
0943デフォルトの名無しさん
NGNG0944デフォルトの名無しさん
NGNG>誰にも文句は言われない(言わせない)しね。
そしてある日、それは単なる自分の思い過ごしだった事に
気づかされる日が来るんだよね。ふふ。
0945デフォルトの名無しさん
NGNG>なお、書籍版"Hackers and Painters"の邦訳はオーム社より刊行予定。
>>944
気付かなかった振りではダメですか?
0946デフォルトの名無しさん
NGNGまじっすか!
なんだよshiroさん。あなうんすshiroよ。
0947デフォルトの名無しさん
NGNGディレクトリ下にブツはあるようですが・・・
ftp://ftp.common-lisp.net/pub/project/cmucl/release/19a/
0948デフォルトの名無しさん
NGNGLisp で悟るとあのような日記を自然と書くことができますか?
コンピュータサイエンスの教授にはなぜあのような人が多いのでしょうか?
0949デフォルトの名無しさん
NGNG7/31 ころアナウンスするよって書いてあった気がするけど、まだみたいね。
バイナリはそれでオケなはず。
0950デフォルトの名無しさん
NGNGなぜ悪い道具というレッテルを貼られてしまっているのだろう。
単に、自分たちが慣れ親しんでいるUNIX Like OSと似ていないから
というだけ?
0951デフォルトの名無しさん
NGNG0952デフォルトの名無しさん
NGNG【普通のやつらの】CommonLisp Scheme Part11【上を逝け】
でどうよ。
0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNGかっこ悪すぎ。
0955デフォルトの名無しさん
NGNG自分で底の底までいじれないからじゃない?
AS/400の中の人になれば別なんだろうけどさ。
0956デフォルトの名無しさん
NGNGやっぱりあれだよ。70年代からコンピュータに
どっぷり浸かってた人ならIBMをよく思うのは無理だろ。
またIBMがLinux担いだところで、その魂胆の方が先に見えて
しまうんだろうな。
0957デフォルトの名無しさん
NGNG0958デフォルトの名無しさん
NGNG0959デフォルトの名無しさん
NGNGかっこ悪すぎ。
0960デフォルトの名無しさん
NGNG0961デフォルトの名無しさん
NGNG0962デフォルトの名無しさん
NGNGあー、先を越されてしまったが、もっとシンプルに
'(Lisp Scheme Part11)
0963デフォルトの名無しさん
NGNG0964デフォルトの名無しさん
NGNG0965デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNG;;「キターっ」て、>>947のこと?
0967デフォルトの名無しさん
NGNGCommonLisp Scheme Part11
http://pc5.2ch.net/test/read.cgi/tech/1091456033/
0968デフォルトの名無しさん
NGNGext:cd とか load ができないのだよ.
OS は WindozeXP.いちおう lisp で書いとけば
環境に依存しないだろうと思ったのに,
windoze で日本語ユーザー名で My DQNments しか使えないので...
0969デフォルトの名無しさん
NGNG0970デフォルトの名無しさん
NGNGCommonLispやSchemeの普及を阻害してるのは、本当は
PerlやPythonだと思う。現代版Cobolに対してLispの
優位性をアピールすることにどんだけの意味があるのか。
0971デフォルトの名無しさん
NGNGそれがねぇ。Scheme教えようとしても、「就職に役立つのはJava」なんて
言われちゃう世の中なんですよ。
0972デフォルトの名無しさん
NGNG最強の言語というのがあって,それは使っている人が多いはずで,
それさえ身に付ければ十分,という伝説のせいでしょうか.
0973デフォルトの名無しさん
NGNGそうゴスたんが言ってたよ。
0974デフォルトの名無しさん
NGNGFranz のセミナーのやつだよね。
0975デフォルトの名無しさん
NGNGすげ…書いてあることがサッパリ理解できんが
何か格好良い事だけはわかった
これが Lisper の考えるレベルかしら…おれには無理かしら
0976デフォルトの名無しさん
NGNG0977デフォルトの名無しさん
NGNG就職の面接で「Scheme使えますよ」と言ってみたら
「Lispみたいなやつだっけ?」ぐらいの反応しか帰ってきませんでした。orz
0978デフォルトの名無しさん
NGNGその答えが返ってくるだけまだよい方では・・・
0979デフォルトの名無しさん
NGNG作者がしていました。
が、clisp と UFFI でぐぐるとたしかpascalさんという人が書きかけたclisp用UFFIが
あったとおもう。
0980デフォルトの名無しさん
NGNG( ・∀・)つ〃∩ヘェーヘェーヘェー.サンクスコ.
0981デフォルトの名無しさん
NGNG(call/cc (lambda (c)
(http://pc5.2ch.net/test/read.cgi/tech/1091456033 c)))
0982デフォルトの名無しさん
NGNG0983デフォルトの名無しさん
NGNGScheme(Gauche)でCのsizeof相当の処理は可能ですか?
表面的にはchar/short/long/多倍長の違いが見えないので難しそうですが。
0984デフォルトの名無しさん
NGNGそれをどう使おうというのか?
0985デフォルトの名無しさん
NGNGとりあえず 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
もしかして、ユニフォームベクタ使いたいのかな?
0986デフォルトの名無しさん
NGNGttp://www.shiro.dreamhost.com/scheme/gauche/man/gauche-refj_207.html#SEC230
もろにこの部分。すんません、次からはちゃんとマニュアル内探します。
0987968
NGNG文字コードのちゃんとした設定というのが分かりません.
とりあえず思いついたコーディング名を引数にしたりしました.
自宅のマシンではないのでメモがないんです.
lisp がないと私はただの豚なんです教えてくださいぃぃ.m(__)m
0988デフォルトの名無しさん
NGNGttp://clisp.cons.org/impnotes.html#encoding
このへんでしょうか。
0989デフォルトの名無しさん
NGNGclisp -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~%
というバグが発現しました。
イヤ〜ンな感じ。俺のやり方がタコなだけだといいんだけど。
レス数が950を超えています。1000を超えると書き込みができなくなります。