1 名前:デフォルトの名無しさん mailto:sage [04/02/01 19:10] 過去スレ Part1: piza2.2ch.net/tech/kako/987/987169286.html Part2: pc.2ch.net/test/read.cgi/tech/1002584344/ Part3: pc.2ch.net/test/read.cgi/tech/1008220265/ Part4: pc.2ch.net/test/read.cgi/tech/1016211619/ Part5: pc3.2ch.net/test/read.cgi/tech/1023091882/ Part6: pc3.2ch.net/test/read.cgi/tech/1031560687/ Part7: ruku.qp.tc/dat2ch/0311/20/1042167213.html Part8: pc2.2ch.net/test/read.cgi/tech/1058263391/ Part9: pc2.2ch.net/test/read.cgi/tech/1069594582/ 前、"Schemeスレはあるのになんでcommonlispスレはないの?"とか言って別のスレを建てた大馬鹿者がいたので、 標題にCommonLispと付けておきました。 Lispの話題でCommonLisp,Scheme,EmacsLisp(専用スレッドがある)以外のものが出ることはこのスレの歴史上でも 稀なので問題はほとんどないかと思います。 関連リンクは>>2-10 あたり
672 名前:デフォルトの名無しさん mailto:sage [04/06/20 22:36] 2.27 て…。まぁ、asdf.lisp がロードできてるなら cl-ppcre の インストールに asdf-install は要らないよ。手動で cl-ppcre の アーカイブをダウンロードしてきて [1]> (load "asdf/asdf.lisp") [2]> (load "cl-ppcre/cl-ppcre.asd") [3]> (asdf:oos 'asdf:load-op :cl-ppcre) だけ。あとは (saveinitmem) としてイメージ作れば良いじゃん。 あと 2.27 にこだわる理由がなければ 2.33.x にしとくのが吉。
673 名前:664 mailto:sage [04/06/20 22:43] >>672 親切にありがとうございます. いま,cmucl でやってみると,一通り終わるものの 5 errors 出ました. ;;; メインで clisp を使うのに *.x86f が出来ても... はい.debian woody なのと HDD が小さいのでバージョンアップを 渋っておりましたが,以下の理由で考え直します. [2]> (load "cl-ppcre/cl-ppcre.asd") ;; Loading file cl-ppcre/cl-ppcre.asd ... *** - handle_fault error2 ! address = 0x4556454F not in [0x202B6000,0x2037220C)! SIGSEGV cannot be cured. Fault address = 0x4556454F. セグメンテーション違反です
674 名前:デフォルトの名無しさん mailto:sage [04/06/20 23:43] やたっ! Mac OS X 上の ECL でスレッド使えた。 つっても無理矢理ビルド通しただけなんで、実用性はありませんけど。 素朴な疑問ですが、Lisper な人ってスレッドをあまり必要としていないんでしょうか? ネイティブスレッドを使える環境がかなり限られている感じがします。
675 名前:674 mailto:sage [04/06/21 00:15] と思ったら、重い処理させると落ちる・・・。
676 名前:デフォルトの名無しさん mailto:sage [04/06/21 01:14] >>664 Debian使ってLispやるならsidがいいのではないかと。 Kevin M Rosenbergが精力的にパッケージ作ってくれてるのでマジで助かります。 バグ修正したり機能拡張したコード送ると(暇なら)次の日にはパッケージ更新してくれるし。 ディスク容量とかメモリとかはカネで時間(作業効率)が稼げると思えば安いもの。組み込み 用途を検討中とかなら話は別だけどね。 hxxp://b9.com/debian.html >>674 Lisperがスレッドを必要としないってことはないでしょう。SBCLのウリのひとつだし。 Lisperは正規表現を必要しないってのは聞いたことがあるけど。リーダーマクロマンセー。
677 名前:664 mailto:sage [04/06/22 02:50] clisp バージョンを上げて解決しました. 便利な正規表現を使えるようになりました.みなさんのおかげです. ところで, (asdf:oos 'asdf:load-op 'cl-ppcre) が終わるのに 2 分くらいかかりますが,これは毎回必要なんですか? 実際に使うために動かすのは手元ではないので耐えられますが... >>676 sid は色々気をつけないとならないので逃げます orz
678 名前:デフォルトの名無しさん mailto:sage [04/06/22 06:25] >>677 cl-ppcre をロードした後に (saveinitmem) で 新しいイメージを作ってそっちを使うようにするのが定石です。 #!/bin/sh /usr/local/bin/clisp -M ~/my/dir/initmem みたいに自分のイメージを使って起動するシェルスクリプトを パスの通ったところに置いておきましょう。 あと、clisp なら標準の regex, あるいは pcre モジュールの ほうが性能は良いって事は心に留めておいたほうがいいです。 cl-ppcre は移植性と互換性は良いけどね。
679 名前:デフォルトの名無しさん mailto:デフォルトの名無しさん [04/06/22 14:50] Gaucheのwww.cgiを使ってみたいのですが、下のようにoutput-charset を定義すると、「"euc-jp"」と評価されます。ここで、「euc-jp」と 評価されるにはどうしたらいいのでしょうか? (define output-charset "euc-jp") (define (main args) (cgi-main (lambda (params) `(,(cgi-header :content-type #`"text/html; charset=,(output-charset)")
680 名前:デフォルトの名無しさん mailto:デフォルトの名無しさん [04/06/22 15:05] >>679 あっ。。。 (define output-charset "euc-jp") (define (main args) (cgi-main (lambda (params) `(,(cgi-header :content-type #`"text/html; charset=,output-charset")
681 名前:デフォルトの名無しさん mailto:sage [04/06/22 15:25] CGIプログラムを継続を使って書くと綺麗なコードになると何度か聞いたことがあります。 たぶん、HTTPがステートレスな接続形態であることをうまく隠して、 複数のHTTP要求と応答をひとつのセッションとしたコーディングができるようになるのかなと 想像しています。具体的に教えてください。 また、Continuation Passing Styleで書けば継続が直接サポートされていない Common Lispでも同じように綺麗なコーディングができますか? Kahuaも継続を売りにしていますよね。
682 名前:デフォルトの名無しさん mailto:sage [04/06/22 20:58] cygwin 環境で guile-1.6.4をコンパイルしたのですが、make途中で エラーが発生してしまいます。 場所は cat alist.doc (略) regex-posix.doc | GUILE="/cygdrive/c/home/work/guile-1.6.4/ pre-inst-guile" ../scripts/snarf-check-and-output-texi --manual > guile.texi || { rm guile.texi; false; } ERROR: Unbound variable: define guile.texiを作成するところです。実行ファイルそのものはできている ようなのでそれを直接実行してみると bash-2.05b$ libguile/guile ERROR: In procedure primitive-load-path: ERROR: Unable to find file "ice-9/boot-9.scm" in load path bash-2.05b$ のようなエラーになります。configure時には何も指定していません。 どなたか対処法をご存知ありませんか?
683 名前:664 mailto:sage [04/06/22 23:04] >>678 >>672 で (saveinitmem) に触れていただいたのに見落としていました.すみません. debian sarge の cmucl でも cl-ppcre を難無く load できました. 移植性と互換性とはいっても,古いバージョンには入れられないものなんですね. 他所 (sparc マシン) の cmucl で動くか試してみましたが, load 中,api.sparcf で type-error が出て入れられないんです. しかも api.lisp の何行目が悪いのかも分からず... 自宅では軽い clisp で作り,cmucl の入ったサーバーにアップロードという 目標は無理のようです.orz
684 名前:デフォルトの名無しさん mailto:sage [04/06/22 23:30] >>681 Kahuaのチュートリアルがわかりやすいかと。 www.kahua.org/cgi-bin/kahua.cgi/kahua-web/show/doc/hello-kahua#H-y3tjno ちなみにKahuaでいう「継続ベース」というのは、call/ccでどうのこうの ということではなくてCPSで書きますということです。 すなわち、Common Lispでも同様にやれるでしょう。
685 名前:デフォルトの名無しさん mailto:sage [04/06/23 00:13] >>681 www.common-lisp.net/project/ucw/index.html Common Lisp で継続ベースの Web アプリ開発フレームワーク、だそうです。 使ったことないですが。
686 名前:デフォルトの名無しさん mailto:sage [04/06/23 00:36] >>683 エラー吐いてデバッガに落ちてるんじゃないの? バックトレースとかスタックフレームとか調べてみた? まず「ソースコードの何行目が悪いのか」という思考から「どこの式が悪さしてるか」を 意識するようにしてみるといいかも。
687 名前:デフォルトの名無しさん mailto:sage [04/06/23 07:37] >>684-685 ありがとうございます。
688 名前:664 mailto:sage [04/06/23 22:44] 今日,>>686 のご指摘通りデバッガとの対話を学び,試そうと某所へ行きました. すると,コケたはずのインストールが,修正していないのに出来てしまいました. (asdf:oos ...) も (load "cl-ppcre-0.7.7/load.lisp") も出来ます. ;;; 管理者さんがこのスレにいるのでしょうか... そして,マイ core も作りました. あとはカッコいいプログラムを作るだけです.ありがとうございました > root
689 名前:デフォルトの名無しさん mailto:sage [04/06/24 02:05] Windows版はないのね。残念。
690 名前:デフォルトの名無しさん mailto:sage [04/06/24 23:50] 湯浅センセがスーパークリエイタになってはる。応募しはったときも 思たんやけど、なんで今さら…。めっさ、違和感あるわ。次世代ちゃ うやろ。
691 名前:デフォルトの名無しさん mailto:sage [04/06/25 03:13] ペタジーニのバントみたいだな。 夢が壊れるよ。
692 名前:デフォルトの名無しさん [04/06/25 08:54] そう? あの年で(失礼)、また教授になってもhackするのはいいことじゃないですか。 おまえらももっとhackしろというメッセージだと思ってます。
693 名前:デフォルトの名無しさん mailto:sage [04/06/25 09:03] lisp屋が おじさん/おばさん、おじいさん/おばあさん になっても hack するのは、デフォじゃないの?
694 名前:デフォルトの名無しさん mailto:sage [04/06/25 09:53] お金とって来れる偉い人がなっちゃいかんよなぁ。 もっと若い人に譲らなきゃ。
695 名前:デフォルトの名無しさん mailto:sage [04/06/25 13:26] 若い連中がふがいないから教授に取られちゃうんだよ。
696 名前:デフォルトの名無しさん mailto:sage [04/06/25 18:44] ファイルの中身をまるまる string にするには,どうやればいいですか? get-output-string-stream は output stream にしか使えないんですね.
697 名前:デフォルトの名無しさん mailto:sage本人が釣れないかな・・・ [04/06/25 19:11] >>694 >お金とって来れる偉い人がなっちゃいかんよなぁ。 もしかして「京大教授」って、意外と薄給なのでは?
698 名前:デフォルトの名無しさん mailto:sage [04/06/26 10:08] >>696 処理系は? まぁ、このへんを参考にしたらいいと思いますが。 www.shiro.dreamhost.com/scheme/wiliki/schemexref.cgi?port-%3estring >>697 「お金」= 「給料」ではなくて研究費です。 給料は国立大の教授なら1000万程度では。 いいと思うかは微妙なところだけど。
699 名前:デフォルトの名無しさん mailto:sage [04/06/26 11:09] XSで未踏に応募したのはWindows版の開発を委託する費用を捻出するため。 スーパークリエイターに認定されたのは湯浅センセがどうこうできることじゃない。 695の意見が正しいと思う。
700 名前:デフォルトの名無しさん mailto:sage [04/06/26 13:32] 少し前に話題になっていた、Lisp の知見を他言語(Javaなど)で生かす話、 こんなのを見つけました。 『A Little Java, A Few Patterns』 namazu.org/~satoru/diary/20010320.html#p01 この本は、名著『Little Schemer』の著者によるものだそうで、デザパタの中でも 難解で知られる Visitor パターンが、関数型言語の考え方から自然に導かれることを 説明するのだそうです。 そうか。関数型言語なら高階関数で行うことを、オブジェクト指向言語はオブジェクトで 行うのか。それらの知見は、ある程度は相互に利用が可能みたいですね。 邦訳も出ているみたいです。 『Javaとピザとデザインパターン』 www.amazon.co.jp/exec/obidos/ASIN/4797307900
701 名前:デフォルトの名無しさん mailto:sage [04/06/26 13:33] あと一つ、Greenespun's 10th Rule のグリーンスパンの Blog から 『Scheme vs. Common Lisp』 philip.greenspun.com/bboard/q-and-a-fetch-msg?msg_id=0006XQ 私は Scheme を少し知っているだけなのですが、これを読むと Common Lisp の実用性は 素晴らしいと思いますねえ。 それにしても、flame war 勃発と思いきや、あんまり騒ぎになってない。 そもそも Lisp 界にはフレームが起こるほど人がいないのか。 グリーンスパンが同じ Blog で Java を揶揄したときは、スラドを含めて 大騒ぎになったらしいのにねえ。 www.shiro.dreamhost.com/scheme/wiliki/wiliki2.cgi?Shiro%3alog%3a2003%b8%e5%c8%be (2003/09/24 18:54:23 PDT)を参照
702 名前:696 mailto:sage [04/06/26 14:06] >>698 あっ,common lisp の話なのに書き忘れてしまいました.ごめんなさい. 処理系は clisp ですが,処理系に依存しない方がいいです. いろいろ試してはみましたが,do と read-line よりいいものは無いのでしょうか.
703 名前:デフォルトの名無しさん mailto:sage [04/06/26 16:24] >過去ログ眺めてきたけど、何か妙に卑屈になってるのが居るみたいね。 lisp界には凄い人が普通にいる感じがするからじゃないかな。 shiroとか苫米地とか新山とか。 KCLの両先生はさしあたり東大寺の仁王像、京都大学は奈良の大仏、 アランスク先生はジャンヌダルクかフランス貴公子(奇行氏)といった所だろう (適当だが)
704 名前:デフォルトの名無しさん mailto:sage [04/06/26 17:37] shiro >>>>>>>>>>>>>>>> 苫米地 > 俺 > 新山
705 名前:デフォルトの名無しさん mailto:sage [04/06/26 18:22] ↑バカディスカー?
706 名前:デフォルトの名無しさん [04/06/26 21:00] >>703 >アランスク先生はジャンヌダルクかフランス貴公子(奇行氏)といった所だろう >(適当だが) 災いを招くつもりですか?
707 名前:デフォルトの名無しさん [04/06/26 22:09] 新山さんとアランスク先生って誰?
708 名前:デフォルトの名無しさん mailto:sage [04/06/26 22:27] shiroさん最強。 苫米地さんは謎。コード読んだこと無いし。 新山さんは・・・日記職人(田口)。
709 名前:デフォルトの名無しさん mailto:sage [04/06/26 23:46] >>707 aranskはゲームセンターで小学生突き落とした中学生
710 名前:デフォルトの名無しさん [04/06/27 12:26] knilって何ですか? (directory-fold: www.shiro.dreamhost.com/scheme/gauche/man/gauche-refj_272.html#SEC299
711 名前:デフォルトの名無しさん mailto:sage [04/06/27 13:25] >>710 特に意味がない。 (fold KONS KNIL LIST ...) (SRFI1) が元ネタ。2つの引数を持つ プロシージャを何度も呼ぶとき、第2引数の初期値として使われる。 多くの場合、KONS として cons のような 関数を使い、KNIL として '() が使われる。
712 名前:デフォルトの名無しさん [04/06/28 14:23] chezのコンパイラについて御意見を聞かせてください。購入しても バイナリのみのライセンスですよねぇ(いくらするんだろう)? >chezer様
713 名前:デフォルトの名無しさん mailto:sage [04/06/28 22:44] >>712 個人向けの販売はしてないらしい。 $9000とか、学校向けでも$4500もするんだもんな。 Kent教授に嘆願書でも出さないか?
714 名前:デフォルトの名無しさん mailto:sage [04/06/28 23:04] >>713 それでもずいぶん安くなったのではないですか? ACL もずいぶん安いライセンスも出るようになったから、Chez も今後、 期待したいですね。 下は、2年前の話。 LISP Scheme Part6 pc3.2ch.net/tech/kako/1031/10315/1031560687.html 835 名前: デフォルトの名無しさん 02/11/26 03:59 Chez Scheme 6.0の見積もりを取ったが、いやはやあんなに高いとは。 マシン・タイプごとに24,500ドル。サポートが1機種 年間1,350ドルだと。 それほどの価値があるソフトなのか???
715 名前:デフォルトの名無しさん mailto:sage [04/06/28 23:09] ACL アカデミックとかじゃなくて普通に商用に使うために買うといくらするの?
716 名前:デフォルトの名無しさん mailto:sage [04/06/29 02:30] このスレの Part 8 で紹介されていた URL に $599 という価格があるんだけど、 www.franz.com/products/packages/ これって、アカデミック・ディスカウントなの? そうは思ってなかった。 教育関係なら、ここからさらに割り引かれるのかと思ってました。 ご存知の方おられませんか?
717 名前:デフォルトの名無しさん [04/06/29 08:23] 先日のFranzセミナーでもらった価格表によると… Windows/Linux/FreeBSD/MacOS X版 Professional 750,000 (395,000) Enterprise 1,400,000 (795,000) Platinum 2,000,000 (895,000) UNIX (Sun, IBM, HP, Compaq)版 Professional 1,300,000 (520,000) Enterprise 2,000,000 (1,040,000) Platinum 2,750,000 (1,200,000) …高い… orz
718 名前:717 [04/06/29 08:24] あ、括弧の中はアカデミック価格ね。
719 名前:デフォルトの名無しさん mailto:sage [04/06/29 08:28] 俺はソースネクストが1980円で売り出すのを待つよ。
720 名前:デフォルトの名無しさん mailto:sage [04/06/29 08:38] 括弧を無くして初心者にやさしい構文になったAllegro CLパーソナル版 1,980円!
721 名前:デフォルトの名無しさん mailto:sage [04/06/29 11:58] >>717-718 ありがとうございます。 業務システムなら千万単位の金が動くのは当たり前なので、そういうところが 売り込みの対象なのでしょうね。 SUN の Java みたいにただでばら撒いてもらえるとありがたいけど、これを 売って会社を成り立たせているから、市場の少ない段階ではおいそれと値下げも できないし。 考えてみたら、Java がタダでばら撒かれているのがすごく不思議な気がしてきた。
722 名前:デフォルトの名無しさん mailto:sage [04/06/29 12:37] インタプリンタでさえF1マシンのように速いのにコンパイラは どれ程のものだろうね。個人的にはchez(petite)で EdwinみたいなEmacs互換のエディタがあればいいなぁ。 そういえば奥村先生の辞典にあるメルセンヌ数(素数)判定の プログラムをpetiteで再実装したらCコンパイラ(gcc)のコードより かなり速かった。…やっぱpetiteインタプリンタが内蔵された エディタが欲しいなぁ。doctorの腕も上がるかもねww
723 名前:デフォルトの名無しさん [04/06/29 15:23] Gaucheのテキストツリー構造を見ています。仕様の資料ってありますか? (use text.html-lite) (html:html (html:h1 "TITLE")) =>(#0="<" html () #1=">" ((#0# h1 () #1# ("TITLE") #2="</" h1 #3="\n>")) #2# html#3#) (html:html (html:h1 "タイトル")) =>(#0="<" html () #1=">" ((#0# h1 () #1# ("ツタツイツトツδ・) #2="</" h1 #3="\n>")) #2# html #3#)
724 名前:デフォルトの名無しさん mailto:sage [04/06/29 17:01] May the source be with you.
725 名前:デフォルトの名無しさん mailto:sage [04/06/29 17:02] happy hacking
726 名前:デフォルトの名無しさん [04/06/29 18:26] Windows版のLispってありませんか?
727 名前:デフォルトの名無しさん mailto:sage [04/06/29 18:40] ググれ
728 名前:デフォルトの名無しさん mailto:sage [04/06/29 19:02] ググった
729 名前:デフォルトの名無しさん mailto:sage [04/06/29 21:38] >>721 petite の方はただで配ってるし、プロプラなアプリに組込んで使っても問題無い感じ。 ところで、↓この chez の方の src.rpm ってソースコード丸々入ってるんですか? ttps://www.cs.indiana.edu/chezscheme/iu/
730 名前:デフォルトの名無しさん [04/06/30 00:52] >>726 Allegro CLのWindows版があるよ。
731 名前:デフォルトの名無しさん [04/06/30 11:47] >>724-725 了解しました (文字化けは、文字コード設定だけの問題でした)
732 名前:デフォルトの名無しさん mailto:sage [04/06/30 22:13] >>729 .aしか入っとらん。 そんなに世の中甘くないぞ
733 名前:デフォルトの名無しさん mailto:デフォルトの名無しさん [04/07/01 15:52] Gaucheのマニュアルを見ているんですが、なぜ戻り値の型が記載されていな のですか? 下のような形が標準であって、戻り値の型は必須になっていない です。Scheme的な流儀? 調べてみると、stringが返ってくるのか、portが返ってくるのか等々、判断 しにくいです。 ex) Function: read-block nbytes &optional iport ttp://www.shiro.dreamhost.com/scheme/gauche/man/gauche-refj_101.html#SEC105
734 名前:デフォルトの名無しさん mailto:sage [04/07/01 16:37] 釣りか? 吊りなのか?
735 名前:デフォルトの名無しさん mailto:sage [04/07/01 17:13] >>733 srfi とか、あるいは(scheme じゃないけれど)clhs みたいな フォーマットで書いてほしいって事でしょうか。 と、解釈してみます。
736 名前:デフォルトの名無しさん mailto:sage [04/07/01 17:39] >>733 MLやWiLiKiでshiroさんにきいてみなよ。 即効でレスしてくれるぞ。
737 名前:デフォルトの名無しさん mailto:sage [04/07/01 22:18] >>733 文字列を返すこともあれば、eof オブジェクトを返すこともあるわけで、 一つの型には決められないからじゃないのかな。 そこらへんをうまく扱えるいい表記があればね、と無責任モード。
738 名前:デフォルトの名無しさん mailto:sage [04/07/02 00:40] Schemeにも型表記の取り決めがあればいいね。 型が変化しない関数は組み込みを含めてありえるわけだし。 CommonLisp族のdeclareディレクテイブはどうなんだろう。
739 名前:デフォルトの名無しさん [04/07/02 18:38] 型なんかが必要な人は頭が型いんです。
740 名前:デフォルトの名無しさん mailto:sage [04/07/02 22:07] OnLisp 邦訳、Franz のサイトからリンク張ってあるね。
741 名前:デフォルトの名無しさん mailto:sage [04/07/02 23:36] >>740 すげぇな。ほんとだ。 あとは訳が完成するのをまた〜りまつこととしますか。
742 名前:デフォルトの名無しさん mailto:sage [04/07/03 01:33] 訳が完成したら出版してほしいなあ。 翻訳の完成度高いし。
743 名前:flatline@Vim%Chalice ◆r6EONKKhcc mailto:sage [04/07/03 04:13] そんなことより >>740 -- >>742 よ,ちょいと聞いて下さいよ.Lispとあんまり関係ないけどさ. 今日(昨日),ACMプログラミングコンテスト予選があったんです,ICPC国内予選. そしたら各大学3チームしか選ばれないのに,東大から19チームも出てて絶望なんです.もうね,ア(ry で,1年生(教養前期)3人のチームの中にうちのサークルの新人がいたんで, 「ま,選抜はされないだろうけど精一杯やるさ.きみっちもがんばれよ」と先輩風吹かしてみたら, なんと彼ら qoo_ が東大3位,全国4位(まだ暫定)で選抜されるっぽいんです. ttp://www.logos.ic.i.u-tokyo.ac.jp/acm-icpc/standings.html そこでまた(全国86位の自分に)ぶち切れですよ. 偉そうな顔して何が,探索空間広杉,だ. 自分はJavaでO(n^6)の土方コーディングしかできないのちゃうんかと. まあ私,flatlineは,分数の単位分数による分解をきちんと解きなさいってこった. ☆ ☆ ☆ なお使用可能言語はC, C++, Javaの3つ,時間は3時間15分でした. それに対してICFP www.cis.upenn.edu/proj/plclub/contest/ の方は任意の環境が利用でき, 時間も数日単位です(チームで寝る奴と書く奴を分担したり). 例年OCamlとかが人気のようですが,Common Lispも数チームずつ選んでいるようです. これを読んでいる学生の方,どっちでもいいですが参加してみてはいかが. 優秀な方に対しても,私みたいな orz に対しても,よい体験になると思います.
744 名前:デフォルトの名無しさん mailto:sage [04/07/03 04:51] これって、参加者のコード見れるの?
745 名前:デフォルトの名無しさん mailto:sage [04/07/03 12:24] >>743 なんかこう何とも言えないでつな(汗 C, C++, Javaてのがまた。来年あたりC#とかが追加されてみたりすんのかねぇ? Lispでごりごりなら743もゴリゴリ逝けたはず? まぁ、学生さんたち頑張ってくれ。
746 名前:デフォルトの名無しさん mailto:sage [04/07/03 15:21] >>726 SBCL win32 port のパッチが公開されてるよ。
747 名前:O....TZ@Vim%Chalice ◆r6EONKKhcc mailto:sage [04/07/03 15:30] 見られません < 提出済みコード 審判システムが終了してるので,感想戦やろうにもなかなか難しい. まぁ大きなコミュニティに属してる利点ってのは, そういうときでも「そのコードがacceptされたチームの人」「その場で(!)解ける人」が 身近にいるってことなんですが. ICPCはどの言語だろうと本質的な手間は変わらない問題が多いぽ. 手続的言語にしぼってるのは,それなりの意図でしょう(Pascalが加わる場合も). まぁ「Lispだとこうなる」ってのも面白いのでちょっと過去問を解いたことがありますが.
748 名前:デフォルトの名無しさん mailto:sage [04/07/03 17:33] 絶対に declare しておきたい場合を教えてください. cliki に置いてあるのを参考にしてみるも,全部に型を書いてあるんです. ここまで頑張るのでは大変です. 効果が大きいとか小さいとかは,どうしたら分かるのでしょうか.
749 名前:デフォルトの名無しさん mailto:sage [04/07/03 20:22] 絶対必要なのはプロファイルをとる事。なんでかっつーと、 効果がわからないって奴の大半はボトルネックをきちんと 測定していないから〜。 型指定はその後。一番良く呼ばれる関数のインライン化、 速度なら多用される計算関数、頻繁にアクセスする配列、 メモリ量ならサイズの大きい構造体や配列、クラス等で の型指定かなぁ。きちんと Profiling してるなら効果 もそれなりに測定できるはず。後は disassemble するとか。
750 名前:デフォルトの名無しさん [04/07/03 20:56] ヤッターマン
751 名前:デフォルトの名無しさん [04/07/03 20:57] コーヒー
752 名前:デフォルトの名無しさん [04/07/03 20:57] ライター
753 名前:748 mailto:sage [04/07/04 16:05] >>749 ありがとうございます.こんなに簡単に分かるものだったなんて初めて知りました. declare 前後の効果をはっきり知るために declare 式を一斉に on, off したいのですが,コメントにするのでは大変です. C の ifdef のようなものがあると便利なのですが, こういうときに役立つ方法を教えてください. *feature* に :declare-shiru を push して #+ 等を使うのは普通ですか?
754 名前:デフォルトの名無しさん mailto:sage [04/07/04 22:51] 関数として扱え,setf の 1 番目の引数でも使える accessor とは何なんでしょうか. 例えば,色々なものをごちゃ混ぜにしたリストを複数の関数で扱うとき, (defun data1 (lst) (cdr (nth 3 lst))) (defun data2 (lst) (cdr (nth 5 lst))) とやると setf でアクセスできなくなりますし, (defmacro data1 (lst) `(cdr (nth 3 ,lst))) (defmacro data2 (lst) `(cdr (nth 5 ,lst))) とやると関数を引数にするものに渡せません (:key など). こんなとき,みなさんはどうやっていますか?
755 名前:デフォルトの名無しさん mailto:sage [04/07/05 06:28] こんなんじゃなかったっけ? あと適当に defsetf とかで検索しておくれ。 (defun kar (kons) (car kons)) (defun (setf kar) (kons obj) (rplaca obj kons)) > (setq data '(1 2)) (1 2) > (kar data) 1 > (setf (kar data) 3) (3 2) > data (3 2)
756 名前:754 mailto:sage [04/07/05 20:02] >>755 全く知りませんでした.ありがとうございます. CLHS を一から読むと,まだ知らないことがゴロゴロ出てきそうです.
757 名前:デフォルトの名無しさん mailto:sage [04/07/05 21:18] あ、上のでも一応動くんだが (defun (setf kar) (obj kons) (rplaca kons obj)) だった。
758 名前:デフォルトの名無しさん mailto:sage [04/07/06 00:23] あら、gencgc って SPARC にも対応してたんだ。CVS 追っかけてなかったから知らんかった。 次は MP かしらん(ワクワク
759 名前:デフォルトの名無しさん mailto:sage [04/07/06 18:29] (っ´∀`)っ(defun mona () ((っ´∀`)っ(defun mona() ((っ´∀`)っ (っ´∀`)っ(defun mona () ((っ´∀`)っ(defun mona() ((っ´∀`)っ (っ´∀`)っ(defun mona () ((っ´∀`)っ(defun mona() ((っ´∀`)っ (っ´∀`)っ(defun mona () ((っ´∀`)っ(defun mona() ((っ´∀`)っ (っ´∀`)っ(defun mona () ((っ´∀`)っ(defun mona() ((っ´∀`)っ
760 名前:デフォルトの名無しさん mailto:sage [04/07/07 14:12] そういうの、大人はあまり面白がってくれないよ。
761 名前:デフォルトの名無しさん mailto:sage [04/07/07 17:12] 無名関数のみで再帰するシンプルな方法を考えてみました。 まず、リストの長さを測る関数 my-length を作ってみる。 (define (my-length list0) (if (null? list0) 0 (+ 1 (my-length (cdr list0))))) (my-length '(1 2 3 4)) ==> 4 それを無名関数だけで書き直す。要するに、自分と同じ形の関数を 引数に取って、それを再帰の代わりに呼び出すのである。 ((lambda (function list0) (if (null? list0) 0 (+ 1 (function function (cdr list0))))) (lambda (function list0) (if (null? list0) 0 (+ 1 (function function (cdr list0))))) '(1 2 3 4)) ==> 4 これを理解すれば、Yコンビネータを理解することの助けになると 思ったんですが、いかがなものでしょうか?
762 名前:デフォルトの名無しさん mailto:sage [04/07/07 18:34] 前スレあたりにいくつかあったよ
763 名前:デフォルトの名無しさん mailto:sage [04/07/07 19:19] >>762 ありがとうございます。なるほど、確かに前スレにありました。 見たはずなのですが、当時は理解できなくて読み飛ばしていました。 今『Scheme 手習い』の9章を読んだばかりで、 「この Yコンビネータは洗練されているけれど、分かりづらい。汎用性をなくせば、 もっと分かりやすい再帰ができるのじゃないか?」 と思ったのですが、すでによく知られていることなのですね。すみません。 以下は前スレの引用ですが、眼からウロコが落ちる思いでした。 ----------------------------------------------------------- 437 名前: デフォルトの名無しさん 03/12/12 23:03 lambdaだけで回すコードは、カンの鋭い人なら、相互的な再帰処理を 書いている内に自然と気付くかもしれない 結局は、以下のより単純にした式 ((lambda(x)(x x))(lambda(x)(x x))) この式の応用だから
764 名前:デフォルトの名無しさん mailto:sage [04/07/08 02:12] このスレの話題と呼応する様に、Bill Clementson のブログに Java と CL の連携の話が出てるね。
765 名前:デフォルトの名無しさん mailto:sage [04/07/09 14:29] hobbitとBiglooってどう違うん?
766 名前:デフォルトの名無しさん mailto:sage [04/07/09 16:49] >>743 flatline 氏 on Lisp の邦訳の 148ページ目に、TeX のタグが残っていますよ。 ----------------------------------- Common Lisp のこのコードは, \begin{verbatim} (let ((f #’(lambda (x) (1+ x)))) (funcall f 2)) \end{verbatim}
767 名前:デフォルトの名無しさん mailto:sage [04/07/10 00:16] >>765 hobbit は r4rs だし、末尾再帰の最適化もされないんじゃなかったっけ? Bigloo がどうだか知らないけど、hobbit は Scheme で書かれてる。 Scheme で標準的な FFI のライブラリってありますか? C の struct とか union も Scheme から扱えると嬉しいのですが。
768 名前:デフォルトの名無しさん mailto:sage [04/07/10 02:09] > Scheme で標準的な FFI のライブラリってありますか? SRFI でもめてたっけなー
769 名前:デフォルトの名無しさん mailto:sage [04/07/10 12:42] r5rs の 7.3 Derived expression types に書いてある、 case の定義について質問です。 template の最初の clause (+ の部分) を省いたら、 もとの定義とどういう違いが生まれるのでしょうか? それとも省略しても変わらないのでしょうか? (define-syntax case (syntax-rules (else) ((case (key ...) ;+ clauses ...) ;+ (let ((atom-key (key ...))) ;+ (case atom-key clauses ...)));+ ((case key (else result1 result2 ...)) (begin result1 result2 ...)) ((case key ((atoms ...) result1 result2 ...)) (if (memv key '(atoms ...)) (begin result1 result2 ...))) ((case key ((atoms ...) result1 result2 ...) clause clauses ...) (if (memv key '(atoms ...)) (begin result1 result2 ...) (case key clause clauses ...)))))
770 名前:デフォルトの名無しさん mailto:sage [04/07/10 13:29] >>769 key が複数回評価されてしまう。値が変るかもしれないし、 変な副作用が出るかもしれない。
771 名前:デフォルトの名無しさん mailto:sage [04/07/10 13:33] 省略するとKEYが複数回評価されてしまうことがあるな。 こんなんだと違いが出るでしょ。 (case (begin (print "foo") 2) ((0) ()) ((1) ()) ((2) ()))
772 名前:769 mailto:sage [04/07/10 13:42] >770,771 回答ありがとうございます。 理解できました。