1 名前:デフォルトの名無しさん mailto:sage [2006/06/23(金) 10:22:53 ] 過去スレ Part14: pc8.2ch.net/test/read.cgi/tech/1132275726/ Part13: pc8.2ch.net/test/read.cgi/tech/1115901841/ Part12: pc8.2ch.net/test/read.cgi/tech/1100229366/ Part11: pc5.2ch.net/test/read.cgi/tech/1091456033/ Part10: pc5.2ch.net/test/read.cgi/tech/1075630259/ Part9: pc2.2ch.net/test/read.cgi/tech/1069594582/ Part8: pc5.2ch.net/tech/kako/1058/10582/1058263391.html Part7: pc5.2ch.net/tech/kako/1042/10421/1042167213.html Part6: pc3.2ch.net/tech/kako/1031/10315/1031560687.html Part5: pc3.2ch.net/tech/kako/1023/10230/1023091882.html Part4: pc.2ch.net/tech/kako/1016/10162/1016211619.html Part3: pc.2ch.net/tech/kako/1008/10082/1008220265.html Part2: pc.2ch.net/tech/kako/1002/10025/1002584344.html Part1: piza2.2ch.net/tech/kako/987/987169286.html
263 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 19:10:09 ] ではSchemeでコーヒーをいれてくれ
264 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 19:10:14 ] >>261 ほとんどライブラリだから興味あるとこだけ読めばいいんじゃね? 異論もあるだろうが、個人的にはやっと一人前の言語仕様書になったという気がするよ。w これでSRFIのお世話にならないで済むようになるのかな。
265 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 19:10:50 ] >>263 Java VMを作れという意味か?w
266 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 19:21:35 ] RFCにコーヒー淹れるプロトコルあったな
267 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 00:47:37 ] 流れ豚ギルケド、MLISP(Meta-Lisp) なんて方言があるのね。 Algol 風の文法らしいけど、誰か使った事ある?
268 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 00:50:50 ] >>267 M式だな。昔、中西先生が実装した奴を使った。 昔はエディタなどの入力支援が貧弱だったから、括弧が減るのは有り難かったのかも しれないが、S式に慣れてしまうと要らないかなという気もする。 入門者向けには面白いかもしれないね。
269 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 01:08:10 ] >>267 sumim.no-ip.com:8080/wiki/435 余談。 竹内郁雄『初めての人のためのLISP』では、M式は一応ちゃんと説明されていたけど、 そのあとすぐ、だけどS式だって十分読み書きしやすいんだから、こんなの要らないし、 この本でももう使わない、と切って捨てていた。 さすがは竹内先生。
270 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 08:06:59 ] >>268-269 元はM式から来ているみたいですが、M式とはちょっと違うみたいです。 ftp://reports.stanford.edu/pub/cstr/reports/cs/tr/68/92/CS-TR-68-92.pdf hopl.murdoch.edu.au/showlanguage.prx?exp=517
271 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 11:36:07 ] >>269 これマクロはLispと似たような感覚でできるの?
272 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 22:39:56 ] define-syntaxとsyntax-caseの間のlambdaいらなくね?
273 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 01:58:21 ] lambda を書かなくて済むマクロを定義すればよくね?
274 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 20:46:49 ] 頭悪くてdefine-syntaxを定義できねえ define-macroのが良くね?
275 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 03:25:24 ] >>272-273 あ っ そ
276 名前:269 mailto:sage [2006/09/22(金) 11:03:14 ] >>271 すまん、見落としていた。 結論から言うと、知りませんごめんなさい。 憶測を述べると、多分出来ないと思う。 「初めての人のためのLISP」を見直してみると、P201-P203にM式の説明が載っ ているんだけど、この記法ではS式をデータ、M式をロジックとして用いると書 かれてる(S式は無条件でquoteされている扱いに)。 LISPのマクロはコードとデータの区別がないがゆえに成立するものだから、M 式ではマクロは書けないんじゃないかな。
277 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 13:56:08 ] そこで、Dylan ならマクロも OO もオプショナルな型指定も出来るなあと いつも思うんだけど、何故か食指が動かん。今なら OpenDylan が使える んだが。
278 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 19:35:38 ] 名前が気持ち悪い>dylan
279 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 19:40:56 ] dylanってボブ?
280 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 15:50:49 ] Rubyist のための他言語探訪 【第 6 回】 Dylan 著者:まつもとゆきひろ jp.rubyist.net/magazine/?0013-Legwork > 人名の方の由来は Bob Dylan ではなく、Dylan Thomas (英国の詩人 1913-1953) > なのだそうです。 もっとも、Bob Dylanの方も、ディランという名は詩人のDylan Thomas から 取っているので、どれも元ネタはこの詩人。
281 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 16:04:25 ] だ か ら なに?
282 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 18:22:26 ] 279=281だったら苦笑
283 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 19:23:31 ] Rubyist のための他言語探訪 俺は、この題名のほうに苦笑
284 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 22:13:33 ] >>279 DYnamic LANguage
285 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 02:40:08 ] eval-whenを使って、コンパイル時にテーブルを作っておいて実行時にはそれを引く ということをしたいのですが、どう書けばいいでしょうか。 例えばelispで (defun foo (x) (assq x (eval-when-compile (mapcar #'cons '(a b c) '(1 2 3)))) とすれば、コンパイルすると定数のテーブルになってくれますが、 Common Lispのeval-whenを使ってコンパイル時に計算するにはどう書けばいいんでしょ。
286 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 09:16:41 ] これじゃだめかな (defun foo (x) (assq x #.(mapcar #'cons '(a b c) '(1 2 3))))
287 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 11:10:28 ] ChezSchemeの高速性のひみつ www.kmonos.net/wlog/65.html#_1433060921 なかなか面白かったんで貼ります。
288 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 11:58:59 ] >>286 ありがとうございます。#.の前に'がいるみたいですが、使えました。 ところで (eval-when (:compile-toplevel) (defun bar () (list 1 2 3))) (defun foo (x) (assq x '#.(mapcar #'cons '(a b c) (bar)))) みたいに#.の中でbarが使えるようなのですが、これは保証されているのでしょうか? #.による置換はコンパイラの前のリーダでの処理だと思うので、 ちょっと変な感じもするんですが。
289 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 23:15:08 ] book.mycom.co.jp/book/4-8399-2081-8/4-8399-2081-8.shtml 入門Common Lisp〜関数型4つの特徴とλ計算
290 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 08:30:20 ] >>289 >>231
291 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 10:15:28 ] 一日一門のスレにも書いてるし宣伝なんじゃない?
292 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 11:49:09 ] >>288 S 式一つずつ read -> compile を繰り返してるんだと思うと変でもないような。 でも保証されているかといわれると、どうなんだろう
293 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 12:32:00 ] コンパイル時に評価してほしいならマクロにすれば? (defmacro eval-when-compile (&body body) (list 'quote (eval (cons 'progn body))))
294 名前:デフォルトの名無しさん mailto:sage [2006/10/02(月) 06:33:32 ] >>293 標準で既にそういう手段が用意されているんじゃないかと思ったんですよ。 自分でマクロを用意しないとだめですかね。 (私も似たようなのを書きました。式を一つだけとり、compile-time-valueと) >>292 保証されているような気がしてきました。というのも、 (in-package "HOGE") も以後のリーダの動作に影響しないといけないから。
295 名前:デフォルトの名無しさん mailto:sage [2006/10/03(火) 17:18:57 ] clisp 2.40 age
296 名前:デフォルトの名無しさん mailto:sage [2006/10/05(木) 10:58:50 ] Rubyの生産性の高さはどこまで本当か? d.hatena.ne.jp/fromdusktildawn/20061002/1159784863 はてなブックマークの人気記事だが、最終段にいきなりCLOSの熱烈な礼賛が現 れて驚いた。「追記:理想と現実」の部分。 何かそこだけ読むと、以下へのリンクだけあれば済むような気もするが。 技術野郎の復讐---全ての言語はLispに向かう? practical-scheme.net/trans/icad-j.html
297 名前:デフォルトの名無しさん mailto:sage [2006/10/05(木) 12:16:09 ] PythonやRubyに備わってるような現代風のライブラリをCommon Lispでも標準化して くれれば、もっと仕事でCommon Lisp使えるんだけどなぁ。 ライブラリに釣られてPythonとか使っちゃうことが多い今日この頃です。w
298 名前:デフォルトの名無しさん mailto:sage [2006/10/05(木) 13:35:15 ] 現実的には、ライブラリは超重要だよな。
299 名前:デフォルトの名無しさん mailto:sage [2006/10/05(木) 14:19:08 ] (in-package :2ch-user-lib)
300 名前:デフォルトの名無しさん mailto:sage [2006/10/05(木) 14:59:07 ] >>297 お前は俺か。
301 名前:デフォルトの名無しさん mailto:sage [2006/10/05(木) 17:51:26 ] Norvigだって似たようなこと言ってるぜ。はっ、もしかしてお主はNorvig?
302 名前:デフォルトの名無しさん mailto:sage [2006/10/05(木) 23:14:54 ] >>297 自分ライブラリでいいじゃん。
303 名前:デフォルトの名無しさん mailto:sage [2006/10/05(木) 23:57:39 ] だめだ
304 名前:デフォルトの名無しさん mailto:sage [2006/10/06(金) 00:04:45 ] >>302 ライブラリ作るほうが面白くなってきて仕事が進まないのが難点
305 名前:デフォルトの名無しさん mailto:sage [2006/10/06(金) 07:40:34 ] 仕事は誰かにやらせようぜ
306 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 03:35:55 ] リファレンスカウントを採用しているCommon Lisp処理系ってあるんですか? 循環参照を解決するために他のGCも併用しなきゃいけないっていうのはわかってるんですが、基本的に使い終わったらすぐ開放されるっていう安心感がほしいんです。 Lispはメモリ馬鹿喰い&ガベコレで時間喰いまくりというイメージがあるので。
307 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 04:50:18 ] いつの時代の話やねん
308 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 07:22:15 ] 使い終るたびに解放してたら遅くなるよ。
309 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 12:38:01 ] >>297 禿同。まずは文字列処理周辺のライブラリかな。
310 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 13:16:03 ] >>306 リファレンスカウントだとカウンタ操作が頻繁におこるのがねぇ。ヒマなとき だろうがタイトループだろうが問答無用なうえ、カウンタ操作ミスると…… 使い終わったらすぐ解放してほしいなら dynamic-extent があるよ。スタック 上にリストや配列を確保できるので、スコープ抜けた瞬間に GC のコストゼロ で消える。それ以外ならリファレンスカウントよりも Generational GC のほう が一般的に良いと思うけどねー。 まぁリファレンスカウントのほうが向いてるケースもあるので、どうしても、 というならあらかじめまとめてメモリを確保して俺リファレンスカウントでも いいんじゃね。
311 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 13:27:18 ] >>306 Lispのように小さいオブジェクトをいっぱい操作すると、リファレンスカウント法って ものすごーーーーーく重いと思うよ。 あと、デストラクタのような概念が無いから解放されなくてもデメリットがあまり無いし。
312 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 13:36:18 ] dynamic-extent イイ!!! 最近だと CMUCL や SBCL とかのフリーのコンパイラ でも一部実装されてんでしょ?良い時代になったもんだ。
313 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 18:26:00 ] cl-cookbook.sourceforge.net/strings.html
314 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 23:52:06 ] 教授に、とある学生の卒研のお手伝いを任された。 あるグラフを別のグラフへマッピングし直すような課題。昨日のお話: 後輩: 「先輩、先輩はソフトを Lisp で書いてるって聞いたんですけど。 この研究には向いてるって言ってましたよね。 私の卒研では Lisp でないとダメなんですか?全く知らないんですけど。」 と、悲しそうな顔。。 私: 「あ、いや、とりあえず私のソフトで最初のグラフデータを 出力するところまでやればいいよ。その後はそれを取り込んで、 C でもなんでも好きな言語で料理すればいいよ。」 後輩: 「助かりました。Lisp なんて習った事無いんです。名前は聞いた事は有りますけど。」 私: 「え?私は違うけど、君は純粋に情報系の学生でしょ? 学部の授業に有るでしょ。 Common Lisp とか、Scheme とか、あ〜。そうか。 Haskell とか、ML とかをやったのかな?」 後輩: 「あ、その、Scheme はやりました。でも、Lisp はやった事無かったんです。」
315 名前:デフォルトの名無しさん mailto:sage [2006/10/07(土) 23:57:41 ] ワッフルワッフル
316 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 01:05:03 ] ハスケルハスケル
317 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 02:14:04 ] ハスケルってトップダウンって感じだよね 仕様変更にものすごく弱い
318 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 03:30:27 ] 本物のHaskellプログラマは仕様変更しないから
319 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 09:53:08 ] 本物のプログラマはHaskellを使わない
320 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 10:21:30 ] あらゆる仕様変更にリスクが伴う。 だが昨日を守ること、すなわち仕様変更を行わないことのほうが 明日を作ることよりもリスクを伴う。
321 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 17:22:10 ] >>320 ダブルミーニングっつーか掛け言葉的にカッコいい言い回しをしたつもりなんだろうけど 全然意味分からん。
322 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 17:24:13 ] 要するに「仕事は大変だ」って言ってるだけだからな。
323 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 17:45:41 ] プログラマはつらいよ
324 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 18:24:27 ] >>323 やべぇ、渥美清が「さくらタンハァハァ」とか言ってるイメージが。
325 名前:デフォルトの名無しさん mailto:sage [2006/10/09(月) 19:28:14 ] >>324 いいじゃねえか。 役柄上はキングオブ童貞だぜ。
326 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 17:50:32 ] *** - OPEN: file #P"C:\\home\\onjo\\lisp\\lib\\common\\cffi\\src\\utils.lisp" does not exist
327 名前:デフォルトの名無しさん [2006/10/13(金) 19:32:53 ] 下がりすぎて見つけづらいage
328 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 02:37:33 ] >>326 どうした?メッセージのとおりファイルがないんだろ?
329 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 02:49:45 ] CFFI って使ったことネェ。UFFI とくらべてどうなの? >>326
330 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 16:08:37 ] >>326 なつかしー 前に俺もなったw LispUser.netの中の人しっかりしろよってwwww
331 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 02:05:44 ] ワラタ、謎のhomeディレクトリができてると思ったらLispUser.netの人のだったのか、 lambda.s55.xr"ae".com/ といいおっちょこちょいだな、そこがまた良いがw
332 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 04:01:11 ] clispとかsbclとかで、式をステップ実行する方法はないでしょうか? Emacsのedebugみたいなやつ。
333 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 04:39:46 ] >>332 step じゃ駄目? www.lispworks.com/documentation/HyperSpec/Body/m_step.htm
334 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 06:39:51 ] こういうのがあるんですね。ありがとうございます。 何でも決まってるという感じだなあ。 関数の一部をステップ実行したいときは監視したいところを stepで囲んでdefunして適当な式をevalするという感じでしょうか? SLIMEだとstepの部分でデバッガに入ったらsを押すとステップが進みますね。 その中のどの部分を評価しようとしてるかも表示されて(もうちょっと 見易い方がいいけど)なかなかよさそう。
335 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 19:21:10 ] >>332 去年だったっけ? Google Summer of Codeでslime用のedebugみたいなstepperを実装するっていうのやってたけど、いつのまにかそんな話は無かったことになってるみたい。
336 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 15:33:21 ] 人の属性を表すマクロhogeを作るとき、 引数の並びは次のどちらが一般的なんですか? (setf (hoge 'Hiroyuki :sex) :male) (setf (hoge :sex 'Hiroyuki) :male)
337 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 17:04:21 ] 後者かしら
338 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 17:15:03 ] いやもしかしたら前者かも試練
339 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 19:08:03 ] >>337-338 結局、好みってこった。
340 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 04:05:03 ] (`・ω・´)今日からおまんこ再開です!
341 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 09:59:55 ] やっと週末♪ルンルン
342 名前:デフォルトの名無しさん [2006/10/20(金) 22:03:20 ] 週末はコーディング天国です。
343 名前:デフォルトの名無しさん mailto:sage [2006/10/21(土) 02:42:52 ] 佐賀はローディング煉獄です。
344 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 00:49:44 ] ?????何故に佐賀?
345 名前:デフォルトの名無しさん mailto:sage [2006/10/22(日) 01:14:30 ] >>344 www.pheedo.jp/click.phdo?i=f461d24f94d1f0cbcb62afde81c38891
346 名前:デフォルトの名無しさん [2006/10/25(水) 00:07:56 ] 何も無ければ来月末、遂に SBCL 1.0.0 が出るみたいね。
347 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 06:24:22 ] Schemeの関数呼び出しの評価順序についてですが、R5RSの > _Note:_ Although the order of evaluation is otherwise > unspecified, the effect of any concurrent evaluation of the > operator and operand expressions is constrained to be > consistent with some sequential order of evaluation. The > order of evaluation may be chosen differently for each > procedure call. というのがいまいちよくわかりません。特に最後の文ですがこれは、 あるときは (a b c) が a→b→c の順で評価され またあるときは (d e f) が f→e→d の順で評価され しかしてあるときは (g h i) が g→i→h の順で評価され ても構わないってこと?
348 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 07:10:34 ] operatorとoperandsで見たらoperatorの評価が先じゃないといけないけど、operandsの評価はoperatorの評価に基づくprocedure呼び出しが何かに依存する(でも同じprocecureに対しては常に同じ順序である必要あり)って感じじゃまいか?
349 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 07:57:48 ] >>347-348 その引用文で言ってるのは「評価順序は決まってないし、実行するたび順序が 変わるかもしれないけれど、ちゃんと逐次評価される」ってことでしょ。 つまり (a b c) で a b c が同時に評価されたりしないってこと。
350 名前:347 mailto:sage [2006/10/25(水) 08:05:41 ] ありがとうございます。つまり、評価はシリアライズされないといけない (それぞれパラに評価してはいけない)が、その順序は好きにしていいよと いうことですか。例えば ((begin (X) (Y) (lambda (a) a)) (begin (S) (T))) という式を評価すると 関数X,Y,S,Tが評価される順序は必ず X→Y→S→T または S→T→X→Y のどちらかになると。
351 名前:デフォルトの名無しさん mailto:sage [2006/10/28(土) 09:48:25 ] 計算機プログラムの構造と解釈 難しすぎる。 これ、問題全部といた人いますか? 質問しても良いです?
352 名前:デフォルトの名無しさん mailto:sage [2006/10/28(土) 10:49:17 ] >>351 とりあえず>>4 に目を通してからのがいいんだぜ
353 名前:デフォルトの名無しさん mailto:sage [2006/10/28(土) 11:24:07 ] pc8.2ch.net/test/read.cgi/tech/1107345738/
354 名前:デフォルトの名無しさん mailto:sage [2006/10/29(日) 04:42:37 ] しくぷ? しっくぴー?
355 名前:デフォルトの名無しさん mailto:sage [2006/10/29(日) 05:30:02 ] シック( ´,_ゝ`)プ
356 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 03:10:38 ] 阿呆っぽい質問で申し訳ないんだが、 LispやSchemeってどういう用途で使われるんだ?
357 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 03:14:04 ] 汎用
358 名前:デフォルトの名無しさん [2006/10/30(月) 12:50:12 ] 俺は低レベルな操作以外はほとんどSchemeでやってる
359 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 12:54:13 ] 俺は低レベルだからほとんどLispで済ませてる
360 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 18:27:33 ] 自分で実装できないくらい難しい言語はわからないから括弧の世話になってる
361 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 22:36:45 ] >>360 不覚にもワロタ
362 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 00:23:15 ] 確かにLispは(暇さえあればすぐに)自分で実装できそうな透明感が魅力だよな
363 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 05:44:09 ] お勧めの処理系は?