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


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

Lisp Scheme Part26



1 名前:デフォルトの名無しさん mailto:sage [2009/04/24(金) 19:12:39 ]
※ ここはCommon Lisp、SchemeをはじめとするLisp族全般のスレです ※

■過去スレ
 Part25: ttp://pc12.2ch.net/test/read.cgi/tech/1231856193/
 Part24: ttp://pc11.2ch.net/test/read.cgi/tech/1224939205/
 Part23: ttp://pc11.2ch.net/test/read.cgi/tech/1215875388/
 Part22: ttp://pc11.2ch.net/test/read.cgi/tech/1211381920/
 Part21: ttp://pc11.2ch.net/test/read.cgi/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://pc11.2ch.net/test/read.cgi/tech/1151025773/
 Part14: ttp://pc11.2ch.net/test/read.cgi/tech/1132275726/
 Part13: ttp://pc11.2ch.net/test/read.cgi/tech/1115901841/
 Part12: ttp://pc11.2ch.net/test/read.cgi/tech/1100229366/
 Part11: ttp://pc11.2ch.net/test/read.cgi/tech/1091456033/
 Part10: ttp://pc11.2ch.net/test/read.cgi/tech/1075630259/
 Part09: ttp://pc11.2ch.net/test/read.cgi/tech/1069594582/
 Part08: ttp://pc5.2ch.net/tech/kako/1058/10582/1058263391.html
 Part07: ttp://pc5.2ch.net/tech/kako/1042/10421/1042167213.html
 Part06: ttp://pc3.2ch.net/tech/kako/1031/10315/1031560687.html
 Part05: ttp://pc3.2ch.net/tech/kako/1023/10230/1023091882.html
 Part04: ttp://pc.2ch.net/tech/kako/1016/10162/1016211619.html
 Part03: ttp://pc.2ch.net/tech/kako/1008/10082/1008220265.html
 Part02: ttp://pc.2ch.net/tech/kako/1002/10025/1002584344.html
 Part01: ttp://piza2.2ch.net/tech/kako/987/987169286.html

■テンプレート置き場
 ttp://wiki.fdiary.net/lisp/ (id:guest pass:cl)

237 名前:デフォルトの名無しさん [2009/05/09(土) 10:37:31 ]
プロジェクトオイラーって解き始めるとクセになるね。
Lisp以外では解く気が起きない問題も結構あるし
毛色の違う言語を2,3覚えた方が良いような気がしてきた。


238 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 11:00:53 ]
>>237
> 毛色の違う言語を2,3覚えた方が良いような気がしてきた。
これってどういうこと?
Lispじゃだめなん?

239 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 11:15:43 ]
project eulerと言えばhaskell

240 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 12:05:04 ]
>>235
CHICKEN は最近 Ver4 になって utf-8 デフォになったためか外部ライブラリ群再構築中
PLT は Ver4 として落ち着いてきたが互換性に難あり (デフォでは else 部なし if はエラー)
私的には Ypsilon あたりが高速かつクリーンで良さげな気がす
R5RS ならこんなのも
ttp://www.geocities.jp/bneck44/hS.htm

241 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 12:23:37 ]
しかしifがwhenを兼ねるというなら
mapがfor-eachを兼ねてもよさそうなものだが。

242 名前:デフォルトの名無しさん [2009/05/09(土) 12:44:02 ]
>>238
Lispがダメなんじゃなくて単に問題11はCの方が個人的に解きやすかっただけ。

プロジェクトオイラーの問題をいくつか解いたけど
解答はどこをみたらいいのかな?

解いたのはいいけど答えがあってるかどうかわからないので
悶悶としてきました。


243 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 12:51:49 ]
Project Euler のサイトで回答を入れればあってるかどうかわかる。
このスレには貼らないでね。趣味で遊んでるんで、回答とか貼られると萎える。

244 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 12:52:49 ]
>>242
ググると誰かの全問解答がみつかったかな
それか垢をつくると答えあわせができるんじゃないかな

垢つくつてログインまでしかしていないけど、なんかそんな感じだったよ

>問題11はCの方が個人的に解きやすかっただけ。
手続き型言語で解きたくなるけど、そこを我慢するのがLisper/schemmer

245 名前:235 mailto:sage [2009/05/09(土) 13:58:03 ]
>>236
>>240

ありがとうございます!
ご意見いただいた内容を意識してそれぞれ実際に触ってみたいと思います。




246 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 18:49:08 ]
Win版は使った事が無いのだけれど
入門用には完成度の高いScheme48もオススメ
R5RSに最も忠実な処理系だと思う
もちろん独自の拡張も充実してる
R6RS対応版であろう次期リリースが早くでないかとwktkして毎日のようにリポジトリを覗いてる

247 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 20:00:39 ]
>>216
俺もよく理解してないんだが
関数の返り値に クォート付けたリストを渡すと
呼び出し元で書き換えられる可能性があるからまずいらしい。
list で作ったリストを返したほうがいいらしい。

詳しくは On Lisp に書いてある。
www.komaba.utmc.or.jp/~flatline/onlispjhtml/functionalProgramming.html
これの GOODNESS で検索した辺りに書いてある。
CommonLisp だが Schemeも変わらないよね?

248 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 21:28:31 ]
> (quote (quote (1 2 3)))
'(1 2 3)

> (list (quote (quote (1 2 3))))
('(1 2 3))

> (' (quote (1 2 3)))
*** ERROR

249 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 22:07:13 ]
チャイティンのLispだと'はQUOTEの別名扱い
(' (1 2 3)) ≡ (QUOTE (1 2 3))

250 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 22:19:35 ]
(' (1 2 3))だとエラーになるね。Gauche。

251 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 22:27:01 ]
>>235
日本語資料が一番充実してるのは Gauche だけど、Win ではちょっと不安定かも
あと、Common Lisp 寄りでときどき Scheme らしからぬとも評されたり
仕様に一番網羅的なのはおそらく Larceny で IEEE/ANSI から R6RS まで対応
事実上のリファレンス実装と言われることもあるらし

252 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 22:35:08 ]
' は (quote) だから ((quote (quote (1 2 3)))) の意味になる

253 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 22:39:17 ]
gosh> ((quote (quote (1 2 3))))
*** ERROR: invalid application: ('(1 2 3))
Stack Trace:
_______________________________________
gosh>

254 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 22:47:48 ]
MzScheme 様と Ypsilon 様は car が手続きじゃねえとお怒りです

255 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 23:02:44 ]
だーかーらー!チャイティンのLispだと言っているでしょうがぁ
CLならリードマクロテーブルをいじって通せるかもしれないけど
Schemeは規格の上では通らない



256 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 23:27:40 ]
>>248から先は何の話をしているのだ?

257 名前:デフォルトの名無しさん mailto:sage [2009/05/09(土) 23:36:51 ]
S式に執着しなければ楽になれるのに。
syntax-rulesは良いね。consもquoteもmapcarもいらないから。

258 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 11:49:03 ]
手続き名をかっこの外に出す方式は無引数の場合が大変そう

259 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 16:38:29 ]
すべての関数は引数はひとつだけリストで渡します

260 名前:デフォルトの名無しさん mailto:sage [2009/05/10(日) 17:05:59 ]
lispからcへの可読な変換をしてくれるソフトないのでしょうか?


261 名前:247 mailto:sage [2009/05/10(日) 18:55:58 ]
>>216
同じようなの過去スレで見つけたよ。
LISP Scheme Part5
pc3.2ch.net/tech/kako/1023/10230/1023091882.html

98 名前: 93=95 投稿日: 02/06/17 10:43
>>96
もちろん、
(equal? '(a b c d) (list 'a 'b 'c 'd)) ==> #t
です。そういう意味では同じ。ただ、(list 'a 'b 'c 'd)は評価される
たびに新しいリストが作られることが保証されているのに対し、
'(a b c d)はコンパイラがあらかじめどっかにリストを作っておいて
そのポインタを返すだけ、とするかもしれない(処理系依存)。

(define (foo) (list 'a 'b 'c 'd))
(equal? (foo) (foo)) ==> #t
(eq? (foo) (foo)) ==> 常に#f

(define (foo) '(a b c d))
(eq? (foo) (foo)) ==> #tかもしれない

262 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 10:26:17 ]
ひょっとして漢字コードを半角文字とみたときに
"/"が入るような文字コードの文字は
処理できないのでしょうか?

2chのdatを読ませてるんだけど
AAがよくあるdatだと、読み込みでバグって止まる

263 名前:デフォルトの名無しさん mailto:sage [2009/05/11(月) 18:04:16 ]
マルチバイトまわりは処理系依存なのでその情報だけでは不足 (\ でなく / なら普通問題ないはず)
処理系と対象ファイルの文字コード、あとできれば止まる前後のエラーメッセージなどplz

264 名前:デフォルトの名無しさん [2009/05/12(火) 20:31:11 ]
www.lsharp.org/

l# だってさ

265 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 21:00:32 ]
.NETってどうなん?



266 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 21:39:02 ]
いいえ鉄です

267 名前:デフォルトの名無しさん mailto:sage [2009/05/12(火) 23:17:01 ]
>>265
死にました

268 名前:デフォルトの名無しさん [2009/05/12(火) 23:49:10 ]
>>264
.net系の net Scheme っての知らんの?

269 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 02:00:27 ]
そんなのあるの?

270 名前:デフォルトの名無しさん mailto:sage [2009/05/13(水) 12:34:20 ]
>>264
asdf-installでProgram Filesフォルダーにいろいろいれてくれたりするのかな

と思ったらdefineでもdefunでもなくdefなんだ

271 名前:デフォルトの名無しさん [2009/05/14(木) 11:00:47 ]
>>268
ironscheme.codeplex.com/
これのことか?

272 名前:デフォルトの名無しさん [2009/05/18(月) 00:22:56 ]
(define (fact n)
(if (zero? n)
1
(* n (fact (- n 1)))))
という風に記述できない理由は何なのでしょうか?
再帰てきにはこちらの方が自然な気がするのですが...
(Common Lispから来たのでSchemeとの違いにまだ戸惑っています。)



273 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 00:24:01 ]
何なの、と言われましても

274 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 00:27:07 ]
>>272
普通に評価できるけど何が問題なの?

275 名前:デフォルトの名無しさん [2009/05/18(月) 00:27:14 ]
いや、どうして動かないのか気になりまして...
展開できるような気がするのですが....
あと、この関数を定義して使うとそのまま、フリーズしてしまうのが
こまってしまって...



276 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 00:28:14 ]
>>275
処理系書いてよ.動かないほうが珍しいと思うけど

277 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 00:30:43 ]
最後のかっこが多い

278 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 00:31:43 ]
すまん別に多くないか

279 名前:275 [2009/05/18(月) 00:31:49 ]
あれ.....端末から直接goshを使ったら動きました....
Emacsのrun-schemeから使ったら突然フリーズしたので
動かないのかと思いまして.....
あと、立ち読み版Gaucheプログラミングでこのようなコードが
(define (fact n)
(define (fact-iter n ans)
(if (zero? n)
ans
(fact-iter (- n 1) (* n ans)))) ; 最後に自分自身を呼び出している
(fact-iter n 1))
出ているのですが、上のコードとこれの違いはどこらへんなのでしょうか?

280 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 00:35:47 ]
環境と処理系を書いてくれ。>>272でフリーズとか意味わからん。

281 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 00:42:14 ]
>>279
末尾再帰。

282 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 00:43:26 ]
もはや尋ね尽くされた質問だが,>>272が非末尾再帰呼び出しであるのに対し
>>279は末尾再帰呼び出しになっている.>>272が「非」末尾再帰なのは
再帰呼び出し(fact (- n 1))の結果にさらにnを掛ける処理を行っているから.

283 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 00:44:00 ]
リロードできてなかたorz
>>279
p56, 57あたり読んでみて。 って立ち読み版か。

284 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 14:41:59 ]
>>272は中間記法で書くと、
5*(4*(3*(2*(1*1))))って計算。
>>279は、
1*(2*(3*(4*(5*1))))
なので、整数で交換律と推移律が成立するから同じ関数になる。
推移律だけで成立するような定義域の場合、(例えば文字列連結)

(define (fact n)
(define (fact-iter n acu)
(if (zero? n)
(* acu 1)
(fact-iter (- n 1) (* acu n))))
(if (zero? n) 1
(fact-iter (- n 1) n)))

末尾再帰はこんな形。
;; 文字列版
(define (fact n)
(define (fact-iter n acu)
(if (zero? n)
(string-append acu "*1")
(fact-iter (- n 1) (string-append "(" acu ")*" (number->string n)))))
(fact-iter (- n 1) (number->string n)))


285 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 16:08:41 ]
common lispからpythonの機能をいろいろ使えるようにpython-on-lispを拡張してみました

d.hatena.ne.jp/niitsuma/20080328/1242595074

使い方の例

$clisp
(asdf:operate 'asdf:load-op :pythononlisp)
(py::py "print \"Hello from python\"")

(py::pyj "pylab.plot" '(1 2 3 4) '(4 3 2 1))
(py::py "pylab.show()") ;グラフの表示

(print (py::pyj "len" (list 1 5 6 ) ) ) ;3
(print (py::pyj "range" 2 7)) ;(2 3 4 5 6)
(py::setvalj "a" (list 2 3 4)) ;lispのデータをpythonの変数aに代入
(py::py "print a") ;[2, 3, 4] ;ちゃんと代入されてるか確認
(print (py::getvalj "a")) ;(2 3 4) ;pythonの変数aをlispのデータとして返す

(py::pyj "numpy.reshape" (list 1 2 3 4 5 6 ) (list 2 3)) ; -> ((1 2 3) (4 5 6))
(py::pyj "numpy.dot" '((1 2) (3 4)) '((1 2) (3 4)) ) ; -> ((7 10) (15 22)) ;行列の積




286 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 16:57:11 ]
py::pyってのがエロイ。

287 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 19:51:17 ]
中学生かおまえは

288 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 20:47:32 ]
(. (.
X
Y

289 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 21:07:45 ]
{ {
x
Y
Cだと乳首が立つ。これが文化の違いってやつだな!

290 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 21:10:10 ]
>>289
乳首は立ってるだろうがペチャパイに見える


291 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 21:18:08 ]
貧乳乳首萌え…ないな

292 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 21:34:57 ]
<<
x
Y
なぜか「C++」までエロく見えてくる

293 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 21:38:04 ]
この期に及んでも括弧の話とは恐れ入った。

294 名前:デフォルトの名無しさん mailto:sage [2009/05/18(月) 21:40:47 ]
>>292
上手いなw

295 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 09:09:18 ]
う、いかん、想像してしまった・・・
もう"Y Combinator"とか恥ずかしくて女の子に言えない orz



296 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 11:45:03 ]
Swankとは何なのですか?

297 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 12:18:17 ]
λ. λ.
X
Y

298 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 12:23:06 ]
>>296
SLIMEに附属する、lispのrepl環境をサーバ(デーモン)するプログラムのこと
これを使うことで複数の処理系のrepl環境を同時に使ったり、
リモートで立ち上げた環境を使うことができる

職安| λ…

299 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 15:20:57 ]
>>298
ありがとう。
λ・・・SLIMEも良くわかってない俺orz
Swank-Gaucheというプログラムを公開してる人のブログを見つけたのですが、
初心者では使う必要もないでしょうね?

300 名前:デフォルトの名無しさん mailto:sage [2009/05/19(火) 21:39:47 ]
すげー便利だから頑張って入れてみれ

301 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 19:04:30 ]
WindowsでGauche-BoxなんだけどSwank

302 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 19:40:03 ]
入れれば幸せになれるかな。

303 名前:デフォルトの名無しさん mailto:sage [2009/05/20(水) 22:38:30 ]
Emacs難しいなぁ・・・orz
invalid escape characterがパスのバックスラッシュだとわかるのに小一時間。
それからslime本体が必要だと理解するのに30分wwww
やっとslime-2009-05-20というのを入れたら、

> An error has occurred while loading `c:/Program Files/Gauchebox/Meadow/.emacs':
>
> Symbol's value as variable is void: slime-lisp-modes

そんなこと.emacsに書いてないんですけど…orz

今日はこの辺で勘弁してやる(TωT)

304 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 00:28:30 ]
Meadow + Slime は微妙らしい
ttp://www.lingr.com/room/common-lisp-jp/archives/2008/09/20
最後の 1/4 あたりまたは "Meadow+SLIME" 検索で

305 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 00:51:07 ]
ありがとうございます。ただ自分が頭悪いだけかと思ってました(*^ω^*)



306 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 01:52:09 ]
プログラマにしては表情豊かだな。
Lispをやると笑顔になるってか?

307 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 02:02:20 ]
\(^o^)/

308 名前:デフォルトの名無しさん mailto:sage [2009/05/21(木) 02:08:48 ]
中村正三郎 乙

309 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 09:13:05 ]
人居ないと思ったらリンガーに行ったのか。

310 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 14:33:04 ]
ひょっとしてmaximaスレも他に移動してるのか

311 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 16:07:40 ]
ん? Lingrはとっくに終了したはずだが...

312 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 16:23:46 ]
いつからみんな、そんなに長崎ちゃんぽんが好きになったんだ……。

313 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 17:02:41 ]
IRCでいいじゃない

314 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 20:42:38 ]
>>310
そういうスレッドは他では下しか知らない。

最強!!数学ソフトウェア(maple, mathcad etc)
science6.2ch.net/test/read.cgi/math/1051275230/

315 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:09:48 ]
何で Scheme って評価順が未定義なんですか?
左からで何の不満もないと思うのですが。



316 名前:デフォルトの名無しさん mailto:sage [2009/05/22(金) 23:15:44 ]
自由度があった方が最適化に都合がいいんじゃないかな。

たしかCも引数を評価する順序は決まってないんだよね。以前、仕事で
扱ったコードに評価順序を暗に決めてしまってたいたものがあって、
コンパイラのバージョンアップで評価順序が変わって動かなくなって
しまったことがある。つかそのデバッグをやらされた。

317 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 00:18:50 ]
>>316

遅延評価を積極的に持ち込むための布石として順序を未定
にしたんだと思ってた

処理系作る側から見れば, 引数をスタックに積む順番考えると
右側から評価するのが楽っちゃ楽だわな


318 名前:デフォルトの名無しさん mailto:save [2009/05/23(土) 05:46:55 ]
>>317
右からが楽になるのは、不定長引数で引数の数を知らなくてもcalleeが
スタックトップからのオフセットでn番目の引数にアクセスできるからじゃない?
引数の数が固定、もしくは引数の数も一緒に渡す場合は右からでも左からでも
変わらないでしょう。
Schemeの場合、左から評価して積んどいた方がrest引数をリストに畳む操作は楽。


319 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 06:51:55 ]
ところでなんでSchemeって
(f . x) で (apply f x) と同じ意味にしなかったの?

320 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 06:56:43 ]
わかりました
(f x y) は (f . (x y)) だからですね
ごめんなさい帰ります

321 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 07:17:50 ]
(^o^)ノシ

322 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 18:00:32 ]
練習でβ変換のプログラムを書いてるのですが質問
最左最内簡約の場合
((lambda (x) (lambda (y) y) x) (lambda (z) z))を1段階簡約すると
((lambda (y) y) (lambda (z) z))ではなく
((lambda (x) x) (lambda (z) z))ですよね?

323 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 18:24:13 ]
> ((lambda (y) y) (lambda (z) z))ではなく
> ((lambda (x) x) (lambda (z) z))
この二つを区別する必要はあるの?

324 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 18:36:02 ]
>>322
最左最内だと、まず(lambda (y) y) xここからだから正しい。
>>323
ウゼエ

325 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 18:54:07 ]
つーか最初の式内の(lambda (y) y)は何の意味もないだろ
ほんとに意味わかってやってんのか



326 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 18:54:58 ]
( ゚д゚)ポカーン

327 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 19:09:35 ]
gosh> ((lambda (y) y) 1)
1

328 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 19:12:20 ]
>>324
ありがとうございます。
用語が色々ありすぎて自身無かったので助かりました。

>>327 クマー

329 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 19:14:29 ]
で、2段階目はどうすんの?

330 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 19:44:50 ]
>>322
((lambda (x) (lambda (y) y) x) (lambda (z) z))

((lambda (x) ((lambda (y) y) x)) (lambda (z) z))
のコピペ誤り?

331 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 20:05:50 ]
>>330 コピペミスですね、すみません

さらに質問
以下の名古屋大の資料にはcall-by-valueは最右最内戦略に相当すると書いてあり
 ttp://www.math.nagoya-u.ac.jp/~garrigue/lecture/2007_SS/syntax.pdf
以下の早稲田大の資料にはcall-by-avlueは作用的順序簡約戦略に近いと書いてある
 ttp://www.fuka.info.waseda.ac.jp/~onono/ProgLang/charts/pl2007-CS-09-LambdaCalculus.pdf
以下のサイトには作用順序簡約は最左最内簡約とも呼ばれると書いてある
 ttp://www.geocities.jp/lethevert/clean/gettingStarted14.html

となると、実際の所call-by-valueは最左最内戦略と最右最内戦略のどちらに相当するのでしょう?
直感的には最右最内に近いように思うのですが

また、類推からちょっと考えてみたのですが
最右最外簡約(あまり聞いたことがないが)と最左最外簡約というのは
同じ物ですよね。そういう用語があるかは別として


332 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 20:25:39 ]
普通値呼びは最左最内簡約だと思う
自分の不勉強なだけかもしれないけど最右最内簡約って聞いた事無い
カリー化のこともあるし右の項から簡約ってできるのかな?

333 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 20:29:00 ]
三行目は「できるのかなぁ?(できない気がする)」って意味ね


334 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 21:17:08 ]
右の項からの簡約も出来ると思いますよ

木構造のpre/in/post orderよろしく、以下の式には
((lambda (l) (l ((lambda (l1) l1) (lambda (l2) l2)))) ((lambda (r) r) (lambda (r1) r1)))
;最左最内
((lambda (l) (l (lambda (l2) l2))) ((lambda (r) r) (lambda (r1) r1)))
;最左最外
(((lambda (r) r) (lambda (r1) r1)) ((lambda (l1) l1) (lambda (l2) l2)))
;最右最内
((lambda (l) (l ((lambda (l1) l1) (lambda (l2) l2)))) (lambda (r1) r1))
の3パターン


335 名前:デフォルトの名無しさん mailto:sage [2009/05/23(土) 21:36:19 ]
そうか、ボケてた
β基の簡約手段自体は変わらないんだった
右の方のβ基から簡約するようにするだけだからあり得る話だ
関数適用の結合を右結合にするのと勘違いしてた



336 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 00:33:52 ]
I = λx. x として

I (I y (I y)) でテストすれば4パターン全部わかる。

337 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 01:45:16 ]
ここってDrSchemeも扱ってますか?
大学で使ってるんですが実行画面のキャプチャが出来なくて困ってます。OSはwindowsです。






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

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

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