Lisp Scheme Part41 (855レス)
上下前次1-新
769: 07/09(水)18:36 ID:CwmzIZ1x(1) AAS
自分で処理系書いてから言え
770(1): 07/09(水)19:18 ID:eQ8lOX87(3/4) AAS
>>765
少なくともLISP界隈では発明では全くないからHaskell, OCaml, コンパイラの最適化方面のスレで展開してみたら?
A正規化あたりと絡めて展開すればよりアカデミックなやりとりが期待できるのでは?
771: 07/09(水)19:46 ID:QwaFNVYh(8/8) AAS
map系の関数にラムダ式を渡したら、それがインライン展開されてコンパイルされるのは、最近の言語では当然の様にやってる
772(2): 07/09(水)22:06 ID:cmuoaTCa(9/10) AAS
>>770
letでローカル変数3つ確保しましたって時に
実際には内部でlambdaが呼ばれてるわけだろ?
この時にlambdaをインライン展開したら
オペランドスタックと返り値スタックが省かれて
変数スタックだけになって制御構造と同じコストになるだろ?
これは大きな最適化なんだよ
773(1): はちみつ餃子 ◆8X2XSCHEME 07/09(水)22:54 ID:ZKntcAAj(7/7) AAS
>>772
let が lambda に展開される (させる) 例が仕様に書いてあるのはあくまでも挙動の説明に過ぎず、多くのリッチな処理系ではそんな展開はしない。
774(1): 07/09(水)23:21 ID:cmuoaTCa(10/10) AAS
>>773
リッチでない処理系がこの最適化ひとつでリッチ同然になる
775: 07/09(水)23:40 ID:eQ8lOX87(4/4) AAS
テム・レイ最適化って呼ばせてほしい
776: 07/09(水)23:41 ID:QSSrKuoD(1) AAS
おかしな人が居ると捗るよね。でもまともなこと言ってる人もだんだんおかしなことをいいだして、実はおかしな人しかいなかったと気づかされる。
777: 07/10(木)00:52 ID:nn3AKhN3(1) AAS
(macroexpand '(let ((a 1) (b a) (c b)) c)) ;=>((lambda (a b c) c) 1 a b)
(macroexpand '(let* ((a 1) (b a) (c b)) c)) ;=>((lambda (a) ((lambda (b) ((lambda (c) c) b)) a)) 1)
(macroexpand '(letrec ((a 1) (b a) (c b)) c)) ;=>((lambda (a b c) (set! a 1) (set! b a) (set! c b) c) '() '() '())
あいあい いいいい 飛ばして えいえい おいおい 戻して うーいうい
778: 07/10(木)01:03 ID:qcnALR7R(1) AAS
>>772
そこに興味あるなら、この後CPS変換を調べるといいよ
その後関数をジェネレーターに変換して、yieldに対応出来たら一人前だよw
更にその後はAsync/Awaitが待っている
779(1): はちみつ餃子 ◆8X2XSCHEME 07/10(木)07:45 ID:UMLMi9p2(1/2) AAS
>>774
let は 常に lambda に展開せねばならず、引数の受け渡しはスタックを使うことという制約を入れて最適化の邪魔をしてまでひとつの最適化を入れる?
馬鹿馬鹿しい。
780: 07/10(木)09:58 ID:yFw8mCQ1(1/2) AAS
>>779
「論外。終わり。」じゃなかったんですか?
対話不可能でしょこれは
781(1): はちみつ餃子 ◆8X2XSCHEME 07/10(木)10:05 ID:UMLMi9p2(2/2) AAS
放置しても延々と書き込み続けるタイプだと思う
782: 07/10(木)19:24 ID:yFw8mCQ1(2/2) AAS
>>781
じゃあNG入れとけばいいでしょうが
何年5chやってんの
783: 07/10(木)23:08 ID:RcjFMSaB(1) AAS
bignumを廃止してint64を基本にしようとか、いまさらC言語の変数のregister宣言を再発明して画期的だといってるようなもんだろ
こういうのが生成AIでブーストされる世の中になったかと思うとそら恐しいわ
784: 07/12(土)11:00 ID:Q8STCu4g(1) AAS
ほんそれ
785: 07/12(土)21:28 ID:JuZx4722(1) AAS
つまりGaucheを仕様にしてR7RSを実装にすればぼくだつていばれる
786: 07/13(日)05:20 ID:5bgAV9JM(1/5) AAS
ぶっちゃけ「まだ(制御構造相当へと)最適化されていないlambdaもしかるべく最適化されます」であかんの?
787: 07/13(日)05:22 ID:5bgAV9JM(2/5) AAS
lambdaというかlambdaの返すクロージャのインライン最適化だな
788: 07/13(日)05:35 ID:5bgAV9JM(3/5) AAS
あとAI云々に関しては「一線だとこんなもんです」としか言いようがない
俺はAIを数年前哲学板にペータテストスレが立った頃からいじってるけど
俺の問答はAIを作ってる会社的にもいい一次データになってる可能性があります
あと、論文は近い将来のAIの吐く洗練された論文と比べて原始的になる可能性もあります
789(1): 07/13(日)05:52 ID:5bgAV9JM(4/5) AAS
ユーザーがマクロとかで勝手に書いた
どこの馬の骨みたいな制御構造でも
最適化されるんですよ
790(1): 07/13(日)08:07 ID:lgLjhFXd(1) AAS
>>789
ふつうそうなるだろ。マクロにしたら最適化かからないなんて面倒で非効率なことしない。
791(1): 07/13(日)11:38 ID:5bgAV9JM(5/5) AAS
>>790
ユーザーがマクロで書いたmy-letが
処理系実装者のチューンしたletと同じになるのがふつうなの?
俺のはかなり近くなるけど
792: 07/13(日)12:26 ID:tfWATuEI(1) AAS
Racket は、やらないの?
793(1): 07/13(日)23:42 ID:2niGmUKn(1/2) AAS
はちみつがすでに指摘してることを延々とくりかえすのはスレの住人の大半が理解できてないってことか?
794(1): 07/13(日)23:50 ID:2niGmUKn(2/2) AAS
AIくんが教師なし学習でLispの最適化を発明したと主張してきたので新規性がないし既存の手法で実現されてると指摘したら教師なし学習なので新規性なんか知らないし教師なし学習としては凄くないですか?といいはじめる
五年ほど前までこういうAIエンジニア多かったな今どこいったんだろ
795: 07/14(月)04:03 ID:H42iB8O8(1) AAS
>>794
お前なんかがこのスレの何がいいんだ?
796(2): 07/14(月)10:05 ID:SvqlBNnt(1) AAS
>>791
ごめんなさい、もちろんふつうじゃありません。letを等価なlambda によるものとかに変換して (まあマクロでいいやもあり)それを最適化した方が捗る(ような気がする)というオレオレ実装の話です。
797: 07/14(月)10:15 ID:yq/UCo3U(1) AAS
>>793
はちみつをNGにしてる人かもしれないね
798: 07/14(月)20:30 ID:778hTmQY(1) AAS
lambdaの返す関数オブジェクトのたどる運命は大体3通り
(1) シンボルにバインドされて普通の名前付き関数になる
(2) 高階関数に引数として渡される
(3) ファーストラムダとして即座に呼び出される
上下前次1-新書関写板覧索設栞歴
あと 57 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.018s