[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 12:58 / Filesize : 211 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

((Common Lisp) (Scheme) :Part 15)



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 ]
ググらせるという行為を知らんのかね?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<211KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef