Common Lisp、SchemeをはじめとするLisp族全般のスレです
■前スレ
Lisp Scheme Part40
http://mevius.5ch.net/test/read.cgi/tech/1426481152/
■テンプレ
ttp://wiki.fdiary.net/lisp/
■関連スレ
【Lisp】プログラミング言語 Clojure #4【JVM】 [無断転載禁止]©2ch.net
http://mevius.5ch.net/test/read.cgi/tech/1483498849/
【GNU】スクリプト言語 Guile【scheme】
http://mevius.5ch.net/test/read.cgi/tech/1239985829/
【入門】Common Lisp その11【質問よろず】
http://peace.2ch.net/test/read.cgi/tech/1411307361/
【Scheme】Schemeインタプリタ Mosh Part1【Lisp】
http://peace.2ch.net/test/read.cgi/tech/1272469779/
【魔法】リリカル☆Lisp【言語】
http://peace.2ch.net/test/read.cgi/tech/1183396621/
Lisp@UNIX版
http://mevius.5ch.net/test/read.cgi/unix/1019926525/
Lisp Scheme Part41
2018/07/15(日) 02:05:28.62ID:oGr67yTf
671デフォルトの名無しさん
2024/04/15(月) 03:45:37.49ID:KXqIDgH/ Cバックエンドで配列のviewをサポートしてるなら究極的には言語/処理系ではアルゴリズム瑕疵が無い限り有意な差はないよ
ただし最速言語Fortranを半分程度使うNumpyにも優位性はある
gccはじめ同じILにコンパイルされても配列多様コードでにおいてCより数倍は速い
ただしNumpyは書き方に細心の注意をしないとユーザの預かり知らぬ所で勝手にディープコピーする大きな罠も
そうした不透明性が嫌い
明示できるCLのFortran実装を待ち望む
ただし最速言語Fortranを半分程度使うNumpyにも優位性はある
gccはじめ同じILにコンパイルされても配列多様コードでにおいてCより数倍は速い
ただしNumpyは書き方に細心の注意をしないとユーザの預かり知らぬ所で勝手にディープコピーする大きな罠も
そうした不透明性が嫌い
明示できるCLのFortran実装を待ち望む
672デフォルトの名無しさん
2024/04/15(月) 03:58:24.79ID:TPgVCyAO >>671
clの明示性といえば、:rehash-size :rehash-threshold等で個々のハッシュテーブルまでチューンできるのがいいね
配列なんかよりハッシュテーブルの方がリハッシュコストが遥かに高い
動的言語のリハッシュは知る限り全部処理系任せか、サポートしていてもインタプリタのコマンドラインオプションで一律にしか変えられない
clの明示性といえば、:rehash-size :rehash-threshold等で個々のハッシュテーブルまでチューンできるのがいいね
配列なんかよりハッシュテーブルの方がリハッシュコストが遥かに高い
動的言語のリハッシュは知る限り全部処理系任せか、サポートしていてもインタプリタのコマンドラインオプションで一律にしか変えられない
673デフォルトの名無しさん
2024/04/15(月) 06:50:07.08ID:DfbFoW6K >>671
>ただし最速言語Fortranを半分程度使うNumpyにも優位性はある
>gccはじめ同じILにコンパイルされても配列多様コードでにおいてCより数倍は速い
この部分、Fortranで配列多用したらCより数倍速い的な意見なのかな?
1ミリも分からんので、詳細求む
>ただし最速言語Fortranを半分程度使うNumpyにも優位性はある
>gccはじめ同じILにコンパイルされても配列多様コードでにおいてCより数倍は速い
この部分、Fortranで配列多用したらCより数倍速い的な意見なのかな?
1ミリも分からんので、詳細求む
674デフォルトの名無しさん
2024/04/15(月) 11:04:34.92ID:SeS0dYr5 >>671
言語/処理系で有意な差はないと言ってるのに、Cより数倍も速いって、矛盾してるぞw
言語/処理系で有意な差はないと言ってるのに、Cより数倍も速いって、矛盾してるぞw
675デフォルトの名無しさん
2024/04/15(月) 11:32:59.07ID:dChAXctC676デフォルトの名無しさん
2024/04/15(月) 11:39:03.37ID:L/ePcET8 中間言語が同じならコーディングの瑕疵は人間工学的な問題
Cは宣言が貧弱でin/out、純粋関数、エイリアスの有無は推論頼りだから失敗すれば死ぬ
ただ最近はrestrict宣言付けて回るなら重なるか推論不能な配列のエイリアス有無も指定可、難解だけど
一方で参照渡しのFortranはtaraiベンチで推論失敗すればデリファレンス地獄で死ぬわけだけど、これ解消する宣言あったっけ?
むしろ宣言無しのナイーブなコーディングなら数倍どころでは済まんよ
ランタイムの重いclは比類なき宣言の豊富さで静的言語にまで迫ろうと頑張ってるわけで
Cは宣言が貧弱でin/out、純粋関数、エイリアスの有無は推論頼りだから失敗すれば死ぬ
ただ最近はrestrict宣言付けて回るなら重なるか推論不能な配列のエイリアス有無も指定可、難解だけど
一方で参照渡しのFortranはtaraiベンチで推論失敗すればデリファレンス地獄で死ぬわけだけど、これ解消する宣言あったっけ?
むしろ宣言無しのナイーブなコーディングなら数倍どころでは済まんよ
ランタイムの重いclは比類なき宣言の豊富さで静的言語にまで迫ろうと頑張ってるわけで
677デフォルトの名無しさん
2024/04/15(月) 11:50:11.63ID:L/ePcET8 パフォーマンス志向でarrayとdeclareまみれのclはlispっぽさが失われるのがつらい
何でも出来るのだと前向きに考えてゆきたい…
何でも出来るのだと前向きに考えてゆきたい…
678デフォルトの名無しさん
2024/04/15(月) 11:53:02.96ID:xx2br7bI679デフォルトの名無しさん
2024/04/15(月) 13:00:49.14ID:h9iqzVMR ゆる「コンピュータ科学」ラジオなので、集合論でもいいだろw
マウントしないと気が済まんのか
マウントしないと気が済まんのか
680デフォルトの名無しさん
2024/04/15(月) 13:15:54.71ID:WhsyARtf どのレスがマウントに見えたのか知らんけど
集合論なんてAppendixか記号一覧でサラッと確認して本題を進めるのに
集合論のブルーバックスを読んでシッタカウンチクを語る方がマウントに近い行為だと思うけどw
まさか公理的集合論とその形式的手法をガッツリやるのかな
集合論なんてAppendixか記号一覧でサラッと確認して本題を進めるのに
集合論のブルーバックスを読んでシッタカウンチクを語る方がマウントに近い行為だと思うけどw
まさか公理的集合論とその形式的手法をガッツリやるのかな
681デフォルトの名無しさん
2024/04/15(月) 13:20:30.61ID:WhsyARtf そんな訳ないかw
単純に集合論とか圏論は逃げ
(研究者じゃない限り)コンピュータ科学は実践を伴ってナンボの世界なわけで
そこのレベル低そうな人にウンチク唱えられても何か可哀そうで娯楽にすらならん
単純に集合論とか圏論は逃げ
(研究者じゃない限り)コンピュータ科学は実践を伴ってナンボの世界なわけで
そこのレベル低そうな人にウンチク唱えられても何か可哀そうで娯楽にすらならん
682デフォルトの名無しさん
2024/04/15(月) 13:42:47.75ID:h9iqzVMR 痛い人だw
683デフォルトの名無しさん
2024/04/15(月) 15:03:16.41ID:AVuQkQ2W 痛レス追加w
プログラミングにおいては、学問的基礎はそこそこにしてドンドン先に進んだもん勝ちなのよね
学習の初期段階から集合論(動画内ではタイプ理論も)に油売ってたら(逃げを通り越して)脱落かと
ユーチューバーが視聴数稼ぎの為に手を出してるのを差し引かないとね、初学者が真似したら破滅
みんな母国語を話せるでしょ?言語学なんて知らなくてもw
プログラミングにおいては、学問的基礎はそこそこにしてドンドン先に進んだもん勝ちなのよね
学習の初期段階から集合論(動画内ではタイプ理論も)に油売ってたら(逃げを通り越して)脱落かと
ユーチューバーが視聴数稼ぎの為に手を出してるのを差し引かないとね、初学者が真似したら破滅
みんな母国語を話せるでしょ?言語学なんて知らなくてもw
684デフォルトの名無しさん
2024/04/15(月) 15:11:29.44ID:oyztWlKb 逆に数学ちゃんとやらないからLispでつまづいてイライラするんだろうな
そういう奴は20年後も進歩してないと思う(俺のことだが)
そういう奴は20年後も進歩してないと思う(俺のことだが)
685デフォルトの名無しさん
2024/04/15(月) 17:04:25.48ID:BU/Fumer でもまぁ左は慶応情報工学、右は数学が得意と言ってるし集合論は楽しみではあるな(他意は無い)
686デフォルトの名無しさん
2024/04/15(月) 17:51:51.96ID:lxkYY0z4 集合論もゲーデルもコンビネーター理論も入門レベルは理解したい
と思い続けて10年w
と思い続けて10年w
687デフォルトの名無しさん
2024/04/15(月) 17:53:00.51ID:lxkYY0z4 そんなことよりCentOS8入れてみたらGuileもEmacsも入ってなくてブチ切れそうなんだけど
688デフォルトの名無しさん
2024/04/15(月) 19:17:47.96ID:pFNJA2no Lispは母語じゃないからなぁ
689デフォルトの名無しさん
2024/04/16(火) 08:49:18.26ID:Fr3sHPgG >>686
Lisp本ではないが論理学の問題集みたいな一般向け書To Mock a Mockingbirdの後半がみっちりコンビネータ論理に充てられててオススメ
手計算させて解法と答えも章末に載ってて取っ付きやすい入門
そのままdefunしてアプリケーティブに動かしたり、簡約パーサも数個の基底コンビネータの書き換え規則をcondで振るだけの自明な10行
かなり遊べるおもちゃ
Lisp本ではないが論理学の問題集みたいな一般向け書To Mock a Mockingbirdの後半がみっちりコンビネータ論理に充てられててオススメ
手計算させて解法と答えも章末に載ってて取っ付きやすい入門
そのままdefunしてアプリケーティブに動かしたり、簡約パーサも数個の基底コンビネータの書き換え規則をcondで振るだけの自明な10行
かなり遊べるおもちゃ
690デフォルトの名無しさん
2024/04/16(火) 11:41:44.03ID:AOP5eUEV691デフォルトの名無しさん
2024/04/16(火) 12:46:54.23ID:9OjD0OW8 右の人、集合論を勉強すると見せかけてゲーデルエッシャーバッハを持って来ると期待してるw
692デフォルトの名無しさん
2024/04/16(火) 13:18:37.46ID:AOP5eUEV 左「やっぱりあなたLispやってますよね?」
693デフォルトの名無しさん
2024/04/16(火) 13:59:54.08ID:HsOietmi694デフォルトの名無しさん
2024/04/16(火) 16:09:54.43ID:AOP5eUEV >>693
す、するにゃ汗
す、するにゃ汗
695デフォルトの名無しさん
2024/04/18(木) 15:57:15.08ID:L09lN/Y8696デフォルトの名無しさん
2024/04/18(木) 15:59:42.84ID:L09lN/Y8 探してみた、一番下にリンクある
http://web.cecs.pdx.edu/~mperkows/CLASS_ROBOTICS/lisp-source.html
他にもなにやら面白そうなコードが色々
http://web.cecs.pdx.edu/~mperkows/CLASS_ROBOTICS/lisp-source.html
他にもなにやら面白そうなコードが色々
697デフォルトの名無しさん
2024/04/18(木) 16:12:02.72ID:L09lN/Y8698デフォルトの名無しさん
2024/04/24(水) 12:34:02.33ID:6vxo/5Gl Gauche 0.9.15
https://practical-scheme.net/gauche/download-j.html
https://practical-scheme.net/gauche/download-j.html
699デフォルトの名無しさん
2024/04/24(水) 19:33:42.07ID:zTq4mcuG お前がやるんだよ
700デフォルトの名無しさん
2024/04/29(月) 00:40:58.99ID:kyEsQUSW Lisp系の本あるある
Amazonで検索してレビューを見ると、kaizenのしょうもないレビューが付いている
Amazonで検索してレビューを見ると、kaizenのしょうもないレビューが付いている
701デフォルトの名無しさん
2024/04/29(月) 03:32:03.71ID:xgq67JZI (())なーんだ
702デフォルトの名無しさん
2024/04/29(月) 20:53:10.33ID:gOSsFAyk 閲覧者にとってどうでもよすぎることしか書かないゴミレビュアーなんだよなkaizen
「読んでませんが」「一行もかけてませんが」「どういうものかわかりませんが」
けれど、「昔のAI業界知ってます」というね
片っ端から違反報告したろか
「読んでませんが」「一行もかけてませんが」「どういうものかわかりませんが」
けれど、「昔のAI業界知ってます」というね
片っ端から違反報告したろか
703882
2024/07/14(日) 23:11:15.21ID:gZEsSzzj いつの間にやら5ch CLスレが無くなってて書き先がないのでここに書いちゃう。
3年前、 5ch CL スレで出てた話題 ( https://itest.5ch.net/mevius/test/read.cgi/tech/1411307361/925-933 )を見てたらClozure CLのバグを発見して、 Clozure CL に Pull Request 出した者です。 ( https://github.com/Clozure/ccl/pull/362 )
結局あれからずっと放置されてたんですが、昨日になって急にコメントされました。
曰く、「最近になって報告された Issue を直すためにやって変更により、この問題は直ったんじゃないかと思う。」「この3年前の PR を見とけばよかった。」とのこと。
いや本当に見て貰いたかったよ・・と思いつつお礼のコメントしておきました。5chのLisp関連スレを Clozure CL のどっかに刻めるかなと思ったけど中途半端に終わってしまった。すまんね。
3年前、 5ch CL スレで出てた話題 ( https://itest.5ch.net/mevius/test/read.cgi/tech/1411307361/925-933 )を見てたらClozure CLのバグを発見して、 Clozure CL に Pull Request 出した者です。 ( https://github.com/Clozure/ccl/pull/362 )
結局あれからずっと放置されてたんですが、昨日になって急にコメントされました。
曰く、「最近になって報告された Issue を直すためにやって変更により、この問題は直ったんじゃないかと思う。」「この3年前の PR を見とけばよかった。」とのこと。
いや本当に見て貰いたかったよ・・と思いつつお礼のコメントしておきました。5chのLisp関連スレを Clozure CL のどっかに刻めるかなと思ったけど中途半端に終わってしまった。すまんね。
704デフォルトの名無しさん
2024/07/21(日) 16:52:31.51ID:jbuO3Kr/ > あれからずっと放置
Clozureはバグ修正どころか存続の危機という状況だった(今も?)のでやむなし
Clozureはバグ修正どころか存続の危機という状況だった(今も?)のでやむなし
705デフォルトの名無しさん
2024/07/26(金) 19:56:51.72ID:nvGW+kC/ このスレを開くような変態野郎には関係ないがLisp自体も言ってしまえば存続の危機だけどね
Lisperが勝手にライバル視していたXMLも結局Web界隈では嫌われてるし
嫌われデータ表現で嫌われデータを操作するLispが嫌われるなんて当然の帰着といっても過言ではないでしょうな
Lisperが勝手にライバル視していたXMLも結局Web界隈では嫌われてるし
嫌われデータ表現で嫌われデータを操作するLispが嫌われるなんて当然の帰着といっても過言ではないでしょうな
706デフォルトの名無しさん
2024/07/26(金) 20:54:02.96ID:753D+xJi >>705は変態野郎ということだな
707デフォルトの名無しさん
2024/07/26(金) 21:57:46.50ID:nvGW+kC/ 煽られて即レス返すような真性変態野郎には及ばないがな…
まあ雑談しようや
恐らくタグ付きデータ表現を最初期に意識してたであろうLispを世に放ったJ.McCarthyは原初変態ってところか
ところで詳細は知らんが当時で言うAIと今の実用?AIは目的は似ていても手法が全く違う気がするんだが
やはりこの世界はスピードこそがパワーなのか?と2度目の悟りを迎えたLisperは多いんじゃないの?
スピードの前にはもはやLispとか関係無いじゃね?とか今はそういう感じ
まあ雑談しようや
恐らくタグ付きデータ表現を最初期に意識してたであろうLispを世に放ったJ.McCarthyは原初変態ってところか
ところで詳細は知らんが当時で言うAIと今の実用?AIは目的は似ていても手法が全く違う気がするんだが
やはりこの世界はスピードこそがパワーなのか?と2度目の悟りを迎えたLisperは多いんじゃないの?
スピードの前にはもはやLispとか関係無いじゃね?とか今はそういう感じ
708デフォルトの名無しさん
2024/07/26(金) 23:35:12.89ID:753D+xJi >煽られて即レス返すような真性変態野郎
ID:nvGW+kC/ のことだな
ID:nvGW+kC/ のことだな
709はちみつ餃子 ◆8X2XSCHEME
2024/07/26(金) 23:38:45.14ID:e6dQA2Nw710デフォルトの名無しさん
2024/07/29(月) 20:42:01.60ID:Js4zJSVe webasmのS式に活路を見出そう
711デフォルトの名無しさん
2024/07/30(火) 09:51:17.53ID:huM5CJOj 標準規格から30年経過して改訂もなしのCommon Lispは存続の危機とかいうのも超越してしまったように思える
sbclもquicklispも細々とやっていくだろう
sbclもquicklispも細々とやっていくだろう
712デフォルトの名無しさん
2024/07/30(火) 18:26:26.48ID:dglkx4t5 最も変態なのがマシン語
最も変態から遠いのがLisp
平均がマシン語寄りなのでLispが変態に見られてしまうが
安心しろ、それは認知の歪みだ
最も変態から遠いのがLisp
平均がマシン語寄りなのでLispが変態に見られてしまうが
安心しろ、それは認知の歪みだ
713デフォルトの名無しさん
2024/07/30(火) 19:37:30.88ID:otClTmf/ コードとデータが同じ形式でデータと同じようにコードを操作できる特性は変態と呼ぶに値する
脳神経モデルのAIが主流の間は出番ないけど遺伝子モデルのAIが主流になれば復活しそう
一時期流行った進化的アルゴリズムとか最近聞かないけど息してるのかね
脳神経モデルのAIが主流の間は出番ないけど遺伝子モデルのAIが主流になれば復活しそう
一時期流行った進化的アルゴリズムとか最近聞かないけど息してるのかね
714デフォルトの名無しさん
2024/08/01(木) 04:59:08.81ID:yRZ8k2zI 勉強しろよ、おっさん
715デフォルトの名無しさん
2024/08/01(木) 07:17:05.17ID:7xtdgUzE car, cdr, mapcar, cadr etc. まあこの辺は慣れで覚えられた
でも mapc, mapcon, mapcan ... この辺は無理
廃れつつあるのの当然だね
でも mapc, mapcon, mapcan ... この辺は無理
廃れつつあるのの当然だね
716デフォルトの名無しさん
2024/08/01(木) 14:39:20.28ID:yRZ8k2zI コード書かないコンピュータ雑学博士みたいなおっさんが活躍できたのは情報が少ない時代だったからで誰でも好きな言語でOSS活動できるような現代には無用の存在なんだよな
717デフォルトの名無しさん
2024/08/07(水) 15:13:02.20ID:PbgGNmzh718デフォルトの名無しさん
2024/08/09(金) 22:25:05.47ID:/Y8diPS9 それでもLispの悟りを味わうためだけにでも勉強する価値はあるってレイモンズが言ってた
719デフォルトの名無しさん
2024/08/10(土) 20:00:37.82ID:8fMXoMNz ここの住人のように書籍を先生にひとりでLisp書いてる還暦手前の人間には信じられないかもしれないが, common lispにはコミュニティが存在する. これが2024年のCommon Lispサーベイだ.
https://news.ycombinator.com/item?id=41206465
なお, racketもアンケートを実施中だ.
https://news.ycombinator.com/item?id=41206465
なお, racketもアンケートを実施中だ.
720デフォルトの名無しさん
2024/08/11(日) 08:19:43.51ID:Ra0/0/oh この手で一番知りたいアンケート回答者の年齢について何も言及がない時点でお察し
721デフォルトの名無しさん
2024/08/12(月) 00:13:23.88ID:6GU4Ob6x お察しのところもうしわけないが, プログラミング言語コミュニティのサーベイでユーザーの年齢層集計してるとこどこもないっしょ.
722デフォルトの名無しさん
2024/08/24(土) 00:38:59.98ID:TqJppTmh 貴重な趣味仲間なんだから仲良くしろ老人ども
723デフォルトの名無しさん
2024/08/31(土) 07:41:36.68ID:jZQQMHu4 おはようございます
貴重でもないし
趣味でもないし
仲間でもないし
仲良くすることもありません
貴重でもないし
趣味でもないし
仲間でもないし
仲良くすることもありません
724デフォルトの名無しさん
2025/02/02(日) 08:13:35.15ID:DG2EYWWi SBCLはコンスタントに更新しててすごいなって。
たまに破壊的な変更をやらかすが・・・
たまに破壊的な変更をやらかすが・・・
725デフォルトの名無しさん
2025/02/14(金) 15:49:29.78ID:eMFFfIuE racketもコンスタントに更新してるよ
726デフォルトの名無しさん
2025/03/08(土) 07:16:48.57ID:idxuFWQL727デフォルトの名無しさん
2025/04/08(火) 17:02:32.68ID:dn4YaJk8728デフォルトの名無しさん
2025/04/30(水) 20:58:31.60ID:Y194ehFB https://qiita.com/Yudon66/items/5298883524fe4c19be7d
これみたいにプロジェクトオイラーでlisp勉強してるやつおる?
これみたいにプロジェクトオイラーでlisp勉強してるやつおる?
729はちみつ餃子 ◆8X2XSCHEME
2025/04/30(水) 21:17:37.74ID:THYm3xdc そういう題材は数学的な部分で引っ掛かって前に進まなかったりしそう。
言語の練習ということならやること自体ははっきりしてるような題材が良さそうな気がしてる。
言語の練習ということならやること自体ははっきりしてるような題材が良さそうな気がしてる。
730デフォルトの名無しさん
2025/05/01(木) 15:54:19.52ID:9Hk2MMyt M.Hiroi's Home Pageってどうなん?
731はちみつ餃子 ◆8X2XSCHEME
2025/05/03(土) 15:02:51.87ID:WnzKFtQv ええんちゃうか
732デフォルトの名無しさん
2025/07/04(金) 19:22:30.97ID:rrB9liNl733デフォルトの名無しさん
2025/07/06(日) 09:51:20.77ID:jyZjYPic >>728もそうだけれどlispはパズル系は素直に書けていいものだと思った(特にcl)
マルチパラダイムだから色々な方針の実装も楽しいぞ
なんなら定番(場合によっては実装が提供される)であり、論理プログラミングのPrologのcl実装も山程あるからとても素直に解ける
マルチパラダイムだから色々な方針の実装も楽しいぞ
なんなら定番(場合によっては実装が提供される)であり、論理プログラミングのPrologのcl実装も山程あるからとても素直に解ける
734デフォルトの名無しさん
2025/07/08(火) 19:29:01.07ID:lEBcQUbL735デフォルトの名無しさん
2025/07/08(火) 20:48:49.34ID:sskQVz5B おまえらも見習ってAIでどんどん妄想を形にしろよ
これからは論文は読むんじゃなくて生成する時代
これからは論文は読むんじゃなくて生成する時代
736デフォルトの名無しさん
2025/07/08(火) 21:23:04.28ID:lEBcQUbL ifは関数としては書けない、ifはマクロでしか書けない、有名な話だ
ifを関数として書くとしたらthen節とelse節を関数のポインタで渡すことになる
もちろんそれでは美しくない
そこでthen節とelse節をインライン関数として渡すという手がある
これならば節は関数呼び出しでなく同じレベルに展開される
さらにif関数自身もインライン関数にしてしまう
すると制御構造のifとそっくり同じものが手に入るのだ
ここにインライン関数と制御構造は美しい等価関係で結ばれるのである
LISP系の言語でこの最適化を自動でやるのがファーストラムダである
ifを関数として書くとしたらthen節とelse節を関数のポインタで渡すことになる
もちろんそれでは美しくない
そこでthen節とelse節をインライン関数として渡すという手がある
これならば節は関数呼び出しでなく同じレベルに展開される
さらにif関数自身もインライン関数にしてしまう
すると制御構造のifとそっくり同じものが手に入るのだ
ここにインライン関数と制御構造は美しい等価関係で結ばれるのである
LISP系の言語でこの最適化を自動でやるのがファーストラムダである
737デフォルトの名無しさん
2025/07/09(水) 00:29:24.00ID:eQ8lOX87 半世紀以上前に研究されてたようなことを今考えているのか?
738デフォルトの名無しさん
2025/07/09(水) 01:41:00.59ID:qReXyC09 どのへんが既出なんだか教えてほしいもんだがまあいいや
これはテイルコールみたいにファーストラムダの最適化も必須にしませんかという提案だ
それが実現すれば、内部的に無名関数を呼ぶことで実装されていた制御構造が軒並みその最適化にかかる
「C言語が中括弧を開くような感覚で関数を呼んじゃう」というのはLISPの本当に欠点らしい欠点の筆頭だから、
それが改善されればLISPの使い道が違ってくる可能性がある
これはテイルコールみたいにファーストラムダの最適化も必須にしませんかという提案だ
それが実現すれば、内部的に無名関数を呼ぶことで実装されていた制御構造が軒並みその最適化にかかる
「C言語が中括弧を開くような感覚で関数を呼んじゃう」というのはLISPの本当に欠点らしい欠点の筆頭だから、
それが改善されればLISPの使い道が違ってくる可能性がある
739デフォルトの名無しさん
2025/07/09(水) 02:37:47.51ID:d2bmESXo740デフォルトの名無しさん
2025/07/09(水) 04:41:41.15ID:qReXyC09741デフォルトの名無しさん
2025/07/09(水) 09:01:01.99ID:IjsShBy4 わからん。コンパイラ頑張ります宣言ではないのか?
742デフォルトの名無しさん
2025/07/09(水) 09:07:00.67ID:Bk08chKM AIと壁打ちして「理解」した内容を妥当性の検証もしないまま書き込んでそうだな
743デフォルトの名無しさん
2025/07/09(水) 09:37:43.40ID:qReXyC09 ファーストラムダというのは
((lambda
この形のこと
つまり、lambdaを呼んで返ってきた関数オブジェクトを即座にもう一度呼んでる
このときに関数呼び出しをせず、インライン関数として展開してしまう
もちろんスタックフレームは作られない
letだとかwhileだとか、実質的に制御構造に過ぎないものは軒並みこの形をしている
((lambda
この形のこと
つまり、lambdaを呼んで返ってきた関数オブジェクトを即座にもう一度呼んでる
このときに関数呼び出しをせず、インライン関数として展開してしまう
もちろんスタックフレームは作られない
letだとかwhileだとか、実質的に制御構造に過ぎないものは軒並みこの形をしている
744デフォルトの名無しさん
2025/07/09(水) 12:22:27.67ID:EKMDM/sM 742
最近そういうの増えた
丸飲みコピペじゃなくて
消化してから吐き出して欲しい
最近そういうの増えた
丸飲みコピペじゃなくて
消化してから吐き出して欲しい
745はちみつ餃子 ◆8X2XSCHEME
2025/07/09(水) 13:05:25.01ID:ZKntcAAj オペランドを評価しない関数 fexpr を導入することでスペシャルフォームを手続きと同列にファーストクラスオブジェクトとして扱うアイデアはあるよ。
それを整理して scheme 風言語として構築したものもある。
https://web.cs.wpi.edu/~jshutt/kernel.html
まあそれはそれとして、
>>738
> 内部的に無名関数を呼ぶことで実装
と最適化の話を繋げるのは意味がわからんぞ。
処理系の実装方法の一部は言語仕様として強制すべきというのが前提になってる?
それを整理して scheme 風言語として構築したものもある。
https://web.cs.wpi.edu/~jshutt/kernel.html
まあそれはそれとして、
>>738
> 内部的に無名関数を呼ぶことで実装
と最適化の話を繋げるのは意味がわからんぞ。
処理系の実装方法の一部は言語仕様として強制すべきというのが前提になってる?
746デフォルトの名無しさん
2025/07/09(水) 14:05:12.47ID:cmuoaTCa >>745
>処理系の実装方法の一部は言語仕様として強制すべきというのが前提になってる?
テイルコールはそうでしょ
最適化は処理系がやってくれることを保証するので
単純ループに相当するものでもどんどん再帰の形で書きましょうってことでしょ
ファーストラムダも同じ
制御構造相当のものをlambdaを使って書いても最適化されますよってこと
>処理系の実装方法の一部は言語仕様として強制すべきというのが前提になってる?
テイルコールはそうでしょ
最適化は処理系がやってくれることを保証するので
単純ループに相当するものでもどんどん再帰の形で書きましょうってことでしょ
ファーストラムダも同じ
制御構造相当のものをlambdaを使って書いても最適化されますよってこと
747はちみつ餃子 ◆8X2XSCHEME
2025/07/09(水) 14:21:01.11ID:ZKntcAAj >>746
> テイルコールはそうでしょ
> 最適化は処理系がやってくれることを保証するので
仕様上は
・正しく末尾再帰が行われていること
・アクティブな末尾呼出しの回数制限がないなら正しく末尾再帰が出来ている
という迂遠な表現になっている。
つまり、何が出来るべきなのかという書き方であって、どう実装すべきかに言及することを避けてる。
同様に処理系のメカニズムに言及することを避けて提案を表現してみてよ。
> テイルコールはそうでしょ
> 最適化は処理系がやってくれることを保証するので
仕様上は
・正しく末尾再帰が行われていること
・アクティブな末尾呼出しの回数制限がないなら正しく末尾再帰が出来ている
という迂遠な表現になっている。
つまり、何が出来るべきなのかという書き方であって、どう実装すべきかに言及することを避けてる。
同様に処理系のメカニズムに言及することを避けて提案を表現してみてよ。
748デフォルトの名無しさん
2025/07/09(水) 14:35:00.91ID:cmuoaTCa テイルコールってのは
call func
ret
って並んでたら
jmp func
に置き換えるんだよ
ファーストラムダもある種の関数のインライン展開ってだけ
call func
ret
って並んでたら
jmp func
に置き換えるんだよ
ファーストラムダもある種の関数のインライン展開ってだけ
749はちみつ餃子 ◆8X2XSCHEME
2025/07/09(水) 14:40:18.45ID:ZKntcAAj751はちみつ餃子 ◆8X2XSCHEME
2025/07/09(水) 14:57:26.23ID:ZKntcAAj752デフォルトの名無しさん
2025/07/09(水) 15:02:22.57ID:QwaFNVYh >>740
ifだって普通の関数だろw
インタープリターとしての実装は単なる関数呼び出しだ
スペシャルフォームなので引数は評価せず渡す(通常の関数の場合は評価した結果を渡す)
で、(バイト)コンパイラーはifは関数呼び出しにはせず条件ジャンプ命令列に置き換える
そんな事は古代からやってる
自分で処理系を実装した事あれば誰でも知ってる
ifだって普通の関数だろw
インタープリターとしての実装は単なる関数呼び出しだ
スペシャルフォームなので引数は評価せず渡す(通常の関数の場合は評価した結果を渡す)
で、(バイト)コンパイラーはifは関数呼び出しにはせず条件ジャンプ命令列に置き換える
そんな事は古代からやってる
自分で処理系を実装した事あれば誰でも知ってる
753デフォルトの名無しさん
2025/07/09(水) 15:28:36.71ID:cmuoaTCa マクロだっていう反論が来るのかと思ったらスペシャルフォームだというので戸惑ってるw
そりゃいくつかの関数はミニマルコアとして書かなきゃいけないさ
それさえあれば関数とマクロと制御構造は統一できる、というのが言い分
そりゃいくつかの関数はミニマルコアとして書かなきゃいけないさ
それさえあれば関数とマクロと制御構造は統一できる、というのが言い分
754デフォルトの名無しさん
2025/07/09(水) 15:34:56.94ID:QwaFNVYh ミニマルコアって何だ?
スペシャルフォームとマクロは引数を評価しないで渡す関数として実装される
そんなのは初期の頃からだと言っている
何で今さら発見した面してんのか?と言うことだ
スペシャルフォームとマクロは引数を評価しないで渡す関数として実装される
そんなのは初期の頃からだと言っている
何で今さら発見した面してんのか?と言うことだ
755デフォルトの名無しさん
2025/07/09(水) 15:40:52.83ID:QwaFNVYh 引数を評価しないで渡す関数という点で、マクロとスペシャルフォームは同一の実装と言える
しかしマクロは環境を受け取らないといけないし、戻り値を再度評価する必要があるから、スペシャルフォームとマクロは区別する必要がある
しかしマクロは環境を受け取らないといけないし、戻り値を再度評価する必要があるから、スペシャルフォームとマクロは区別する必要がある
756デフォルトの名無しさん
2025/07/09(水) 15:42:40.68ID:QwaFNVYh 更に、スペシャルフォームはifの様にコンパイラーが特殊なコンパイルをする必要があるので、普通の関数と区別する必要がある点も重要だ
757デフォルトの名無しさん
2025/07/09(水) 15:45:21.52ID:cmuoaTCa 評価しないで渡したい引数のうち、制御に関わるものならインラインクロージャでなんとかなりますよって話だよ
レキシカルにちゃんとしたクロージャをインライン展開される前提で引数として渡すんだよ
レキシカルにちゃんとしたクロージャをインライン展開される前提で引数として渡すんだよ
758デフォルトの名無しさん
2025/07/09(水) 15:46:21.90ID:QwaFNVYh しかしながら、普通の関数でもスペシャルフォームの様な特殊なコンパイルをしたい場合があるので、その為にコンパイラーマクロが存在する
ただほとんど使われない
ただほとんど使われない
759デフォルトの名無しさん
2025/07/09(水) 15:48:37.80ID:QwaFNVYh760デフォルトの名無しさん
2025/07/09(水) 15:50:14.77ID:QwaFNVYh mapcarに渡したlambdaをインライン展開したいと言うなら、mapcarを(コンパイラー)マクロにすれば可能だ
761デフォルトの名無しさん
2025/07/09(水) 15:56:45.13ID:cmuoaTCa >>759
テイルコールみたいにファーストラムダ最適化も必須にすればインライン展開される分速くなる
テイルコールみたいにファーストラムダ最適化も必須にすればインライン展開される分速くなる
762はちみつ餃子 ◆8X2XSCHEME
2025/07/09(水) 16:17:26.50ID:ZKntcAAj 最適化するために仕様の改定が必要か?
763デフォルトの名無しさん
2025/07/09(水) 16:32:28.96ID:eQ8lOX87 >>738
どのへんが既出なんだか教えてほしいということならALGOLとサンクのコンパイル研究あたりで出尽していると思うから60年前には既に研究レベルでなく, 実践されていたのではないか.AIにきいてもわからなかったか?
AIに尋ねたら1960年代初頭でサンクのインライン展開も含めてアイデアは出尽しているといわれた.
ついでにSMALLTALKとIFとブロックについても調べてみろよ.
LISPの関数呼び出しの最適化についてもおまえは50年前あたりの認識をしている. 当然SBCLあたりの最適化はおまえよりずっと先をいってる.
どのへんが既出なんだか教えてほしいということならALGOLとサンクのコンパイル研究あたりで出尽していると思うから60年前には既に研究レベルでなく, 実践されていたのではないか.AIにきいてもわからなかったか?
AIに尋ねたら1960年代初頭でサンクのインライン展開も含めてアイデアは出尽しているといわれた.
ついでにSMALLTALKとIFとブロックについても調べてみろよ.
LISPの関数呼び出しの最適化についてもおまえは50年前あたりの認識をしている. 当然SBCLあたりの最適化はおまえよりずっと先をいってる.
764デフォルトの名無しさん
2025/07/09(水) 17:07:46.42ID:ohpjpVt+ >ファーストラムダというのは
「ファーストラムダ」という言葉は、通常、AWS Lambdaを指すスラングとして使われることがあります。AWS Lambdaは、サーバーレスコンピューティングサービスで、コードをサーバーの管理なしに実行できます。
「ファーストラムダ」という言葉は、通常、AWS Lambdaを指すスラングとして使われることがあります。AWS Lambdaは、サーバーレスコンピューティングサービスで、コードをサーバーの管理なしに実行できます。
765デフォルトの名無しさん
2025/07/09(水) 17:09:06.44ID:cmuoaTCa インライン展開を俺が発明したなんて言ってないだろ
この形をしたラムダをそうすると効くんじゃないかというのが俺の発明だ
あと、クロージャを引数として渡すのもSmalltalkやRubyはやってるだろう
俺の発明は「インライン関数を引数として渡すという逆接はものごとを見通しよくしますよ」だ
この形をしたラムダをそうすると効くんじゃないかというのが俺の発明だ
あと、クロージャを引数として渡すのもSmalltalkやRubyはやってるだろう
俺の発明は「インライン関数を引数として渡すという逆接はものごとを見通しよくしますよ」だ
766デフォルトの名無しさん
2025/07/09(水) 17:25:03.45ID:ohpjpVt+ そうやってevalの時点で評価されなかった式を何時どうやって誰が適用するのか
というおとぎ話を自慢毛に語るスレ
というおとぎ話を自慢毛に語るスレ
767デフォルトの名無しさん
2025/07/09(水) 17:29:15.92ID:cmuoaTCa evalはインタープリタ、lambdaはコンパイラ
768はちみつ餃子 ◆8X2XSCHEME
2025/07/09(水) 18:09:52.06ID:ZKntcAAj Scheme はコンパイル結果を気楽に見る方法がないことも多いんだけど……
Gauche だと disasm で見れる。
(define (foo x y) ((lambda(a b)(+ a b)) x y))
(define (bar x y) (+ x y))
(disasm foo)
(disasm bar)
表示の意味がわからなくても foo と bar が同じになっていることはわかるだろう。
(バージョンによるかも?)
ごく普通にそういう最適化はしてる。
Gauche だと disasm で見れる。
(define (foo x y) ((lambda(a b)(+ a b)) x y))
(define (bar x y) (+ x y))
(disasm foo)
(disasm bar)
表示の意味がわからなくても foo と bar が同じになっていることはわかるだろう。
(バージョンによるかも?)
ごく普通にそういう最適化はしてる。
769デフォルトの名無しさん
2025/07/09(水) 18:36:27.57ID:CwmzIZ1x 自分で処理系書いてから言え
770デフォルトの名無しさん
2025/07/09(水) 19:18:13.79ID:eQ8lOX87 >>765
少なくともLISP界隈では発明では全くないからHaskell, OCaml, コンパイラの最適化方面のスレで展開してみたら?
A正規化あたりと絡めて展開すればよりアカデミックなやりとりが期待できるのでは?
少なくともLISP界隈では発明では全くないからHaskell, OCaml, コンパイラの最適化方面のスレで展開してみたら?
A正規化あたりと絡めて展開すればよりアカデミックなやりとりが期待できるのでは?
レスを投稿する
ニュース
- 戦略的互恵関係望むなら答弁撤回せよと中国 [どどん★]
- 立憲・野田代表が主張 台湾有事答弁で「質問者批判は筋違い」「答弁がおかしい」「高市総理迎合のネット世論は危険」★3 [♪♪♪★]
- 「ふざけんな!」 国会議員給与、『月5万円増』報道にネット騒然 「国民が物価高で困っているのに」「定数削減とか言いながら…」 [♪♪♪★]
- 【速報】 植田日銀総裁 「円安進行が物価高を起こしている」 ★3 [お断り★]
- 【速報】 植田日銀総裁 「円安進行が物価高を起こしている」 ★2 [お断り★]
- 【無言】中国怒らせた高市首相→1週間だんまり、国民に実害も説明なし 中国問題を避けてスルー… ★11 [BFU★]
- LGのテレビ、最新モデルでリモコンのほとんどのボタン消したのにジャップ向けだけそのままなんだが [821395612]
- 【悲報】高市答弁、誤解だった [834922174]
- 架空を滑空ビューーーン👊😅👊三三☁😶‍🌫🏡
- 戦略的互恵関係望むなら答弁撤回せよと中国。高市、もう後がなくなる [805596214]
- 【ポケットに手】中国のネトウヨ、「この映像を見ると誇りに思える」 「こういう風に日本を教育すべきだ」 [241672384]
- 【鈴木早苗】お米券おひとり様3000円に閣議決定 [993451824]
