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


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

Lisp Scheme Part22



1 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 23:58:40 ]
□過去スレ□
Part21: ttp://pc11.2ch.net/test/read.html/tech/1207300697/
Part20: ttp://pc11.2ch.net/test/read.cgi/tech/1205021786/
Part19: ttp://pc11.2ch.net/test/read.cgi/tech/1200237296/
Part18: ttp://pc11.2ch.net/test/read.cgi/tech/1186922295/
Part17: ttp://pc11.2ch.net/test/read.cgi/tech/1177065699/
Part16: ttp://pc11.2ch.net/test/read.cgi/tech/1172404795/
Part15: ttp://pc10.2ch.net/test/read.cgi/tech/1151025773/
Part14: ttp://pc8.2ch.net/test/read.cgi/tech/1132275726/
Part13: ttp://pc8.2ch.net/test/read.cgi/tech/1115901841/
Part12: ttp://pc8.2ch.net/test/read.cgi/tech/1100229366/
Part11: ttp://pc5.2ch.net/test/read.cgi/tech/1091456033/
Part10: ttp://pc5.2ch.net/test/read.cgi/tech/1075630259/
Part9: ttp://pc2.2ch.net/test/read.cgi/tech/1069594582/
Part8: ttp://pc5.2ch.net/tech/kako/1058/10582/1058263391.html
Part7: ttp://pc5.2ch.net/tech/kako/1042/10421/1042167213.html
Part6: ttp://pc3.2ch.net/tech/kako/1031/10315/1031560687.html
Part5: ttp://pc3.2ch.net/tech/kako/1023/10230/1023091882.html
Part4: ttp://pc.2ch.net/tech/kako/1016/10162/1016211619.html
Part3: ttp://pc.2ch.net/tech/kako/1008/10082/1008220265.html
Part2: ttp://pc.2ch.net/tech/kako/1002/10025/1002584344.html
Part1: ttp://piza2.2ch.net/tech/kako/987/987169286.html

232 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 12:15:11 ]
>>230
(1) ひとつしかないスタックを破壊的に変更しながら使う
(2) いくつかのスタックを破壊的に変更しながら使う
(3-a) スタックを退避したりリストアしたり
(3-b) immutableパターン

233 名前:183 mailto:sage [2008/05/31(土) 12:52:01 ]
ご心配いただいて申し訳ありませんので現在の状況を報告いたします.
基本的な規則は
・closure が呼び出されれば(たとえそれが末尾再帰呼び出しであっても),
 新たな束縛環境が作られ,その環境に視点が切り替えられていく.
・continuation には,自分が生成されたときの束縛環境への参照が保持されている.
・通常処理を続けている間は,末尾再帰呼び出しに伴い次々と生成されて
 切り替えられる束縛環境をもとに評価が進められるのだが,
 ひとたび continuation が呼び出されると,その continuation 上に保持されていた
 束縛環境に視点が切り替えられる.
であり,これらに従って評価を繰り返していけば case-A と case-B の挙動の違いを
説明できるように思います.
みなさんのご説明以上の内容ではありませんが,最初のルールを充分にわかっていなかった
(つまり,末尾再帰呼び出しの場合,同じ束縛環境のまま束縛関係を上書きしてしまうと考えていた)
ことが混乱の原因であったように思います.
まだ理解が不充分だと思いますが,少しだけわかりかけてきた気がします.

234 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 14:41:09 ]
名古屋名物 名古屋コールチン

235 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 14:51:28 ]
>>234
本気で面白いと思って書き込んだのでないなら少し反省してもらおうか。


236 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 15:45:47 ]
俺はちょっと笑ったぞ

237 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 15:49:47 ]
鳥皮はコルーチンたっぷり

238 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 18:10:23 ]
>>234-237
もうしばらく静かにしておいてやれYO!

239 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 21:55:26 ]
(define member?
(lambda (a lat)
(cond
((null? lat) #f)
((eq? a (car lat)) #t)
(else (member? a (cdr lat))))))

(member? 'sardines '(Italian sardines spaghetti parsley))

240 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 21:56:04 ]
(define intersect
(lambda (set1 set2)
(letrec
((I (lambda (set)
(cond
((null? set) '())
((member? (car set) set2)
(cons (car set)
(I (cdr set))))
(else (I (cdr set)))))))
(I set1))))

(intersect '(tomatoes and macaroni) '(macaroni and cheese))



241 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 21:57:19 ]
; >>230
; (1) upward onlyの継続 (例外はこれで可能)

(define intersectall
(lambda (lset)
(let/cc hop
(letrec
((A (lambda (lset)
(cond
((null? (car lset))
(hop '()))
((null? (cdr lset))
(car lset))
(else
(intersect (car lset)
(A (cdr lset))))))))
(cond
((null? lset) `())
(else (A lset)))))))

(intersectall '((tomatoes and macaroni) (macaroni and cheese) (tomatoes and cheese)))

242 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 22:52:40 ]
(define rember-upto-last
(lambda (a lat)
(let/cc skip
(letrec
((R (lambda (lat)
(cond
((null? lat) '())
((eq? (car lat) a)
(skip (R (cdr lat))))
(else (cons (car lat) (R (cdr lat))))))))
(R lat)))))

(rember-upto-last
'cookies
'(cookies chocolate mints caramel delight ginger snaps sesserts chocolate mousse
vanilla ice cream German chocolate cake more cookies gingerbreadman chocolate chip brownies))

243 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 00:18:03 ]
>>196-197で call-with-current-continuation と書いてたのを
>>241-242ではlet/ccと書いてある。(Seasoned Schemerからの例)

244 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 00:22:49 ]
>>239-242
「う〜ん、それならこれで十分なんじゃな〜い」ってきっと言われる・・・

(define rember-upto-last
 (lambda (a lat)
  (let loop ((ans lat) (lst lat))
   (cond ((null? lst) ans)
      ((eq? (car lst) a) (loop (cdr lst) (cdr lst)))
      (else (loop ans (cdr lst)))))))

(define intersectall
 (lambda (lset)
  (fold intersect (car lset) (cdr lset))))

なんか簡潔で説得力のある一級継続の使用例は無いものだろうか・・・

245 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 00:55:50 ]
継続無しでいくことが主目的ならそれでいいんジャマイカ?>>244
継続の動作の仕組みを調べる材料に使うなら>>239-242は十分な例だと思う。
継続を理解することよりも何かに例えることに力点があるうちは理解できないだろう。

246 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:28:21 ]
((call/cc
 (lambda (goto)
  (letrec ((start
        (lambda ()
         (print "start")
         (goto next)))
       (froz
        (lambda ()
         (print "froz")
         (goto last)))
       (next
        (lambda ()
         (print "next")
         (goto froz)))
       (last
        (lambda ()
         (print "last")
         (+ 3 4))))
   start))))

247 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:29:02 ]
動作を理解しても「こんなのいらね」で終わることもあるからな。良い例が欲しいな。

248 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:29:09 ]
(let* ((yin ((lambda (foo) (newline) foo)
       (call/cc (lambda (bar) bar))))
    (yang ((lambda (foo) (write-char #\*) foo)
       (call/cc (lambda (bar) bar)))))
 (yin yang))

249 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:29:33 ]
((call/cc call/cc) (call/cc call/cc))

250 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:30:21 ]
>>247
そのレベルでやってるやつには不要。




251 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:33:52 ]
>>247
クレクレうるせーんだよ。氏ね。

252 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:50:09 ]
乞食が自分で書けば良いんジャマイカ?

253 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:51:23 ]
>>250
「そのレベル」でいいんジャマイカ、と

254 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:54:47 ]
荒れてきたねw
foldで書き直せますって言う暇があったら好例を出すべきだったと思うね。

255 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:57:29 ]
>>253
おまえも馬鹿らしいなw

256 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 02:04:31 ]
もですね、わかります

257 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 02:11:52 ]
       ,;r''"~ ̄^'ヽ,
      ./       ;ヽ  新憲法で表現の自由規制、裁判官の国民審査権破棄
      l  _,,,,,,,,_,;;;;i  
      l l''|~___;;、_y__ lミ;l      ネット規制法で検閲、人権擁護法案で報道規制、
      ゙l;| | `'",;_,i`'"|;i |    
     ,r''i ヽ, '~rーj`c=/        ダウンロード違法、単純所持禁止、..etcetc
   ,/  ヽ  ヽ`ー"/:: `ヽ      
  /     ゙ヽ   ̄、:::::  ゙l, 情報源を潰して日本を中国化だ!フゥハハハーハァー
 |;/"⌒ヽ,  \  ヽ:   _l_        ri                   ri
 l l    ヽr‐─ヽ_|_⊂////;`ゞ--―─-r| |                   / |
 ゙l゙l,     l,|`゙゙゙''―ll___l,,l,|,iノ二二二二│`""""""""""""|二;;二二;;二二二i≡二三三l
 | ヽ     ヽ   _|_  _       "l ̄ ̄ ̄ ̄ ̄ ̄ |二;;二二;;二=''''''''''' ̄ノ
 /"ヽ     'j_/ヽヽ, ̄ ,,,/"''''''''''''⊃r‐l'二二二T ̄ ̄ ̄  [i゙''''''''''''''''"゙゙゙ ̄`"
/  ヽ    ー──''''''""(;;)   `゙,j"  |  | |
  _,,,,,,,,,ヽ、        ,,,,,r-'''''ーー'''|   |  | |
''"    ヽ,,___,,,r‐''''''二__    |__|  | |
          \'''"   /     ノ    | |


258 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 02:13:43 ]
>>256
ああいえばこういう。まじ視ね。

259 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 02:14:33 ]
なんか蛆虫がいっぱいw

260 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 02:41:53 ]
>>247良い例マダァ?



261 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 02:47:45 ]
荒れる方向へ誘導するなよ

262 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 02:51:16 ]
もうおまいら全部まとめて >>7 独習 Scheme 三週間 (Schemeの教科書 ) でも読んで寝ろよ。
定番のコルーチンとバックトラックがちゃんとのってるぞ。

263 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 03:53:30 ]
>>262
動作を理解しても「こんなのいらね」で終わることもあるからな。良い例が欲しいな。

264 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 04:16:01 ]
グダグダうるせーんだよ。乞食は氏ね。

265 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 07:28:43 ]
ambは再帰で書くと分かりにくいが、これならどうだ

(define-syntax amb
 (syntax-rules ()
  ((_ x ...)
   (let/cc yield
    (let/cc fallthrough
     (push! stack fallthrough)
     (yield x))
    ...
    ((pop! stack))))))

266 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 09:39:35 ]
>>265
そんな動きもしない中途半端な例より過去スレ嫁。
不思議の国のアリスをやってた連中がambを使ってたハズ。

267 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 10:51:03 ]
Gauche使ってる奴は独自機能を使って煙に巻きたがるんだよなw
push!とpop!の説明しないのかよ?

268 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 10:53:39 ]
(define-syntax amb
(syntax-rules ()
((_) (fail))
((_ a) a)
((_ a b ...)
(let ((fail0 fail))
(call/cc
(lambda (cc)
(set! fail
(lambda ()
(set! fail fail0)
(cc (amb b ...))))
(cc a)))))))

(define call/cc call-with-current-continuation)

(define fail #f)

(define (require pred)
(or pred (amb)))

(call/cc
(lambda (cc)
(set! fail
(lambda ()
(cc 'no-choise)))))

269 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 11:22:04 ]
このスレも人増えてなにより

270 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 11:49:40 ]
(define call/cc call-with-current-continuation)

(define fail #f)

(call/cc
(lambda (cc)
(set! fail
(lambda ()
(cc 'no-choise)))))

(fail) ; => no-choise



271 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 12:02:19 ]
>>196-197と比較するとambがやってることがわかると思う。

(amb 1 2 3 4 5) ; => 1
(fail) ; => 2
(fail) ; => 3
(fail) ; => 4
(fail) ; => 5
(fail) ; => no-choise

272 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 12:07:54 ]
>>246
うほっ、これいいね!
出典があるなら教えて〜

273 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 12:17:57 ]
>>272
それ前スレにも出てた。有名なのかも。

274 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 12:41:12 ]
>>272
おそらく出典はGuy Steele御大です。
ttp://lib.store.yahoo.net/lib/paulgraham/cint.lisp


275 名前:272 mailto:sage [2008/06/01(日) 12:41:45 ]
ありがと^^

276 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 12:54:41 ]
#define d define
#d a include
#a <stdio.h>
#a <string.h>
#a <ctype.h>
#d p char*
#d P ,(p)
#d T(E) !strcmp(E,"()")
#d U return
#d W while
#d X sbrk(199)
#d z atof
#d e isspace
#d D A(_)
#d E S(C(_))
#d B(y) p y(_)p _;{
#d G(y,V) B(y)p i;U sprintf(i=X,"%lf",z(E)V z(S(C(D)))),i;}p sbrk(),*S(),*j(),*O,*H;K,Y,M=14;double z();Q(_)p _;{int V=0;W(e(*_))_++;H=_;W(V|!(e
(*H)|*H==')'||(*H=='('&&H-_)))V+=(*H=='(')-(*H== ')'),H++;U H-_;}B(C)U _++,Y=Q(_),_=strncpy(X,_,Y),_[Y]=0,_;}B(A)_++,_+=Q(_);W(e(*_))_++;U O=X,*O='(',strcpy(
O+1,_),O;}B(Z)U _;}B(c)U C(E);}B(q)U A(E);}B(t)p i=E;U H=S(C (D)),sprintf(O=X,T(H)?"(%s)":"(%s %s",i,H+1),O;}B(F)U S(C(A(T(E)?D:_)));}L(i,s)p
i,*s;{U isdigit(*i)?z(i)!=z(s):strcmp(i,s);}B(b)U L(E,S(C(D)))?"()":"t";}B(R)U E;}B(o)U z(E)<z(S(C(D)))?"t":"()";}G(f,+)G(g,-)G(h,*)p r[4][2]={"function" P R,
"quote"P C,"lambda"P Z,"defun"P j};B(j)U r[M][1]=D,*r[M++]=C(_);}p not[99][2]={"if"P F,"equal"P b,"<"P o,"+"P f,"-"P g,"*"P h,"car"P c,"cdr"P q,
"cons"P t,"t","t"};B(S)int Li,s;p u;if(isdigit(*_)|T(_))U _;for(Y=M;Y--;)if(!strcmp(_,*r[Y]))U r[Y][1];u=E,_=D;if(*u-'(')U(*((p(*)())u))(_);s=Li=M;W(!T(_))r[M][1]=E,*r[M++]
="",_=D;O=C(u);W(!T(O))*r[Li++]=C(O),O=A(O);U O=S(C(A(u))),M=s,O;}main(){H=O=X,Y=0;W(Y|!e(K=getchar()))K==EOF?exit(0):0,Y+=(K=='(')-(K==')'),*H++=K;*H=0,puts(S(O))
,main();{printf("XLISP 4.0\n");}}

277 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 13:04:34 ]
call/ccが名前つきブロックにもなるletrecを内側に持つとgotoできるのか。
letrecをループに使うのは良くみかけるけどね。
(define (count-chars)
(letrec ((loop (lambda (ch count)
(if (eof-object? ch)
count
(loop (read-char) (+ count 1))))))
(loop (read-char) 0)))

278 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:30:36 ]
好みの問題ですけど
相互再帰じゃない場合はnamed letの方が見やすいですね。

279 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:02:33 ]
>>278
こんなとこで言ってないで国際会議の場でGuy Steeleに意見しろよ。

280 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 22:18:39 ]
先月caltechのカンファで直接言ったんだけど、Fortressの後始末でそれどころじゃないみたい。



281 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 22:29:13 ]
この間スペックが出たばかりなのに後始末って何するの?

282 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 23:06:44 ]
スペックが出ちゃえばあとは後始末だけだな

283 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 23:22:31 ]
Fortressの教科書書いてくれないのかな。

284 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:23:36 ]
>>280はオトコだが、>>279は根性無しの引きもりと言うことですね。


285 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:57:55 ]
>>284
顔真っ赤にして見苦しいよw

286 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 01:03:13 ]
>>283
Steele って教科書書いた事あるの?

287 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 01:19:35 ]
>>286
Cの本、Common Lispの本は?Javaのもあるし、もう1冊The High Performance Fortran Handbookもあるけど。
あと、本じゃないけどジャーゴンファイル。
PDFで結構いろいろなマニュアルも見つかる。
このスレでは "The History of Scheme" が有名かな。

絶対に外せないのがコレかな
ttp://dspace.mit.edu/bitstream/1721.1/5794/2/AIM-349.pdf

288 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 01:35:16 ]
サンクス。もっと入門的な書き物の事だと思ってた。
理論的なペーパーならここにあるのじゃダメかな。

research.sun.com/projects/plrg/Publications/index.html

289 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 01:50:15 ]
>>288
d。だめってことはないよ。こちらの勝手な希望なのでw
ttp://research.sun.com/projects/plrg/Publications/linuxMagazine.pdf
こんな感じで200〜400ページぐらいの分量があると全貌が見えるからいいかなと。
Guy Steeleはマニュアル書くと面白い例を出してくれるから期待したいな。
Cの本なんてすごく良かったのに和訳が絶版になって残念だなぁと思う。

290 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 02:55:58 ]
>>285が痛すぎる件について。

まぁ不問にしてやろうw




291 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 05:11:11 ]
くだらないやりとり引っ張る奴が一番見苦しい

292 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 09:08:32 ]
本当に「この話題を引っ張って欲しくない」人は、見苦しいとか煽って余計終わりにくくしたりしません。

ま、勢いで書き残しちゃった自分の痛いレスに触れて欲しくない>>285が、正論のフリして終結を促したものの、
自意識が邪魔してつい余計な「反撃」をしちゃって、終わらせることにも第三者のフリにも失敗、というとこでしょうかw

293 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 10:23:26 ]
>>286
ない。

294 名前:デフォルトの名無しさん [2008/06/03(火) 10:24:15 ]
AI MEMO は Lambda the Ultimate シリーズもだな

295 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 18:30:30 ]
ttp://library.readscheme.org/page1.html

296 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 20:31:19 ]
parser generator を探してみた。さすがは実験言語。ぞろぞろ出てきますw

ttp://www.iro.umontreal.ca/~boucherd/Lalr/documentation/lalr.html
ttp://www.informatik.uni-freiburg.de/proglang/software/essence/
ttp://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/scheme/code/parsing/taurus/0.html

297 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 20:35:32 ]
>>292
おまえ等クダスレ逝って喧嘩しろ。邪魔。

298 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 20:40:48 ]
>>296こんなのあるYO!
ttp://www.cs.indiana.edu/scheme-repository/code.lang.html

299 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 20:50:11 ]
>>296
エッセンスが好き。

300 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 21:03:09 ]
遺伝的プログラミング
ttp://codepad.org/bnZP9J3Y



301 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 21:07:21 ]
essenceってLL(1)のSLLGENと比べて敷居が高そうw
そんなこと無さ気に書いてあるけどさw

302 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 21:09:05 ]
>>298
激しくd。凄いね。

303 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 21:41:37 ]
>>301
使うの簡単だよ。
開発は大変だったろうけど。
汎用のパーザの部分計算でパーザを生成するから。

304 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 21:41:58 ]
>>300
なんじゃそりゃ!
(define (equ x) (* 2 (^ x 4)))
という式の微分を求めてるらしいけど。普通の記号処理と違うのに
(* 8 (^ x 3))
と同じ式がちゃんと求まってるw

305 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 22:14:37 ]
>>300,>>304
ttp://www.genetic-programming.org/gplittlelisp.html

306 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 22:17:13 ]
遺伝的プログラミングで最適化したコードを吐くパーザとかw

307 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 22:32:33 ]
essenceはScheme48用のpggというProgram Generator Generatorを使うのね。
作られたessenceはProgram Generatorなんだから、できたスキームはプログラムなわけ。
でもスキーム用のpggというProgram Generator Generatorを使うと・・・

308 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 22:55:01 ]
>>297
本当にそう思ってる人は、
(ごく一部の、目的の為に衝動を抑えるという人類なら大抵できることができないクズを除いて)
そういう喧嘩腰の追っ払い方を試みません。バレバレですw

309 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 22:56:11 ]
>>307
その再帰の不動点プログラムはいったいなんなんだ。

310 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 23:05:10 ]
遺伝的プログラミングで関数が収束しているのは一様収束?



311 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 23:10:05 ]
>>309
Schemeなんじゃないかな。

312 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 23:26:01 ]
初めてYコンビネータとかambとかGPを見たとき魔法を使ってるみたいだって思った。

313 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 00:08:36 ]
>>308
本当にそう思っている人も居るからそろそろ察してね。

314 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 17:58:16 ]
>>309
不動点として処理系を求めることなんてできるのかな?

>>310
世代を増やしてやれば一様収束に近いかな?
世代数より、使える要素の数に対する候補数や木構造の複雑さの許容範囲の方が
解に対して大きく影響を与えるようだよ。
その辺のパラメータを上手に与えないとGPが正しい解を返してくれない。
理論的なことはよくわからないんだけど。

315 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:28:22 ]
>>312
GPは未だに魔法みたいに見える
Yコンビネータとambは解説読むと目から鱗だった(ガッテンボタンいっぱい押す感じ)



316 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:56:57 ]

∩ヘ〜

317 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:07:13 ]
best score of generationが0.001以下なら安心できる解が得られてるというのを目安に使ってる。
理屈抜きにw

318 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:32:08 ]
ttp://codepad.org/P0lz91lS
この例だと3番目で0.001以下なので正しいと考える。
伊庭研HPにもそう書いてあるw

319 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:42:20 ]
試しにcos x の微分を解かせてみた。一発回答だった。スゲーw
ttp://codepad.org/1fI1ZtGU

320 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 02:17:01 ]
GPってなんすか?



321 名前:320 mailto:sage [2008/06/05(木) 02:18:48 ]
>>319を見て解決しました
> ; Genetic Programming with Scheme

322 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 08:19:19 ]
>>314
表示的意味論では、表示関数は不動点。

323 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 09:58:56 ]
GP=Graham,Paul

324 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 15:47:07 ]
Little Schemerって何が言いたいのかよくわからないところが多々あるのですが、
ものまね鳥やSICPやいろいろ読んだらありがたみがわかるようになるの?

325 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 16:51:54 ]
hogehoge schemerシリーズを買おうと思ったら
近くの本屋だとsicpとsimply schemeしか置いてねぇ・・・

326 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 16:54:50 ]
>>325
それだけ置いてありゃ立派なもんだよ

327 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 18:06:39 ]
>>325
都会はええのう。うちの近所じゃエクセル本しかないw

328 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 18:23:27 ]
>>324
シリーズ3冊読んで初めて意味がわかる。
微積とかの数学を知らない人向けのSICPだったのかと。
だから数学が得意な大学生は最初からSICPでいいと思う。
CSを専攻しようか迷ってるならシリーズ3冊を読んだ後ものまね鳥を読んでみると自分の適性が判断できるよ。

ありがたみっていう意味をどう使ってるかによるけど、CSとはどういうものかを知るという意味ではいい本。
何が言いたいのかわかるというのは、CSとはどんなことがらに興味の対象をもっている分野かを理解すること。
それがわからなくてもプログラムは作れる。
けど、バグが入りこまないような理論的裏づけとか、論理プログラミングが欲しいときがそのうちクルと思う。
そのときが来る前の先行投資と思えば安いもんだと思うよ。
悩んで考える時間は若いときにしか持ち得ないからガンガレ。


329 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 20:12:01 ]
javascriptしかいじったことのないゆとりがSICP読んでるんですけど、
schemeは無名関数内で再帰呼び出しって出来ないんですか?

lambdaの中でそのlambdaを呼び出すみたいな。

javascriptだと
(function(x){return (x)?x+arguments.callee(x-1):0; })(10);
とかやって使うやつなんですけど…

高階演算のとこで使いたいんですが、調べてもうまく見つからなかったです。



330 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 20:22:55 ]
>>329

(((lambda (X)
((lambda (procedure)
(X (lambda (arg) ((procedure procedure) arg))))
(lambda (procedure)
(X (lambda (arg) ((procedure procedure) arg))))))
(lambda (func-arg)
(lambda (n)
(if (zero? n)
1
(* n (func-arg (- n 1)))))))
5)

Yコンビネータの雛形が内蔵されている階乗関数になってます。



331 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 20:23:00 ]
↑みたいなFAQネタ誰かまとめろ

332 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 20:29:38 ]
(((lambda (X)
((lambda (procedure)
(X (lambda (arg) ((procedure procedure) arg))))
(lambda (procedure)
(X (lambda (arg) ((procedure procedure) arg))))))
(lambda (func-arg)
(lambda (l)
(if (null? l)
'no-list
(if (null? (cdr l))
(car l)
(max (car l) (func-arg (cdr l))))))))
'(4 5 6 3 4 8 6 2))






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

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

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