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
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 ] 引数任意(一個以上)な関数はどうすれば定義できますか?
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 ] ググらせるという行為を知らんのかね?