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/
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/
699 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 08:55:25.13 ] >>696 なにいってんだ?
700 名前:デフォルトの名無しさん mailto:sage [2012/01/12(木) 15:22:37.44 ] >>699 Racketで694に相当するのが(process "cat")だけど 実行してみると何処がおかしいのかわかると思うよ
701 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 00:48:18.63 ] 何言ってんだか全くわからん。 $ cat foo.ss (define-values (p stdout stdin stderr) (subprocess #f #f #f "/bin/cat")) (display "aaaaaa\n" stdin) (close-output-port stdin) (display (read-line stdout)) (display "\n") $ racket -f foo.ss aaaaaa
702 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 03:34:47.61 ] >>701 ls, top, cat hoge.log | tail -n 99 | grep abとかは、どうやるの?
703 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 10:48:07.24 ] (subprocess #f #f #f "/bin/sh" "-c" "ls | grep ab")でいいんじゃない?
704 名前:デフォルトの名無しさん mailto:sage [2012/01/13(金) 20:46:41.56 ] >>698 すみません、それはpythonでファイルを新たに生成するものではないでしょうか
705 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 07:08:13.54 ] www.1stwebdesigner.com/css/16-free-javascript-code-syntax-highlighters-for-better-programming/
706 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 08:15:50.26 ] >>704 単独で生成もできるし、jekyllみたいなものから静的なhtml作成 もできるよ。common lisp,scheme,clojure含めて対応言語が多いので、 重宝する。705にも紹介されてるよ。
707 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 09:23:26.10 ] 環境を変更せず、お手軽にJavaScriptでやりたいんじゃないのかな。 自分もブログサービスで簡単に利用できるのを探したりした。 google-code-prettify code.google.com/p/google-code-prettify/ なんかは、Lisp界隈で何度か使われてるのを見たことがある。 ただ、厳密に構文解析してるわけじゃないみたいなので、 何かのタイミングでハイライトが崩れる場合もあったと記憶してる。
708 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 12:53:31.40 ] >>705-707 ありがとうございます。 >>707 のおっしゃるとおり手軽に行いたかったのです あげてもらったものを試してみます
709 名前:デフォルトの名無しさん [2012/01/16(月) 16:31:35.37 ] ttp://d.hatena.ne.jp/higepon/20120116/1326674950
710 名前:デフォルトの名無しさん mailto:sage [2012/01/16(月) 17:13:42.03 ] ステマスレと間違えたんですね
711 名前:デフォルトの名無しさん mailto:sage [2012/01/16(月) 19:28:17.79 ] d.hatena.ne.jp/r-west/20090417/1239972722 大変わかりやすいエントリーなのですが、読んで疑問を持ちました 1.lispやschemeとycombinatorはどういうところで結びつくのでしょうか 2.ところでpaul grahamが設立したy combinatorはy combinatorの意味と何らかの関係があるのですか
712 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 01:39:33.32 ] Ycombinator懐かしいな (define (Y F) ((lambda (s) (F (lambda x (apply (s s) x)))) (lambda (s) (F (lambda x (apply (s s) x)))))) (define length (Y (lambda (f) (lambda (ls) (if (null? ls) 0 (+ 1 (f (cdr ls))))))))
713 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 10:04:35.84 ] >>711 2についてはpaulが答えてる。 ycombinator.com/faq.html Why did you choose the name "Y Combinator?" The Y combinator is one of the coolest ideas in computer science. It's also a metaphor for what we do. It's a program that runs programs; we're a company that helps start companies.
714 名前:デフォルトの名無しさん mailto:sage [2012/01/17(火) 17:16:22.14 ] >>712-713 ありがとうございます。わかってすっきりしました。
715 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 10:37:22.18 ] Lispには歴史的価値しかない Lispからはもう新しいものは生まれない
716 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 12:24:53.66 ] うん、過去ログを読めない人にとってはそうだな
717 名前:デフォルトの名無しさん [2012/01/18(水) 12:40:32.37 ] 2ch監視し続けないと目に触れないようなもん 大したものじゃないな
718 名前:デフォルトの名無しさん mailto:sage [2012/01/18(水) 15:36:39.08 ] >>715 のお勧め言語は?
719 名前:デフォルトの名無しさん [2012/01/19(木) 01:07:41.25 ] 別に新しいの生み出さないでも、 俺一人が気分良く使えればそれでいいし。
720 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 02:51:38.27 ] schemeで 文字列 "aabb" から同じ名前の変数に何か割り当てたい (define aabb "some") string->symbolで変換しても無理だったのだけど何か方法ないのでしょうか