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
29 名前:デフォルトの名無しさん mailto:sage [2006/06/27(火) 23:08:19 ] >>28 R5RSなんて小さい規格なんだから、一つでも削るならSchemeと呼んで欲しくない。 あれ以上削ったらただの「俺言語」だ。
30 名前:デフォルトの名無しさん mailto:sage [2006/06/27(火) 23:16:12 ] >>29 Sussman と Steele の言語が Scheme じゃないとでも? R^nRS 名乗らないなら * レキシカルスコープ * 末尾呼び出しの最適化 * 変数と関数が同じ名前空間 くらいでいいんじゃない?
31 名前:デフォルトの名無しさん mailto:sage [2006/06/27(火) 23:18:06 ] >>30 それは単なる 1-Lisp の一種だろ
32 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 01:06:29 ] >29 「scheme のサブセット」なんであって scheme だとは書いてないでしょ。まぁ でも継続はあってほしいかも。
33 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 01:13:46 ] >>32 それを言ったらどんな言語だってSchemeのサブセットのスーパーセットだよw 個人的には継続のない言語をSchemeと呼ぶのは大きな違和感がある
34 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 06:02:20 ] numeric tower とかマクロとか
35 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 06:04:37 ] (E E*)の形で関数適用が書けて、レキシカルスコープならschemeでいいや。
36 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 07:41:59 ] 新しいの出てるね www.schemers.org/Documents/Standards/Charter/status-jun-2006/status-jun06.html top-level が library になったり、call/cc や when, unless がデフォルトになったり... UNICODE サポートはどうなるんでしょうね
37 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 07:43:32 ] R1RSってどんだけちっちゃかったの?
38 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 08:45:45 ] square brackets([])はなくならないんだろうなあ……なんかやだ。
39 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 10:26:21 ] R6RS> All definitions and expressions must appear within a library form; R6RS has no notion of a top-level definition or expression. ま、中途半端よりはいいかもしれんが.... 微妙だ。
40 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 17:06:50 ] >>38 同意
41 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 18:52:20 ] common-lisp.net 死んだ?
42 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 20:28:29 ] square bracketsって誰の趣味? なんでR6RSにこれが入るの決定なのか知ってる?
43 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 21:05:38 ] その議論は2年前に終ってる。なぜお前はその時ちゃんと反対しなかったんだ?
44 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 21:08:10 ] >>43 ポインタキボンヌ
45 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 21:57:58 ] web上にいいのがないが、とりあえず去年の3月には投票済み。 www.schemers.org/Documents/Standards/Charter/mar-2005.txt > We have voted on a number of the decisions listed in the Revised R6RS > Status Report. Among the minor but visible decisions made are: > : > - add balanced square brackets as a synonym for parentheses
46 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 23:11:46 ] >>39 これ良く分からなかったんだけど、全部 (library <lib-path> <language> <body>) で 書くようにしたいって事だよね。今までみたいに REPL から自由に式を入力出来る形ではなく。 で、(library "main" ...) が entry point になると...
47 名前:デフォルトの名無しさん mailto:sage [2006/06/28(水) 23:59:25 ] 失礼します。 Windows2000にDrScheme(version350)を入れて日本語の設定をしたのですが、 ボタンや本文の文字がうまく表示できません。 このようになります↓ www.42ch.net/UploaderSmall/source/1151505302.jpg (定義欄に入力しているのは、(string-length "ほげ")です) メニューの編集-環境設定-フォントでフォントをMSゴシックにしています。 その他は色の設定しか変更していません。 Windowsのフォントキャッシュを作り直してみましたが改善しませんでした。 原因や解決法に思い当たる事があればお教え願います。
48 名前:デフォルトの名無しさん mailto:sage [2006/06/29(木) 02:51:24 ] 言語を英語にして縦書きの日本語フォントを使うw
49 名前:デフォルトの名無しさん mailto:sage [2006/06/29(木) 07:37:18 ] フォントじゃなくて文字コードの設定のような気がする 何かが「Latin-1」か「ASCII」になってるんじゃないか?
50 名前:デフォルトの名無しさん mailto:sage [2006/06/29(木) 19:15:19 ] guile schemeでeval関数ってどうやって使うのでしょうか? gauche schemeなら (define environment #t) (define initialenv '()) (set! environment (eval '(define a 2) initialenv)) って感じで使えるんだけど… guileで同じようにやっても、evalの第二引数の型が違うってエラーになっちゃう。
51 名前:47 mailto:sage [2006/06/29(木) 22:04:01 ] ありがとうございます。解決法は見つかりませんでしたが、 ・縦書きフォントなら表示できる ・中国語・朝鮮語フォントも表示できる(「々」が出ないものが多い) ・BDF UM+は大丈夫 のようなので、その範囲で使う事にします。 >>48 そうすることにします。 >>49 UnicodeフォントのはずのMSゴシックが使えないことに疑問が残りますが、 BDF UM+では表示できたのでそうではないようです。
52 名前:デフォルトの名無しさん mailto:sage [2006/06/30(金) 12:59:13 ] >>50 それは動く Gauche の方が変なのでは。R5RS 的には、eval の 第二引数は、(interaction-environment), (scheme-report-environment 5), (null-environment 5) のいずれかでなければならない。 なさりたいことを拝察するに、こういうことかと。最初の行をとれば、Gauche でも動くはず。 (use-modules (ice-9 r5rs)) ;; R5RS をguile で使えるようにする。 (define env (null-environment 5)) (eval '(define a 2) env) (eval 'a env)
53 名前:50 mailto:sage [2006/06/30(金) 13:27:21 ] >>52 おーできた、ありがとう!
54 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 16:26:34 ] 携帯(例えばiアプリ)上で使えるSchemeってないのかな?
55 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 17:12:21 ] 携帯単体ではさすがにキツイべ 逆立ちしてもメモリが足りねえよ
56 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 18:55:59 ] >>55 heapとして扱えるメモリは意外とあるんだよ、ないのは実行コードエリアとしての容量なんだよね。 だが所詮iAppli
57 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 19:03:06 ] そうか〜。やっぱし携帯ではきついものがあるのか。
58 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 19:38:30 ] コードをネット上から読み込んで動作するようにすればどうだ? 携帯Javaでそんなことが出来るか知らんけど。 そしてそこまでするならCGIとかでもいいかもしれんが。
59 名前:デフォルトの名無しさん mailto:sage [2006/07/02(日) 19:43:36 ] 携帯の上でSchemeインタプリタを動かすかどうか別にして、そういう制限環境向けの プログラムジェネレータをLisp系の言語で書くという発想は面白いかもしれない。
60 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 12:20:49 ] つ www.okisoft.co.jp/esc/whitepaper.html
61 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 15:28:51 ] (display '(a b "cd\n")) ってやると (a b cd ) って表示されちゃうんだけど、 本当は (a b "cd\n") というふうに元の形のまま出力させたい。 どうしたらいいんでしょうか? 自分で元の形のまま出力する関数を定義するしかない? それともschemeにそういう関数がもとから備わってる? (write '(a b "cd\n")) でも出力は (a b "cd ") で\nが改行に変わってしまってだめだった。
62 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 15:49:06 ] \\
63 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 19:54:55 ] \\ じゃだめで、 エスケープしなくてもそのままの形でS式の中のstringを表示させたいんだけど。
64 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 20:01:50 ] goshでwriteだと\nて出た
65 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 20:02:08 ] '(a b "cd\n") ならばそのまま (a b "cd\n") と。 '(a b "cd\\n") ならばそのまま (a b "cd\\n") と表示させたいんです。説明足らずですみません。
66 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 20:06:56 ] >>64 goshだと確かに\nって出ますね・・・ でもguileだとダメだ・・・ 処理系依存なのか・・・ guile用には自分で定義するしかないかなぁ。
67 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 20:09:36 ] writeはreadできるように書き出せば良いので、どちらの処理系も間違いではないのだろうな
68 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 22:39:49 ] guile だと \n は read した時点で改行になってるっぽい。 write の代替書くとかいう方法じゃ解決できなそうだね。 (string-length "\n") => 1 (equal? "\n" " ") => #t
69 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 22:49:25 ] readした時点で改行文字になるのは当然。 問題はwriteが文字列中の改行文字をどう出力するかだよ。
70 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 23:05:06 ] つまり、どうやっても「元の形のまま」出力することはできないってことでいいのかな。 改行と \n が区別できないってことは、両方含む文字列はどっちかが変換されちゃう。
71 名前:デフォルトの名無しさん mailto:sage [2006/07/03(月) 23:09:31 ] >>70 致命的な勘違いをしてないか?
72 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 00:51:39 ] 確かに何か勘違いしてるっぽいけど... ASCII コードで 32 以下なら ¥ でエンコードし、 それ以外はそのまま表示するような display/write もどきを 自前で書き起こすというのはダメ?
73 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 02:20:49 ] >>72 こんな質問をする奴にそれを進めても、自分が何やってるか理解できずに今度は "ab cd" が "ab\ncd"としか出力できません という質問がされる悪寒。
74 名前:61 mailto:sage [2006/07/04(火) 03:53:56 ] 改行を\nと出力する自前の関数を定義するっきゃなさそうですね。 今やろうとしてることでは "ab cd" なんていう入力は想定しなくていいので問題ないです。 ありがとうございました。
75 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 00:13:02 ] schemeで 関数のリストfuncsと、データのリストdatasがあって、 funcsのn番目を、datasのn番目に適用してくれる関数ってない? 再帰使ってちょこちょこっと書けばいいんだけど。 (define funcs '(func1 func2 func3)) (define datas '(a b c)) (hoge funcs datas) =>((func1 a) (func2 b) (func3 c)) みたいになるやつ。
76 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 00:50:54 ] map apply すりゃいいんじゃないの ところで data は複数形だぞ。単数形は datum。
77 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 00:59:41 ] datasわろす
78 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 01:18:47 ] koders.com/?s=datas
79 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 06:22:48 ] >>75 (zip funcs datas) => ((func1 a) (func2 b) (func3 c))
80 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 07:25:35 ] 例の戻り値が不適切っぽいのはともかく、適用したいってんだから、 (map (cut <> <>) funcs datas) じゃないかな。
81 名前:デフォルトの名無しさん [2006/07/10(月) 17:44:09 ] (set! a '(0 1 2 3 4 5)) があるとして、配列 a の後ろから二番目の値、この場合は4を取り出す方法を教えてください (car とか cdr とかわかんねー。どうやったら後ろから二番目の値を取れるのか・・・)
82 名前:デフォルトの名無しさん mailto:sage [2006/07/10(月) 17:47:34 ] (list-ref a (- (length a) 2))
83 名前:デフォルトの名無しさん mailto:sage [2006/07/10(月) 17:50:01 ] => (list-ref a (- (length a) 2)) ERROR: unbound variable (errobj list-ref) -- すまん、今使ってるのは script-fu uyq@
84 名前:デフォルトの名無しさん mailto:sage [2006/07/10(月) 17:58:46 ] (define (list-ref lis idx) (if (= idx 0) (car lis) (list-ref (cdr lis) (- idx 1))))
85 名前:デフォルトの名無しさん mailto:sage [2006/07/10(月) 17:58:47 ] (define list-ref (lambda (ls position) (if (= position 0) (car ls) (list-ref (cdr ls) (- position 1))))) -- ググったら↑みたいのが出てきた。 これで script-fu でも list-ref が使えるらしい。 マンドクセからこれ使おうっと
86 名前:デフォルトの名無しさん mailto:sage [2006/07/11(火) 00:13:08 ] (cadr (reverse a))
87 名前:デフォルトの名無しさん mailto:sage [2006/07/11(火) 16:08:25 ] carやcdrは判っておいたほうがよい。 リストの構造を紙に書いて考えるんだ。
88 名前:デフォルトの名無しさん mailto:sage [2006/07/11(火) 17:19:13 ] ずいぶん前だけど、かなりemacs lisp関連のコードを コントリビュートしてる人が、consセルって何?みたいな 話しててたまげた。 carとかcdrもS式で表現されたリストに対する操作として 理解してたらしい。 そういうのもありなんだとある意味感動した。
89 名前:デフォルトの名無しさん mailto:sage [2006/07/11(火) 17:47:49 ] caddrとかの言い回しは気にならなかったのかな
90 名前:デフォルトの名無しさん mailto:sage [2006/07/11(火) 17:55:22 ] >>88 そんな香具師のcontributeしたelispコードなんて使いたくねーな
91 名前:デフォルトの名無しさん mailto:sage [2006/07/11(火) 19:20:14 ] 実際セル知らなくてもS式だけで完結しちゃうだろ。
92 名前:デフォルトの名無しさん mailto:sage [2006/07/11(火) 23:07:34 ] alist もリストのリストにするのか? 問題はないけど何か無駄な感じ
93 名前:デフォルトの名無しさん mailto:sage [2006/07/11(火) 23:30:01 ] alistはリストのリストにすること多いけどな。 92は後からデータが追加されるときにcdrをcadrにいちいち書き換えるのか?
94 名前:デフォルトの名無しさん mailto:sage [2006/07/11(火) 23:50:35 ] 点対とかどうやって理解してるのか興味あるな まぁアセンブラ書いたこと無い奴のCプログラムみたいなもんなんだろうな
95 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 00:10:20 ] consを廃止すればドット対作れなくね? listで良くね?
96 名前:デフォルトの名無しさん [2006/07/12(水) 00:12:14 ] 先頭に1個付けたいときどうするの?
97 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 00:21:35 ] リストの共有状態とかも理解してない悪寒
98 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 00:49:28 ] >>93 cadrは何か半端で嫌いだ。 cdrだとビシッとした感じでカッコいいよ?
99 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 01:31:09 ] >>95 R6RS 方面でそんな話題も出てるみたいね。 といってもさすがに cons 廃止じゃなくて、 cons の第二引数を list に限定しましょうって話だけれど。 ↓の 5. Mutability of pairs の最後の段落参照。 www.schemers.org/Documents/Standards/Charter/status-jun-2006/status-jun06.html
100 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 01:36:41 ] >>99 うへぇ
101 名前:デフォルトの名無しさん mailto:sage [2006/07/12(水) 21:07:41 ] SBCL 最新リリースで Solaris と Mac OS X もネイティブスレッド対応されたみたいだね。 Mac は experimental みたいだけど。 sbcl.sourceforge.net/news.html#0.9.14
102 名前:デフォルトの名無しさん [2006/07/13(木) 00:48:19 ] 自分、Scheme、特にDrSchemeがものすごい スキなんですけど、Schemeのプログラマー募集してる 会社って皆無ですよね。なんで? exe作れないから? 実用性ゼロだから?
103 名前:デフォルトの名無しさん mailto:sage [2006/07/13(木) 00:55:06 ] >>102 Schemeでできるような面白い仕事を人に回したくないからだよ
104 名前:デフォルトの名無しさん mailto:sage [2006/07/13(木) 09:33:51 ] 我らが教祖様がインタビューに答えているぞ。 japan.cnet.com/interview/ent/story/0,2000055958,20168687,00.htm
105 名前:デフォルトの名無しさん [2006/07/13(木) 11:40:39 ] (defun power (x y) (loop with i = 0 with tmp = 1 do (when (>= i y) (return tmp)) (setq i (+ 1 i)) (setq tmp (* tmp x)) )) この式をsetqを使わない方法でやるのってどうやるんでしょうか?
106 名前:デフォルトの名無しさん mailto:sage [2006/07/13(木) 11:47:47 ] CL-USER> (defun power (x y) (setq i 0) (setq tmp 1) (loop (if (>= i y)(return tmp)) (setq i (+ 1 i)) (setq tmp (* tmp x)) )) POWER CL-USER> (power 3 2) 9 間違えました、こっちの式です
107 名前:デフォルトの名無しさん mailto:sage [2006/07/13(木) 12:17:52 ] (defun power (x y) (labels ((fuga (x y z) (if (zerop y) z (fuga x (1- y) (* z x))) )) (fuga x y 1))) もしくは (defmacro power (x y) `(expt ,x ,y)) もしくは (setf (symbol-function 'power) #'expt)
108 名前:デフォルトの名無しさん [2006/07/15(土) 19:35:16 ] DrSchemeでdoに相当するものを教えてください。 まさかないことはないと思うので・・。
109 名前:デフォルトの名無しさん mailto:sage [2006/07/15(土) 19:48:14 ] 仮に無くても5分で作れるだろ
110 名前:デフォルトの名無しさん mailto:sage [2006/07/15(土) 20:26:27 ] >>108 メニュー -> 言語 -> 言語の選択 -> r5rsなどを選択
111 名前:デフォルトの名無しさん [2006/07/15(土) 21:36:36 ] >>110 ありがとうございます。 teaching languageを使ってました。 >>109 時間があるときに考えてみます。
112 名前:デフォルトの名無しさん [2006/07/15(土) 22:10:55 ] (symbol-append 'a 'kuuhaku 'b) -> a b となるような「kuuhaku」の部分の書き方はどうすれば良いですか?
113 名前:デフォルトの名無しさん mailto:sage [2006/07/15(土) 22:33:30 ] (define (symbol-append . symlist) (string->symbol (apply string-append (map (lambda(sym) (if (eq? sym 'kuuhaku) " " (symbol->string sym))) symlist))))
114 名前:デフォルトの名無しさん mailto:sage [2006/07/16(日) 01:26:28 ] common lisp なら | | か \ かな。(intern " ") でもいいけど。
115 名前:デフォルトの名無しさん [2006/07/16(日) 01:47:45 ] >>113 ちょっとよく分かりません。申し訳ないです。 >>114 ありがとうございます。それで上手く行きそうです。
116 名前:デフォルトの名無しさん [2006/07/16(日) 19:43:13 ] DrSchemeで微分プログラムに挑戦してんだけど、 自分だけだと行き詰る。参考HPとかある?
117 名前:デフォルトの名無しさん mailto:sage [2006/07/16(日) 20:17:15 ] ちょっと調べたけど、そのものずばりのwebpageは無さそうだね。 どこで行き詰ってるのか具体的に書けば、なんらかのアドバイスが出てくると思うよ。 まさか数値解析から教えてくれなんて事じゃないよねw
118 名前:デフォルトの名無しさん [2006/07/16(日) 20:20:43 ] xをn乗回かけるプログラムをSchemeで書くとどうなる?
119 名前:デフォルトの名無しさん mailto:sage [2006/07/16(日) 20:26:08 ] schemeって何?
120 名前:デフォルトの名無しさん mailto:sage [2006/07/16(日) 20:27:01 ] スチームっていう発音でいいの?
121 名前:デフォルトの名無しさん mailto:sage [2006/07/16(日) 21:05:57 ] (define (expt x n) (if (= n 0) 1 (* x (expt x (- n 1)))))
122 名前:デフォルトの名無しさん [2006/07/16(日) 21:08:47 ] 人工知能の第一人者J・マッカーシー氏に聞く--AI研究、半世紀の歴史を振り返る japan.cnet.com/interview/ent/story/0,2000055958,20168687,00.htm
123 名前:デフォルトの名無しさん mailto:sage [2006/07/16(日) 22:53:20 ] >>116 微分のプログラムは難しいよ。 参考になるサイトはないと思う。
124 名前:デフォルトの名無しさん mailto:sage [2006/07/16(日) 23:04:41 ] 数値微分なのか数式微分かくらいかかにゃアドバイスできんがね
125 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 02:19:13 ] >>121 デファインしないとだめなのか。 もし、nが0だったら、 1を返しなさい。 それ以外だったら、 (n−1)を実行して、 それとXを掛けて、、 あーーーーーわかんなくなった
126 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 02:31:55 ] defineしなくてもnamed-letやY-Combinatorでも書けるでしょ
127 名前:デフォルトの名無しさん [2006/07/17(月) 03:17:31 ] tkoolup.hp.infoseek.co.jp/cgi-bin/src/tkoolup0924.png 日本語版ダウンロードしたら文字化けします
128 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 10:20:26 ] >>116 SICP嫁
129 名前:デフォルトの名無しさん [2006/07/19(水) 00:14:10 ] 引数任意(一個以上)な関数はどうすれば定義できますか?