1 名前:デフォルトの名無しさん mailto:sage [04/08/02 23:13] 過去スレ Part1: piza2.2ch.net/tech/kako/987/987169286.html Part2: pc.2ch.net/tech/kako/1002/10025/1002584344.html Part3: pc.2ch.net/tech/kako/1008/10082/1008220265.html Part4: pc.2ch.net/tech/kako/1016/10162/1016211619.html Part5: pc3.2ch.net/tech/kako/1023/10230/1023091882.html Part6: pc3.2ch.net/tech/kako/1031/10315/1031560687.html Part7: ruku.qp.tc/dat2ch/0311/20/1042167213.html Part8: pc2.2ch.net/tech/kako/1058/10582/1058263391.html Part9: pc2.2ch.net/test/read.cgi/tech/1069594582/ Part10: pc5.2ch.net/test/read.cgi/tech/1075630259/ 関連リンクは>>2-10 あたり
152 名前:デフォルトの名無しさん mailto:sage [04/08/20 23:39] >>147 これはメモリセルと断言できると思うよ。実装の話をしてるわけだし。
153 名前:デフォルトの名無しさん mailto:sage [04/08/20 23:50] (1 . 2) を表現するために必要なメモリセルは二つだと思うんだけどなんか間違ってる?
154 名前:デフォルトの名無しさん mailto:sage [04/08/21 00:08] >>153 実装次第。
155 名前:デフォルトの名無しさん mailto:sage [04/08/21 00:27] >>154 や、CDR-cording とやらを使わない普通の実装でもよ。 普通の実装の場合でもアトムならポインタ使わないでしょ。リストの時だけ使う。 常にポインタ使う実装もあるのかもしれないけどさ。
156 名前:デフォルトの名無しさん mailto:sage [04/08/21 00:38] (1 . 2) をあらわす即値を用意すればいいのでは。
157 名前:デフォルトの名無しさん mailto:sage [04/08/21 00:42] >>156 それには何バイトいるの?
158 名前:デフォルトの名無しさん mailto:sage [04/08/21 00:44] >>157 実装次第。
159 名前:デフォルトの名無しさん mailto:sage [04/08/21 00:51] >>158 156のテクニックは必要な領域を減らすことができるの?
160 名前:デフォルトの名無しさん mailto:sage [04/08/21 01:19] もういいだろ!
161 名前:デフォルトの名無しさん mailto:sage [04/08/21 01:26] (gc!)
162 名前:デフォルトの名無しさん mailto:sage [04/08/21 01:35] 釣られすぎー
163 名前:デフォルトの名無しさん [04/08/21 03:09] xyzzy とかで lisp-interaction-mode だと 自動的にLispのインデントをしてくれますよね? でも、*.l を開いた後、自動インデントにならないのです *.l のときは、Lisp用のインデントをしてくれるように 設定したいのですが、方法をご存知の方いませんか? ググって調べたいのですが、何で調べたらよいのかも よくわからないのです。
164 名前:デフォルトの名無しさん mailto:sage [04/08/21 03:15] describe *auto-mode-alist*
165 名前:デフォルトの名無しさん mailto:sage [04/08/21 03:16] 妙に書き込みがあると思ったら… 95は>>63 を彷彿とさせるなぁ…
166 名前:デフォルトの名無しさん mailto:sage [04/08/21 04:02] >>165 そうか?95 はちゃんとした人だと思うが。 当初の勘違いのせいもあって、コミュニケーションがうまく 行かなかっただけじゃないのか?
167 名前:デフォルトの名無しさん mailto:sage [04/08/21 04:06] ところで、Lisp スレも現在 Part11 に至っているわけだが、 その間、スレの参加者は増えたのだろうか? URLのパラメータがUNIX時間なので、その差分を取ってみた。 (define x '(1091456033 1075630259 1069594582 1058263391 1042167213 1031560687 1023091882 1016211619 1008220265 1002584344 987169286)) (let loop ((x x)) (if (null? (cdr x)) '() (cons (/ (- (car x) (cadr x)) 86400.0) (loop (cdr x))))) 結論:全く傾向なし。いや、増減なしと見るべきか? Lisp 人口は生きた化石のごとく変わらないのであろうか?
168 名前:デフォルトの名無しさん mailto:sage [04/08/21 04:33] >>146 ワード?
169 名前:デフォルトの名無しさん mailto:sage [04/08/21 05:01] レベルは下がり続けているな。
170 名前:デフォルトの名無しさん mailto:sage [04/08/21 05:54] 未踏の lego 用 XS lisp って本当にいじってみた人いる? Google で「面白そう」って意見は結構見るんだけど おれは Lisp 入門者だけど実装側の勉強にもなるかな?
171 名前:80 mailto:sage [04/08/21 10:35] >>83 >>85 情報サンクス。 λ計算の理論から導出される公式として覚えておけば良いものみたいですね。 情報数学知らなかったので助かりました。
172 名前:デフォルトの名無しさん [04/08/21 19:06] >>164 サンクス
173 名前:デフォルトの名無しさん mailto:sage [04/08/21 22:33] 気付いたら>>95 のヴォケのおかげで無駄レスが・・
174 名前:デフォルトの名無しさん mailto:sage [04/08/23 02:51] 陸上の末続選手はちょっと Shiro さんに似てると思った
175 名前:デフォルトの名無しさん mailto:sage [04/08/23 14:55] >>174 ぜ、全然似てない…!!! images.google.co.jp/images?hl=ja&lr=&ie=UTF-8&c2coff=1&q=%E6%9C%AB%E7%B6%9A
176 名前:デフォルトの名無しさん mailto:sage [04/08/23 23:02] >>174 馬鹿だな、親戚だから似てて当たり前
177 名前:デフォルトの名無しさん mailto:sage [04/08/24 13:01] >>71 マクロを使ったプログラムの互換性を保障したいためでしょ。 デファクトなんだし、仕様に取り込んでもいいと思うのだが。 Schemeマクロを実装するよりも、ずっと手軽に実装できるしな。
178 名前:デフォルトの名無しさん mailto:sage [04/08/24 19:39] >>177 legacyマクロでプログラムの互換性を保障するのは難しいよ。 バッチコンパイルする処理系だと、マクロから呼んでる関数が マクロ展開時にはまだ無いってことがあり得る。 え、eval-whenですか? それはちょっと…
179 名前:デフォルトの名無しさん mailto:sage [04/08/24 21:11] eval-whenは必須でしょ
180 名前:デフォルトの名無しさん mailto:sage [04/08/24 21:38] そんなマクロはうちの子じゃありません
181 名前:デフォルトの名無しさん mailto:sage [04/08/24 22:28] eval-whenてなに?
182 名前:デフォルトの名無しさん mailto:sage [04/08/25 00:53] >>181 黒魔術。
183 名前:デフォルトの名無しさん mailto:sage [04/08/26 00:50] (expt float integer) としたとき,ちゃんと (* float float float ...) と等価になりますか? HyperSpac では (expt rational integer) のときしか書いてないような. 普段は (expt float1 float2) == (exp (* float2 (log float1))) だと書いてありますが, 2 乗や 3 乗のときは,これでは困りますよね. 不安なら整数用の expt を作る必要がありますか?
184 名前:デフォルトの名無しさん mailto:sage [04/08/26 01:32] >>183 >2 乗や 3 乗のときは,これでは困りますよね. なにが困るのか判らない。
185 名前:183 mailto:sage [04/08/26 23:37] >>184 2 回か 3 回の掛け算で済むことに,log や exp の計算 (級数などを使うのでしょうか?) をしてしまうのは不経済では,と思ったのです.
186 名前:デフォルトの名無しさん mailto:sage [04/08/27 00:02] それは「困る」とは違うよね
187 名前:デフォルトの名無しさん mailto:sage [04/08/27 06:26] >>183 処理系任せだろうね。真面目な処理系なら最適化してるんじゃない。 心配ならプロファイリングしてみれば。 というか、そんな細かいところを気にする前にベンチ取ってボトルネック 見つける方がいいと思うよ。
188 名前:183 mailto:sage [04/08/28 14:02] >>186-187 みなさんのお陰で考え方が分かりました.ありがというございました. (expt rational integer) の場合が記されているのは, 速度ではなく型の問題なんですね. > 心配ならプロファイリングしてみれば。 > というか、そんな細かいところを気にする前にベンチ取ってボトルネック > 見つける方がいいと思うよ。 そうですね.言われるまでこういうことには気づきませんでした.
189 名前:デフォルトの名無しさん [04/08/29 17:38] LISPって遅そうでめちゃんこ速いね
190 名前:44 mailto:sage [04/08/29 18:43] 数値 (float) が書かれたテキストを読んで, それとソース内のリテラルとで算術演算する場合は, リテラルの表記を *read-default-float-format* に合わせておくべき, というより合わせなくてはならないのでしょうか. もう頭が痛いです.ソース内のリテラルも *read-...-format* で読むと 不都合でもあるのでしょうか... clisp で long-float する人たちは, リテラル全ての箇所で coerce するなんて,そんな話はありませんよね?
191 名前:デフォルトの名無しさん mailto:sage [04/08/29 18:59] 必要なら全ソースを*read-default-float-format*で検索すれば そのうちわかるんでは? clispも企業に対して動作保障をしているわけではないし、 どの言語処理系も数値周りは手抜き工事していたり、 バグの温床だったりする可能性が高いので。
192 名前:デフォルトの名無しさん mailto:sage [04/08/29 19:27] >>190 最終的な目的がなんなのかによるだろ
193 名前:デフォルトの名無しさん mailto:sage [04/08/29 20:45] defineの挙動なんですが、top levelとそうでないときとで 動作が異なるってやつの実装がマンドクセえんですが 実際はどうやってんでしょう フラグ?
194 名前:44 mailto:sage [04/08/29 22:54] むむ,compile しないで実行すると warning が出ない. compile の過程で勝手に single-float にされているのかな? >>191 探してみましたが,.lisp と .d がソースの全てでいいんですか? grep の結果が思ったより少ないんですが... ところで .d って何なんでしょう? ソース/emacs/d-mode.el まであるのに何かは不明なんです. >>192 ちょっとファイルから読んで計算するだけです. single-float では桁が寂しい感じがしたので,せっかくだからと long にしただけなのに怒られた,というわけなんです.
195 名前:デフォルトの名無しさん mailto:sage [04/08/29 23:07] >>194 >ところで .d って何なんでしょう? >Most of the C code of CLISP is stored in files with extension '.d'. It _is_ >C code, but the file will be preprocessed a bit. cvs.sourceforge.net/viewcvs.py/clisp/clisp/src/CodingStyle?rev=1.10 ECL とかでも使われてたと思う。何のメリットがあるかは知らない。
196 名前:44 mailto:sage [04/08/30 01:30] 今まで eval-when を使ったことが無かったのですが, もしかしてと思い, (eval-when (compile load) (setf *read-default-float-format* 'double-float)) としたら,問題無くなりました.コンパイル時にも,その後の実行の時も double-float で読む,ということなんですね. 今までこんな便利なものも知らなくて問題を長期化させました.すみませんでした.
197 名前:デフォルトの名無しさん mailto:sage [04/08/30 19:45] >>193 環境を見ればトップレベルかどうかはわかるよね。 internal defineはマクロとの絡みがややこしい。 実装者泣かせかな。
198 名前:デフォルトの名無しさん mailto:sage [04/08/30 21:49] 内部defineはふつー実行前にletrecに変換するでしょ まともな処理系なら
199 名前:デフォルトの名無しさん mailto:sage [04/08/31 18:59] Dr.Schemeで「独習Scheme三週間」で紹介されてるすべての構文を使用するには どうすればいいの? ドットリストで構文エラー出るよ・・・
200 名前:デフォルトの名無しさん mailto:sage [04/08/31 21:42] >>199 ドットリストで構文エラー出るなんてありえねー そのコードさらしてみ
201 名前:デフォルトの名無しさん mailto:sage [04/08/31 22:00] >>199 Language → choose Language で Full Scheme
202 名前:デフォルトの名無しさん mailto:sage [04/09/01 01:57] 9月の言語はSchemeと決まっています.
203 名前:デフォルトの名無しさん mailto:sage [04/09/01 18:52] 8月の言語は何だったの?
204 名前:デフォルトの名無しさん mailto:sage [04/09/01 20:14] Augustだ。 略してAda。
205 名前:デフォルトの名無しさん mailto:sage [04/09/02 14:12] cl の loop が,*短ければ* 読みやすさも書きやすさも両立してて, すごくいいことを知りました. lisp らしくないからと拒んでいた自分が悲しいです. ; グレアム氏の入門書が偏っているせいかと w ところで,ファイルを丸々 string にする方法を探していたところ, make-string したところに read-sequence を 使って書き込んでいくやつを見つけました. でも,これしか無いんですか? get-output-string-stream の input-stream 版が無いのは残念ですね.
206 名前:デフォルトの名無しさん mailto:sage [04/09/02 20:22] そうこうしてるうちにOnLisp邦訳も更新されてたね。乙 後2章か、がんがれ
207 名前:デフォルトの名無しさん mailto:sage [04/09/02 21:38] www.itmedia.co.jp/mobile/articles/0409/02/news048.html
208 名前:デフォルトの名無しさん mailto:sage [04/09/02 22:44] >>207 なんだかなぁ... すべてが痛々しい
209 名前:デフォルトの名無しさん mailto:sage [04/09/02 23:53] >>205 骨格だけ。 with-outpt-to-string (out) (loop for line = (read-line stream) do (write-line line out) とか。eofをどうするか(whileにするかエラー捕まえるか)は好きにすれ。 loopはcollect intoとかfor acrossとかfinallyとか使い出すと妙に可読性が 上がるので結構多用してるカモ。Lispらしからぬ見た目になるけどね。
210 名前:デフォルトの名無しさん mailto:sage [04/09/03 00:04] 3年前はロン毛だったと記憶してるんだけど・・・これヅラだよね?普通に考えて。
211 名前:デフォルトの名無しさん mailto:sage [04/09/03 01:07] >>209 read-line は改行を消してしまうね. 「行の区切り」を指定できるスペシャル変数があればいいのに. ; awk みたいだ...
212 名前:デフォルトの名無しさん mailto:sage [04/09/03 01:30] 学生時代に授業でSchemeをちょこっとやったんですが、 最近CommonLispをいじってます。 で、CLのlambdaなんですが (lambda (x) (* x 2)) => error #'(lambda (x) (* x 2)) => anonymous closure これにすごい違和感があります。この「#'」はナニモノで 何故必要なんでしょう。
213 名前:デフォルトの名無しさん mailto:sage [04/09/03 02:00] >>212 このページが大変参考になる。 www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/comparison.html
214 名前:デフォルトの名無しさん mailto:sage [04/09/03 02:28] LISP-1か2の違い。
215 名前:デフォルトの名無しさん mailto:sage [04/09/03 04:24] 数ヵ月前に見た時もロン毛だったよ>ドクターT。
216 名前:デフォルトの名無しさん mailto:sage [04/09/03 13:12] cmuclで関数の実行時間をはかりたいのですが、何を使うのが適当でしょうか? 変数にとりたいのですが、timeマクロは出力してしまうから使えず、 get-internal-run-timeは秒単位らしくて粗すぎて使えず、です。
217 名前:デフォルトの名無しさん mailto:sage [04/09/03 14:43] >>216 (get-output-string-stream) で作ったストリームで *standard-output* を let で上書き,,,でできますか?
218 名前:デフォルトの名無しさん mailto:sage [04/09/03 15:44] cmucl でコンパイルすると,結果がおかしくなりました. (let ((alist '((:file . "foo.txt") (:bar)))) (with-open-file (istrm (cdr (assoc :file alist))) (rplacd (assoc :bar alist) 6)) (format t "~S~%" (assoc :bar alist)) (format t "~S~%" (car (assoc :bar alist))) (format t "~S~%" (cdr (assoc :bar alist)))) これは,clisp ではコンパイルしてもしなくても (:BAR . 6) :BAR 6 となりますし,cmucl でもコンパイルしなければ同じ結果になります.しかし, # lisp -eval '(compile-file "foo.lisp")' -eval '(quit)' ... # lisp -load foo.x86f -eval '(quit)' (:BAR . 6) :BAR NIL となります.cdr 部はどこへ行ってしまったのでしょうか.困ってしまいました... (⊃д`) バージョンは以下です (起動時のメッセージの一部). CMU Common Lisp CVS release-19a 19a-release-20040728 + minimal debian patches, running on
219 名前:218 mailto:sage [04/09/03 15:45] 追記.with-open-file を外せば直ります.
220 名前:デフォルトの名無しさん mailto:sage [04/09/03 19:44] >>218 リテラルリストを破壊的に変更しちゃいかんよ。
221 名前:218 mailto:sage [04/09/03 20:35] >>220 結果は処理系依存ということなんですか. 最初の alist を, (list (cons :file "foo.txt") (cons :bar nil)) に変更すればいいのでしょうか. こういうのを警告してもらう方法がありましたら教えてください.
222 名前:デフォルトの名無しさん mailto:sage [04/09/03 20:39] (rplacd (assoc :bar alist) 6)) ↓ (setf alist (cons (cons :bar 6) alist))
223 名前:218 mailto:sage [04/09/03 22:16] >>222 assoc で引かれることがないとしても,なんとなく違和感がありませんか? こういうのを普通に感じるて初めて中級者なのでしょうか.
224 名前:デフォルトの名無しさん mailto:sage [04/09/04 02:10] リテラルを書き換えちゃだめってのは別にLispに限らない、プログラミング言語 一般(とくにコンパイラが介在するもの)に言えることでしょう。 Cでも文字列リテラルには手は出せませんし。
225 名前:デフォルトの名無しさん mailto:sage [04/09/04 03:01] > Cでも文字列リテラルには手は出せませんし。 んなこたあない。 普通はしないけど。
226 名前:デフォルトの名無しさん mailto:sage [04/09/04 03:09] OS-9 の C言語処理系は literalが code module (だっけ?) に 置かれるので、書き換えちゃだめでした... 昔話かつ lispじゃないので sage
227 名前:デフォルトの名無しさん mailto:sage [04/09/04 08:18] >>225 > > Cでも文字列リテラルには手は出せませんし。 > んなこたあない。 いや、んなことあるよ。 リードオンリーなセグメントに置かれるので、変更しようとするとbus errorになる。 そうしないとリテラルはプロセス間で共用することも実行ファイルを直接バッ キングストアにしてmmapすることもできなくてメモリ利用上非効率。 よしんばそうでなくとも複数の同じ内容の文字列リテラルは一つにまとめられるので、 そういうものだと変更すれば当然悪影響が出る。
228 名前:デフォルトの名無しさん mailto:sage [04/09/04 13:43] 古き悪しきお行儀の悪いやつ用のコンパイルオプションも大抵用意されてはいるけどね
229 名前:デフォルトの名無しさん mailto:sage [04/09/04 23:18] 警告も何も出ない? セルにimmutableフラグとか付いてないのか。 tinyschemeだか何かの処理系はそういうフラグがあって、 破壊代入するとエラーか何か出た記憶がある。 LISPの場合大抵は複製するから、個人レベルでは対策しなくても あんま問題にはならないけど、時間置いて使うとたまにやってしまったりするな。 こういう場合の処方で処理系にセーフティレベル上げるとか何らかの モードがある場合もあるが、実際は目先の速度に気を取られて 気付かない&あえて無視する可能性が高いんだよな。 結局デバッガ立ち上げて原因がわかると。 cmuclレベルの処理系なら何らかのオプションがあると思う。
230 名前:デフォルトの名無しさん mailto:sage [04/09/05 17:46] InterLispって良く見るんですが、これはLisp方言の一種ですか? それともCL実装の名前ですが?
231 名前:デフォルトの名無しさん mailto:sage [04/09/05 17:52] foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?Interlisp
232 名前:デフォルトの名無しさん mailto:sage [04/09/05 22:03] >>217 折角教えていただいたのですが、出力文字列を解釈しなくちゃいけなくて大変そうで、 unix-gettimeofdayでusecをとってごまかしてしまいました。 プロセス時間じゃなくて実時間ですが。 経験値を上げてもうちょっと賢くなったらトライしてみます。
233 名前:デフォルトの名無しさん [04/09/05 22:49] WindowsでLISPでマルチメディアが扱える 処理系ってないのでしょうか
234 名前:デフォルトの名無しさん mailto:sage [04/09/05 23:48] マルチメディアってなんなんやー?
235 名前:デフォルトの名無しさん mailto:sage [04/09/06 00:37] メディアが複数同時に使えることでは?
236 名前:デフォルトの名無しさん mailto:sage [04/09/06 02:06] フロッピーとハードディスクのファイルを読み書きできるとかか。
237 名前:デフォルトの名無しさん mailto:sage [04/09/06 03:12] クイックディスクを忘れないで欲しい。
238 名前:デフォルトの名無しさん mailto:sage [04/09/06 06:22] えっと、lispacheの苫米地氏とオウム事件「逆洗脳」の苫米地氏って、 同じ人なんですか??
239 名前:デフォルトの名無しさん mailto:sage [04/09/06 10:34] >>234-238 おまえら、いい加減にしろw >>233 やっぱりACLじゃないの? なんでもできそうだけど。
240 名前:デフォルトの名無しさん mailto:sage [04/09/06 15:00] gauche用のsdlラッパというのが一番ありがちなパターンに見えるなあ
241 名前:デフォルトの名無しさん [04/09/06 15:39] >>233 LISPならxyzzy,SCHEMEならHandySchemeのMCI関数でどうよ?
242 名前:233 mailto:sage [04/09/06 22:15] ACLインストールしました HandyScheme は知りませんでした なんかゲームの挙動をLISPで書いて 細かい部分をCで書いて、みたいな ことを考えてるんですけど・・・ とするとgauche の sdlラッパというのがよさげですね 有難うございました
243 名前:デフォルトの名無しさん mailto:sage [04/09/06 23:52] >>238 t >>233 =242 Corman Common Lispも見てみれば? IDE使わなきゃ無料だしWindows APIと 仲良くするのも結構得意だというのを聞いた希ガス。実体験ではないので本当のトコロが どんなもんか知らんけど。 マニュアル眺めた限りではDLL作ったりとかインラインアセンブラ使ったりとかWindowsが 主環境であればそれなりに使えそうだったよ。SDLも誰かライブラリ作ってたはずだし。
244 名前:233 mailto:sage [04/09/07 00:48] >>243 有難うございます いつも不思議に思うのですが 私も結構Lisp関連のサイトをこまめに 調べてはいるのですがそういう情報にたどり着けない・・・ どこでそういう情報を得るのですか? 英語圏を調べろってことですかね・・・欝
245 名前:デフォルトの名無しさん mailto:sage [04/09/07 07:22] Cormanは日本語が通らないのが難点。ゲームとか作るんなら要らないかも知れないが。 それとも今は通るようになったのかな?
246 名前:243 mailto:sage [04/09/07 21:19] どこでって普通にググるとかcomp.lang.lisp読むとか。 英語圏避けてたらLisp関連サイト調べてないのとほぼ等価と思われ。 ってか折角ただでいろんな情報転がってるのに自分で枠狭めてちゃもったいない。 RCE関連サイトにはロシア語圏にディープなのが多いね。
247 名前:デフォルトの名無しさん mailto:sage [04/09/07 22:41] Arcの話題ってこことは違う?
248 名前:デフォルトの名無しさん mailto:sage [04/09/08 00:46] ここでいいんじゃないの。何か進展あった?
249 名前:デフォルトの名無しさん mailto:sage [04/09/08 02:20] slime 1.0 ttp://common-lisp.net/project/slime/
250 名前:デフォルトの名無しさん [04/09/08 05:53] gaucheってそもそも Windows に正式対応してたっけ? Windows 2000 + cygwin でなんとかコンパイルできる段階みだいだけど、 ちゃんと使えてる人いる?
251 名前:デフォルトの名無しさん mailto:sage [04/09/08 09:17] XP + Cygwin でとりあえず gosh が起動しますが それ以上の確認はしてないっす
252 名前:デフォルトの名無しさん [04/09/08 10:19] 普通に使える GLも使える 問題なし