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
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 ] 引数任意(一個以上)な関数はどうすれば定義できますか?
130 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 00:15:43 ] >>129 &restなど
131 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 00:18:10 ] >>129 ラムダリストで調べれ。
132 名前:デフォルトの名無しさん [2006/07/19(水) 01:23:30 ] >>130-131 どうもです。
133 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 02:07:29 ] ハーフライフ1で、やたら λ(ラムダ) って用語が出てくるんだけど、体験版やってみたら、 スタート地点から、ゴールまで行って、 またそこからスタート地点までわざわざ 戻ってくるんだよね。マラソンの折り返し地点みたいに。 なんでラムダラムダ言ってたのか、ようやくわかるというわけ。 この開発者、たぶんLispかスキームが好きなんだとおもうよ。
134 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 09:01:03 ] >>133 なんだかさっぱりわからないのですが、ゲームか何かの話?
135 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 10:03:39 ] 単にΛの字面から来てるんじゃないのか?
136 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 10:08:48 ] 「ラムダ」でググってたら、実は世の中は隠れLispマニアでいっぱいだということがわかったw
137 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 12:10:39 ] Half-Lifeのλは半減期(Half-Life)から来てるんじゃね? Lispとは関係ない気がする。
138 名前:デフォルトの名無しさん [2006/07/29(土) 19:43:32 ] 数式微分わからん。SICP通りにやっても動作しないけど。 ほかに参考になるサンプルソースはないのか?
139 名前:デフォルトの名無しさん mailto:sage [2006/07/29(土) 19:45:21 ] >>138 微分には挑戦したことないからわからない。 参考図書とかあればこんど探してくるよ。
140 名前:デフォルトの名無しさん [2006/07/29(土) 19:46:03 ] >>139 サンクス。
141 名前:デフォルトの名無しさん mailto:sage [2006/07/29(土) 19:48:21 ] >>138 微分のコードは書いたことないからわからない。 SICPに書いてあるけどよくわからない。
142 名前:デフォルトの名無しさん [2006/07/30(日) 03:23:57 ] >>138 SICPでぐぐるとコードが落とせるところが引っ掛かるから それ使ってやってみれ。それでダメなら何か根本的に勘違いしてる。
143 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 06:43:12 ] lispuser.net/memo/lisp/2006-07-22-21-42.html Windows で CLISP + SLIME + Tcl/Tk キターーーー
144 名前:デフォルトの名無しさん [2006/07/30(日) 14:16:26 ] Tcl までついてくんのか……
145 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 14:39:11 ] たしかにTclはいらんなw
146 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 18:55:59 ] つかlisperがwindowsって違和感。 PC Unix か Mac OS X つかおうぜ
147 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 19:00:00 ] むしろ Windows が VMS だと考えるんだッ
148 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 19:01:52 ] 頭のなかでVMSとMVSがけっこう混ざってる
149 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 19:28:34 ] >>146 んなこと言ってると喰えないのだ
150 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 19:29:38 ] cygwin上ならセフセフ
151 名前:デフォルトの名無しさん mailto:sage [2006/08/02(水) 11:26:56 ] practical common lispってなんであんなにloopばっか使ってんのかね? mapcarとかで済みそうなものも徹底してloopしか使わない……
152 名前:デフォルトの名無しさん mailto:sage [2006/08/02(水) 23:53:51 ] guileで (use-modules (ice-9 r5rs)) (define env1 (scheme-report-environment 5)) (define env2 (scheme-report-environment 5)) (eval '(define a 3) env1) としておいて、 (eval 'a env1) を評価すると3になるんだけど、 (eval 'a env2) を評価しても結果が3になってしまう。 つまりenv1とenv2は同じオブジェクトってことになってしまっている。 env1の中での環境の変化をenv2には影響させない方法ってありませんか?
153 名前:デフォルトの名無しさん mailto:sage [2006/08/03(木) 00:23:14 ] にるぽ
154 名前:デフォルトの名無しさん mailto:sage [2006/08/03(木) 00:46:53 ] かー
155 名前:デフォルトの名無しさん mailto:sage [2006/08/03(木) 01:26:29 ] >>152 いまいちやりたいことがわからんが・・・ scheme-report-environmentはR5RSで定義されてるバインドだけ持った環境を返すだけで 返してきた環境の中に新たにバインドつくるとかはできないんだぜ?
156 名前:デフォルトの名無しさん mailto:sage [2006/08/03(木) 07:46:45 ] いや、それがやりたいんだと思うよ。 R5RSに出来ないと書いてあるのにできちゃうevalってのも不親切といえば 不親切ではあるかも知れない(が、エラーにしちゃうとそれも不便だろうな)。 R5RSより: -- procedure: eval expression environment-specifier Evaluates EXPRESSION in the specified environment and returns its value. EXPRESSION must be a valid Scheme expression represented as data, and ENVIRONMENT-SPECIFIER must be a value returned by one of the three procedures described below. Implementations may extend `eval' to allow non-expression programs (definitions) as the first argument and to allow other values as environments, with the restriction that `eval' is not allowed to create new bindings in the environments associated with `null-environment' or `scheme-report-environment'.
157 名前:デフォルトの名無しさん mailto:sage [2006/08/04(金) 03:18:49 ] LispWorks5.0出荷されてますね。 www.lispworks.com/news/news19.html
158 名前:デフォルトの名無しさん mailto:sage [2006/08/04(金) 22:05:05 ] >>144 なにかと思ったら LTK 動かすためなんじゃね?入門を目指すならいいん じゃないかな。むしろ「GUI もできます… Tcl/Tk を入れれば」は初心者 には引かれるだろ。よく言われる - フリー - ANSI Common Lisp (MOP, Gray Stream などデファクトスタンダード含む) - Windows 用 - .exe が作れる - GUI がつかえる は満せつつあるんだねー。でもドキュメントが足りない気がする。
159 名前:デフォルトの名無しさん mailto:sage [2006/08/05(土) 05:32:30 ] R5RSって「あーるごあーるえす」って読むの?
160 名前:デフォルトの名無しさん mailto:sage [2006/08/05(土) 07:48:41 ] うん。
161 名前:デフォルトの名無しさん [2006/08/05(土) 22:50:40 ] >>158 Tkは解るけど、Tclっているのん?
162 名前:デフォルトの名無しさん mailto:sage [2006/08/06(日) 00:28:18 ] Tkは言語中立なGUIツールキットなんかじゃないよ。
163 名前:デフォルトの名無しさん mailto:sage [2006/08/06(日) 00:35:21 ] >>161 Tk needs Tcl.
164 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/06(日) 00:40:49 ] Perl/TkやRuby/Tkが流行る当たり、Tclの言語としての駄目さ加減がわかるな。
165 名前:デフォルトの名無しさん mailto:sage [2006/08/06(日) 12:42:45 ] ここで Tcl を叩くのはスレ違いだと思うが…。 Ruby/Tk も Tcl 要るよ?Python の Tkinter も Tcl 要るし。名前の印象にダ マされてる? Perl/Tk だけが自力で Tk とのバインディングを持ってる。
166 名前:デフォルトの名無しさん mailto:sage [2006/08/06(日) 13:23:13 ] でもTclが嫌いでTcl/Tkを避ける奴は多いと思う 実際には他言語のバインド使うならほとんどTclの知識は要らないんだけどね
167 名前:デフォルトの名無しさん mailto:sage [2006/08/06(日) 14:11:35 ] 最近 Lisp はじめたんですけど,Perl/Tk みたいに結局インターフェースは Tcl っぽくなってしまうような気がしますね。Perl/Tk は流行してないと思い ますが…最近あまり動きないですし。
168 名前:デフォルトの名無しさん mailto:sage [2006/08/06(日) 14:48:50 ] Tclは一つの言語というより、可搬式コマンドラインツールセットというべきかと。 比較対象としてはPerlやRubyより、Dosemuやcygwinに近い
169 名前:デフォルトの名無しさん mailto:sage [2006/08/06(日) 14:55:54 ] tclはシェルの一種だよ。
170 名前:デフォルトの名無しさん mailto:sage [2006/08/06(日) 20:10:45 ] 歴史長い割に普及してないね。 やっぱUNIXのGUIってセンスがダメなのよね。
171 名前:デフォルトの名無しさん mailto:sage [2006/08/06(日) 21:19:27 ] ・・・え?
172 名前:デフォルトの名無しさん mailto:sage [2006/08/07(月) 01:38:00 ] UNIXのGUI(笑)
173 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/07(月) 01:41:17 ] QtやGtkのバインディングってないの?
174 名前:デフォルトの名無しさん mailto:sage [2006/08/08(火) 23:13:00 ] ググるという行為を知らんのかね? www.cliki.net/Graphics%20Toolkit
175 名前:デフォルトの名無しさん mailto:sage [2006/08/09(水) 01:14:49 ] ググらせるという行為を知らんのかね?
176 名前:デフォルトの名無しさん mailto:sage [2006/08/09(水) 01:17:41 ] 知らん
177 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 00:43:19 ] Schemeのわかりやすい、楽しい本ってなんでないの?
178 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 00:45:26 ] >>177 君が何を読んでも楽しさを感じられない人間だからだと思う
179 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 00:49:17 ] >>178 お前の家族を明日殺す
180 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 00:51:31 ] キタ━━━(´・ω・`)━━━・・・
181 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 02:47:33 ] >>179 一応警察に通報しておく
182 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 09:16:43 ] >>177 Little Schemerかのう・・・軽く読めるんけど、楽しいかというとびみょ
183 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 20:16:06 ] EoPL第2版がおすすめだ。
184 名前:デフォルトの名無しさん mailto:sage [2006/08/16(水) 22:31:52 ] 「リスト遊び」をschemeに翻訳するとか。 最近俺がやってる遊びだが。
185 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 17:11:50 ] 院試でSchemeの問題が… orz
186 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 18:09:51 ] それは喜ぶところじゃないのか
187 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 18:17:43 ] うーん。普段Schemeのプログラムはちょっとは書いてるつもりだったし、最初の 小問はかなり簡単だったんで喜んだんだけど… 再帰の計算量(?)を求める 問題とsamefringeが難しかった…
188 名前:デフォルトの名無しさん [2006/08/17(木) 21:39:36 ] samefringeを出題するおちゃめな大学があるのか…
189 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 17:36:24 ] flattenしてequal?で調べるではやっぱり駄目?
190 名前:デフォルトの名無しさん [2006/08/18(金) 18:31:56 ] どんな問題なんだろう。call/ccでコルーチン作るやつかな? そんなの院試に出されたら死屍累々という気もするが。
191 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 18:50:28 ] >>190 試しに書いたらhaskellで楽勝だったのに Schemeで大失敗したorz
192 名前:デフォルトの名無しさん [2006/08/18(金) 20:48:44 ] Haskellだとどうやって書くの?
193 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 02:39:27 ] ググッたらめっけた data Tree a = Leaf a | Node [Tree a] fringe (Leaf x) = [x] fringe (Node x) = foldr (\x r -> fringe x ++ r) [] x samefringe x y = fringe x == fringe y でもツリー作るのマンドクサイ (Node [(Node [(Leaf 1), (Leaf 2)]), (Node [(Leaf 3), (Node [(Leaf 4) ])])])
194 名前:デフォルトの名無しさん [2006/08/26(土) 15:32:15 ] SBCLのREPLから対話処理をするプログラムを実行したいんだけど、 例えば以下のようにすると、 (setf p (run-program "/usr/bin/dc" nil :pty t :wait nil)) (format (process-pty p) "2 3 *~%") (terpri (process-pty p)) (format (process-pty p) "p~%") (terpri (process-pty p)) (format t "~A" (read-line (process-pty p))) 6が表示されると思われるんだけど、実際には入力待ちになってしまうのはどうしてなぜ?
195 名前:デフォルトの名無しさん mailto:sage [2006/08/28(月) 00:42:24 ] 読み込みでブロックするっつーことは stream が無効なわけじゃなさそうだね. stream が buffering してんじゃない? dc ないから bc で試してみた.pty 使えない環境なんで :stream 経由で.環境は sbcl 0.9.16 です. CL-USER> (defun bc-example () (let ((process (run-program "/usr/bin/bc" '("-q" "-i") :output :stream :input :stream :wait nil))) (unwind-protect (progn (write-line "x = 2" (process-input process)) (write-line "y = 29" (process-input process)) (write-line "x^y-1" (process-input process)) (finish-output (process-input process)) ;; これがないとブロックする (write-line (read-line (process-output process)))) (process-close process)))) BC-EXAMPLE CL-USER> (bc-example) 536870911 "536870911"
196 名前:デフォルトの名無しさん mailto:sage [2006/08/28(月) 17:00:26 ] R5RSを読んでるんですが、 3.5節の末尾再帰のところに出てくる「アクタ(actor)」というのは 昔の歴史的な事柄で今のSchemeにはもう関係ない話だと思って良いですよね?
197 名前:デフォルトの名無しさん mailto:sage [2006/08/28(月) 21:58:26 ] Hewittせんせーい!
198 名前:デフォルトの名無しさん [2006/08/29(火) 21:17:32 ] scm5e1でscheme勉強しています。 > (let ((x 10)) (define x (+ x 1))) とすると、 ;ERROR: bad body ((define x (+ x 1))) ; in expression: (let ((x 10)) (define x (+ x 1))) ; in top level environment. ;STACK TRACE 1; (let ((x 10)) (define x (+ x 1))) と怒られてしまうのですが、 これはなぜでしょうか。 letの中で外に影響を及ぼすdefineを使っているからですか?
199 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 21:34:56 ] >>198 define で初期値として x を参照してるから。 (let ((x 10)) (define x (+ x 1))) == (let ((x 10)) (letrec ((x (+ x 1))))) んで、R5RS 4.2.2 Binding constructs > library syntax: (letrec <bindings> <body>) > Syntax: <Bindings> should have the form > ((<variable1> <init1>) ...), ... > One restriction on letrec is very important: it must be possible > to evaluate each <init> without assigning or referring to the > value of any <variable>.
200 名前:198 mailto:sage [2006/08/30(水) 07:05:34 ] >199 ありがとうございます。 defineの所の説明とあわせて読んだら分りました。 こんどは、letrecを試してみようと、 > (letrec ((x 2) (y 'x)) (eval y)) としたところ、 ;ERROR: "/usr/local/lib/scm/Init5e1.scm": unbound variable: x ; in expression: (#@@eval (#@@copy-tree #@x)) ; in scope: ; (x) procedure <anon> ; (@eval @copy-tree . #@let) ; defined by load: "/usr/local/lib/scm/Init5e1.scm" ;STACK TRACE 1; x 2; (#@letrec ((x 2) (y (#@quote x))) (#@eval #@y)) といわれてしまいます。 (define x 2)(define y 'x)(eval y) なら2が帰って来てくれるのですが、 何がいけないのでしょうか。 letrecだと変数領域が割り当てられて、 それから初期値が算出される、と書いてあったので、 このやり方ならyは既に割り当てられたxをさすようになるだろうから、 正しく動くと思ったんですが...
201 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 08:25:52 ] >>195 これでうまくいきました。cmuclでもちゃんと動くようです。ありがとうございました。 Schemeのflashのようなものでしょうか。改行すればフラッシュされるものと思いこんでました…orz