1 名前:デフォルトの名無しさん mailto:sage [2011/10/09(日) 17:58:58.06 ] Common Lisp、SchemeをはじめとするLisp族全般のスレです ■前スレ Lisp Scheme Part32 hibari.2ch.net/test/read.cgi/tech/1303299696/ ■テンプレ wiki.fdiary.net/lisp/ ■関連スレ 【入門】Common Lisp その8【質問よろず】 hibari.2ch.net/test/read.cgi/tech/1309940115/
598 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 19:15:47.95 ] よっぽど複雑なPython処理系って具体的に何よ。
599 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 20:00:19.76 ] >>598 その解釈はこちらの意図と違う。「よっぽど複雑な」が掛かるのはPython。 Pythonで実装してるPythonが知りたいなら、例えば名前がエロいPyPyがそう。 PyPyとかPychinkoとかPython使いエロ過ぎ。 Lisperももっとエロくなる必要があると思う。pgのeroとかじゃエロさが足りねーよ。
600 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 20:21:19.81 ] 今、man perlして気づいたんだけど、man perl*の充実ぶりってすごいなあ。 日本ローカルだけでman lisp*って充実しないか。manで引けるって便利だよなあ。 ドキュメントの置き方的に問題があるのかもしれないけど。 Overview perl Perl overview (this section) perlintro Perl introduction for beginners perltoc Perl documentation table of contents Tutorials perlreftut Perl references short introduction perldsc Perl data structures intro perllol Perl data structures: arrays of arrays perlrequick Perl regular expressions quick start perlretut Perl regular expressions tutorial perlboot Perl OO tutorial for beginners perltoot Perl OO tutorial, part 1 perltooc Perl OO tutorial, part 2 perlbot Perl OO tricks and examples
601 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 20:21:44.31 ] 600ぺりか
602 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 20:23:45.48 ] おらの600ぺりかがあ・・・・
603 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:04:57.56 ] >>599 ooopyもあるんだぜ。そりゃホルスタインは男の夢だが
604 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:05:57.51 ] 質問です。 '((A B C D) (E F G H) ...) -> '(A B C D E F G H ...) の加工を行いたいのですが、関数をどのように組めばいいですか?
605 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:06:24.57 ] >>604 appendか?
606 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:14:51.32 ] >>604 Common LispかSchemeかは知らないが、appendをapplyすればおk。 ただし、関数の引数の最大数の制限に掛かるから、巨大なリストには他の方法を使うこと。 www.aiai.ed.ac.uk/~jeff/lisp/cl-pitfalls から引用すると、 (reduce #'append list-of-lists :from-end t) (mapcan #'copy-list list-of-lists) とか。Schemeならfold系の手続きを使えばreduceと同じことができる。
607 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:16:22.30 ] っと。肝心なapplyの例載せ忘れたよ。 (apply #'append '((0 1 2) (3 4 5))) ;=> (0 1 2 3 4 5)
608 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:23:30.49 ] とりあえず、LispでエロいっていうとS式を受ける引数によく使われるsexpは外せない。
609 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 22:30:15.72 ] >>608 cofee-p のあれからいくと...
610 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 23:36:00.24 ] mapappendていう関数があったような なかったような
611 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 23:39:39.27 ] あー、中でapplyしてんのか 失格だ (define (mapappend func . args) (if (memv '() args) '() (append (apply func (map car args)) (apply mapappend func (map cdr args)))))
612 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 23:54:23.19 ] sexp と書くのはためらわれるので、自分で書くときは sxp と書いている。
613 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 23:58:17.69 ] >>609 nil って答えられると困るじゃないか
614 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 00:25:28.38 ] >>609 同性どうしならヤダな。
615 名前:デフォルトの名無しさん [2011/12/26(月) 00:45:26.84 ] PyPi PyPy Pychinko Pypants
616 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 00:57:03.26 ] おいおい。パンツまであるとかレベルたけーな。
617 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 02:38:10.37 ] pypanもあるぞ
618 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 03:04:44.40 ] 行列計算ぐらい統一してほしい (list 'matrix 数値) とか (vector (vector 数値)) とか (vector 数値) とか というか計算が一番速いのはどれ?
619 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 04:27:35.55 ] racketに (define (apply-values proc args-expr) (call-with-values (lambda () args-expr) proc)) なんてのあるけど、どうせならsrfiかなんかに登録されてほしい。
620 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 10:49:07.18 ] >>618 Common LispやSchemeで行列演算とかしたことないけど、 本気で性能を気にするなら、disassembleして生成されるインストラクションを見た方が良い。 リストはインデックスアクセスの計算量的に不利だから、あんま使われんだろうとは思う。 ベクタのベクタと単一のベクタは生成時のコスト以外あんま変わらん気がするけど、 処理系によってベクタの実装に差があると思うから、その処理系で実際試してみないと何とも。 処理系のコード読んでみるのも良いかもしれない。ベクタへのアクセサとかの。
621 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 16:35:21.51 ] CommonLispなら組み込みでarrayがあるのにわざわざリストやベクタのベクタ使う意味は? arrayで型宣言して(speed 3)(safety 0)すればそれなりのコードは出るよ。 Schemeはsrfi-25があるけど、速度はわからん。
622 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 16:40:12.33 ] 標準で行列演算ならarrayを使うほうが適切だわな。
623 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 16:57:14.78 ] キーワードじゃなくて素のシンボル使ってるから多分Schemeっしょ。 Racketはサポートしてるけど、リファレンス実装ぽいなー。 Gaucheはgauche.arrayでSRFI-25とAPIは揃えつつ独自の実装してるっぽいね。
624 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 17:06:03.87 ] ところでgauche使いってここに何人いるの?
625 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 17:07:07.75 ] gauche以外に何があるんだよ…
626 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 17:28:08.07 ] 凄い脳味噌
627 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 19:35:05.74 ] >>605- ありがとうございます。 助かりました。
628 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 21:12:24.95 ] common lisp(CCL)とgaucheでcdかdが見つかったら続く非空白文字につなげたいのですが (直後に改行が来ていたら次の行の非空白文字につなぎます) どういう処理ですればいいのでしょうか。dは一つだけ来て二つ以上は続きません。 a1a2cd b1b2b3 c1c2c3 d1d23d e1e2e3 f1f2f3 a1a2 cdb1b2b3 ; cd b -> cdb c1c2c3 d1d23 ; 行末のd -> 次の行へ de1e2e3 f1f2f3 ; ->行頭にdを追加 ファイルから一文字ずつ読み込んでcdとdが来たら非空白文字まで出力を控え、 非空白が来たときにそれとともに出力という原始的な方法を考えたのですが もっと効率のよい手法はあるでしょうか
629 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 21:25:38.35 ] www.suri.cs.okayama-u.ac.jp/servlets2/scm2cpp.rkt Schme to readable C++ に型推論を導入 まだ未完成だけど時間切れになってしまったのでやもえず公開
630 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 23:06:07.79 ] >>628 > もっと効率のよい手法はあるでしょうか 具体的に何の効率なの? 実効速度の事なら、よっぽどまずいコーディングしない限り、 速くなったり遅くなったりする要素は殆どないけれども。
631 名前:628 mailto:sage [2011/12/26(月) 23:22:59.43 ] >>630 そうなのですか わかりました
632 名前:はちみつ餃子 ◆8X2XSCHEME mailto:sage [2011/12/26(月) 23:28:53.00 ] Gauche ならその手のスクリプトでありがちなテキスト処理用の機能が多数用意されてるからよほど速度とかメモリとかにこだわるのでなければ正規表現でマッチさせて置換えでいいんじゃないかな。 (display (regexp-replace-all #/(c?d)([ \n])/ "a1a2cd b1b2b3 c1c2c3 d1d23d e1e2e3 f1f2f3" (^[m]#`",(m 2),(m 1)")))
633 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 23:40:59.31 ] cl-lexでもいけそうだけど、本人案でいいでしょ。
634 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 23:56:04.87 ] またお願いします。 define-syntaxを使って (map proc list) -> (proc (x list)) のように変換したいです。 簡単に言えば、リストにmapを内在させて見てくれを良くしようと思ったのです。 e.g.) (define plusone (lambda (x) (+ 1 x))) ;;;通常なら (map plusone '(1 2 3)) ;;;=>'(2 3 4) ;;;やりたい (plusone (まくろ '(1 2 3))) ;;;=>'(1 2 3)
635 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 00:05:34.41 ] 最後の'(1 2 3)は誤記です
636 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 00:08:32.94 ] call/ccでも使えば
637 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 00:28:53.24 ] >>636 使いましたがリスト先頭のみ処理されました。
638 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 00:33:43.11 ] >>632-633 ありがとうございます。
639 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 00:53:13.56 ] ≡≡≡≡ 癶( 癶;:゚;益;゚;)癶 カサカサカサ
640 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 01:55:16.48 ] AmazonのプログラミングGauche売れとるな
641 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 17:28:00.78 ] プログラミングgaucheの中に出てくるjames clark's notationについて どこかに詳しい説明はありませんか search.cpan.org/~rbs/XML-Filter-Essex-0.01/lib/XML/Essex/Model.pm を見るとどうもjames clark's notationは別物のように思えるのですが
642 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 17:45:55.73 ] その本は読んでないが、 www.jclark.com/xml/xmlns.htm では足りないのかい?
643 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 17:49:55.17 ] 俺の記憶にあるのは、 ttp://jp.rubyist.net/magazine/?0012-qwikWeb#l14 これだけだな。 確か高林氏が最初に「わびさび方式」を紹介した時に、氏のコードが生成してるスタイルについて そのように呼んでた記憶があるんだが、氏の勘違いじゃなかろうかと俺は思っている。 字下げ付けないでべたっと生成してるぶんにはさほどでもないが、字下げを付けようとしたら 割と変態っぽくなった記憶がある(まぁPPなんて複雑になりたがるもんだけど)。
644 名前:641 mailto:sage [2011/12/27(火) 22:48:00.53 ] なるほどわかりました
645 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 00:16:15.10 ] 「プログラミング不器用な」 が売れてるのか。
646 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 14:29:47.83 ] www.cl.cam.ac.uk/teaching/1011/ConceptsPL/ これのlispのスライドにreflectionとあるのですが >Fully reflective languages are still just research prototypes >(e.g. Maude), but limited forms of reflection appear in >several languages (e.g. LISP, Prolog, Python) これはどういうことなのでしょうか?
647 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 13:06:33.10 ] なんぞ [腐lisp]腐女子のためのlisp入門 #0 - Oh! Can Not Diary piro.hatenablog.com/entry/2011/12/28/232146
648 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 13:20:58.48 ] あのpiro氏とは無関係か。 腐はともかくとして、今時elispってのはこれまた微妙な。
649 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 14:50:37.28 ] 学生プログラマ日本一決定戦(予選は社会人も参加可) ttp://codevs.jp/howto.html 現在予選開催中 応募締切 2012.1.6 12:00 おもしろいことやっているじゃん。誰か今から参加しろよ。
650 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 15:06:15.26 ] >>649 社会人でも予選は参加可能らしいしやってみれば? 時間制限あるしsbclとか使えば多少有利かもね
651 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 17:33:07.12 ] つまらんわ
652 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 17:37:36.79 ] ほうしゃのうを除去するプログラム作ってくれ 「ほうしゃのうを除去するプログラム作ってくれ」 ↓ 「を除去するプログラム作ってくれ」
653 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 11:42:28.01 ] R7RSのドラフト読んでみたけど、R6RSは本気で黒歴史にする方向みたいだな。
654 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 12:07:30.67 ] >>653 >R6RSは本気で黒歴史にする方向 詳しく聞きたい
655 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 16:35:22.18 ] 互換性切って捨てられるとかpython3みたいだな。
656 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 16:59:16.85 ] rubyよりまし
657 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 18:50:38.47 ] Perl6は赦された
658 名前:デフォルトの名無しさん mailto:sage [2011/12/30(金) 23:54:15.03 ] R6RSとかいらないし
659 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 01:08:33.13 ] Windows2000と7に挟まれたVista扱いですか…
660 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 01:16:29.67 ] 7も正直微妙なんだけど8で大コケの予感 UIいじるのは完全に死亡フラグ
661 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 01:18:26.33 ] 単なるマーケティングの問題と一緒にすんな
662 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 02:43:46.81 ] racketに慣れきってしまったので6を黒歴史にされると困る
663 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 02:55:14.14 ] RacketはもうArcよろしく我が道を往くことになってるから安心しろ。 あれはLispではあるけど、もうSchemeじゃない。RnRSをサポートしてても。
664 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 12:10:07.16 ] iphoneでもluaはちゃんと動く lua上で動くschemeがあるので iphoneでも無料でscheme動かすことできる
665 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 12:44:02.99 ] de?
666 名前:デフォルトの名無しさん [2011/12/31(土) 13:06:19.87 ] >>663 だとすると、結局のところschemeのエッセンスって何なの?
667 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 13:21:55.67 ] >>666 実装して楽しいことじゃね?
668 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 13:48:45.98 ] 誰かアンドロイドタブレットで動くgaucheインタープリタ作って
669 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 16:49:22.06 ] >>666 純粋な計算機科学の話ではなくて、どちらかと言えば政治的な話。 "a dialect of Lisp and a descendant of Scheme"のRacketの処理系であって、 今後もRnRS Schemeをサポートするけど、それは彼らにとって一番の目的じゃない。
670 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 22:39:05.56 ] gaucheで テキストファイルの内容をテキストとしてそのまま出力するcgiと ダウンロードページのように、アクセスすると指定したtar.gzをダウンロードさせるcgiを作りたいのですが どういう風にすればいいのでしょうか
671 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 22:51:56.15 ] お前 Gauche 以前の問題だろ
672 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 23:28:54.18 ] gaucheで の部分を何に変えても同じことだな
673 名前:デフォルトの名無しさん mailto:sage [2011/12/31(土) 23:55:16.29 ] テキストファイルやtar.gzを読んで適切なhttpヘッダーつけて標準出力に 書き出せばいい。
674 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 00:06:12.05 ] >>671-673 ありがとうございました
675 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 14:58:10.32 ] iphoneのgambit cが便利。しかしソースの保存先が不明。どこから見れるんだろ
676 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 15:47:38.47 ] >>675 アプリつくれるんだっけ?
677 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 16:03:17.95 ] >>670 高校生の時を思い出したわ。 今の時代はこんなの中学生か小学生かな。
678 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 17:05:47.37 ] >>676 >>>675 >アプリつくれるんだっけ? 単にどこでもスキームコードが書けるだけみたい。
679 名前:デフォルトの名無しさん mailto:sage [2012/01/01(日) 22:00:21.15 ] >>677
680 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 15:11:07.42 ] Gambitの継続をスレッドで実装する方法ってどこかに文献ないのでしょうか
681 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 15:23:00.76 ] lists.racket-lang.org/users/archive/2008-June/025051.html 結局、どっちの挙動が正しい挙動なの?
682 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 15:27:02.33 ] トップレベルの解釈って処理系がそれぞれ適当に決めてるんじゃないの
683 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 16:50:27.30 ] 処理系作ってみればわかるが どっちもどっち
684 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 17:17:36.26 ] axisofeval.blogspot.com/2011/07/some-nice-paperz.html Some nice paperz on delimited continuations and first-class macros
685 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 19:45:58.29 ] schelogでちょっと複雑なプログラム組むと 無限ループから帰ってこなくなるのは 自分の使い方が悪いだけなんだろうか
686 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 21:34:21.86 ] >>685 github
687 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 23:30:34.59 ] srfi-*とかクソわかりづらいんだけど慣れるもん?
688 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 23:44:01.52 ] いや、メモを参照すべきだと思うぞ。
689 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 23:48:31.33 ] RFCなんかに比べりゃかわいいもんよ
690 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 01:21:07.60 ] >>688 なんのメモを参照しているの?
691 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 06:07:02.56 ] srfi とslibの関係がよくわからない
692 名前:デフォルトの名無しさん mailto:sage [2012/01/09(月) 07:40:07.85 ] srfiは仕様案を出してみんなで議論して形にする。一応参考実装があるけど、 「仕様」が本体なので、仕様だけ見て独自実装している処理系も多い。 slibはSCMの作者が中心となってメンテしているライブラリの集合。仕様に こだわるよりも実装が主体。 両者は基本的に無関係だけど、SCMの作者がslibの一部の仕様をsrfiとして 提出して承認されているものはある。
693 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 06:38:20.67 ] racketはシェルとの融合性が悪すぎる パイプとportつなげたいだけなのに出来ないとか
694 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 14:24:29.54 ] (call-with-output-string (lambda (out) (call-with-input-string "aaaaaa" (lambda (in) (exec-shell-pipe "cat -" in out) )))) みたいなことしたいのだけどRacketはできないみたい Gaucheならできる?
695 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 14:29:27.07 ] みたいなことはどれでも出来るんじゃね
696 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 14:47:53.08 ] shellの標準入力とパイプ入力で扱いが違うらしく 動かないshell コマンドがある
697 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 16:32:57.47 ] common lispとscheme(gauche)のソースを見やすくする javascriptでできたシンタックス・ハイライトはありますか? webでそれらのソースを見せたいので
698 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 17:52:28.72 ] >>697 see demo at pygments.org/