>>180
キタ━━━━(゚∀゚)━━━━!!
探検
Lisp Scheme Part41
183デフォルトの名無しさん
2020/04/25(土) 01:57:04.26ID:u9oymkho184デフォルトの名無しさん
2020/04/25(土) 07:07:50.62ID:q++AEQsZ 小学校でlispを教えたらいいのに
185182
2020/04/25(土) 13:34:52.97ID:tfHLOmTJ186_
2020/04/28(火) 00:30:29.10ID:moc7J10E SBCL 2.0.4 リリースされたよ。RISC-V プロセッサに対応したのが目玉みたいだよ。
http://www.sbcl.org/news.html#2.0.4
http://www.sbcl.org/news.html#2.0.4
187デフォルトの名無しさん
2020/04/28(火) 11:03:05.28ID:jkGkDNpV Scheme の map 手続きについて、
手続きを適用する順序 (副作用が発生する順序) は仕様上は未規定ということになっています。
各処理系として保証するということは有りえるんですが、
Racket の場合は保証されていると読み取って良いでしょうか?
https://docs.racket-lang.org/reference/pairs.html?q=map#%28def._%28%28lib._racket%2Fprivate%2Fmap..rkt%29._map%29%29
わざわざ "from the first elements to the last" という書き方をしているからには順序を意図しているように
解釈するのが自然かとは思うんですが、単に範囲を言っていると解釈できなくもないので、
英語と Racket に明るい方がいればご教示賜りたいです。
手続きを適用する順序 (副作用が発生する順序) は仕様上は未規定ということになっています。
各処理系として保証するということは有りえるんですが、
Racket の場合は保証されていると読み取って良いでしょうか?
https://docs.racket-lang.org/reference/pairs.html?q=map#%28def._%28%28lib._racket%2Fprivate%2Fmap..rkt%29._map%29%29
わざわざ "from the first elements to the last" という書き方をしているからには順序を意図しているように
解釈するのが自然かとは思うんですが、単に範囲を言っていると解釈できなくもないので、
英語と Racket に明るい方がいればご教示賜りたいです。
188_
2020/04/28(火) 14:05:01.63ID:moc7J10E189デフォルトの名無しさん
2020/04/28(火) 14:43:15.44ID:jkGkDNpV >>188
R5RS などでは手続きが各要素に適用される dynamic order は unspecified である
というような表現になってるんですよ。 order という語が主語になってます。
https://docs.racket-lang.org/r5rs/r5rs-std/r5rs-Z-H-9.html?q=map#%25_idx_580
だからわざわざ変えた表現をするからには違うこと (順序が保証される) を言おうとしているんだろうと思いつつも、
明確に順序を強調してるわけでもないな……? というところで解釈に迷ってました。
私は R5RS (など) と言い回しが違うという点に引きずられていましたが、
"from the first elements to the last" というフレーズ単体で見ると範囲のニュアンス
で捉える方が自然ですかね。
私自身はいずれにしても map の副作用の順序に期待しないんですが、
しばらく前に Qiita に投稿されていた記事の中で map の順序が効いてくるコードがあったので、
これってありなんかなぁと思ったという経緯です。
R5RS などでは手続きが各要素に適用される dynamic order は unspecified である
というような表現になってるんですよ。 order という語が主語になってます。
https://docs.racket-lang.org/r5rs/r5rs-std/r5rs-Z-H-9.html?q=map#%25_idx_580
だからわざわざ変えた表現をするからには違うこと (順序が保証される) を言おうとしているんだろうと思いつつも、
明確に順序を強調してるわけでもないな……? というところで解釈に迷ってました。
私は R5RS (など) と言い回しが違うという点に引きずられていましたが、
"from the first elements to the last" というフレーズ単体で見ると範囲のニュアンス
で捉える方が自然ですかね。
私自身はいずれにしても map の副作用の順序に期待しないんですが、
しばらく前に Qiita に投稿されていた記事の中で map の順序が効いてくるコードがあったので、
これってありなんかなぁと思ったという経緯です。
190デフォルトの名無しさん
2020/04/29(水) 01:16:58.58ID:y02v3tEE >>187
保証とはどういうことを指しているのだろう
将来仕様を変更しないとは書いていないのは確かなようだ
racketでは引数の評価もleft to rightとは書いてあった
schemeでもfor-eachは先頭から順番に評価する
実際に評価順の違いが観察できるのはchezかな
保証とはどういうことを指しているのだろう
将来仕様を変更しないとは書いていないのは確かなようだ
racketでは引数の評価もleft to rightとは書いてあった
schemeでもfor-eachは先頭から順番に評価する
実際に評価順の違いが観察できるのはchezかな
191デフォルトの名無しさん
2020/04/29(水) 03:18:21.69ID:ALOjMFFX >>189
> 私は R5RS (など) と言い回しが違うという点に引きずられていましたが、
> "from the first elements to the last" というフレーズ単体で見ると範囲のニュアンス
> で捉える方が自然ですかね。
いや、違う。
R5RSとRacket Reference v7.6とでのmapが手続き(proc)を適用する要素の順番に関して言及しているのは
各々、以下の箇所だが、両者では明らかに全く異なる。
R5RS>The dynamic order in which proc is applied to the elements of the lists is unspecified.
Racket>Applies proc to the elements of the lsts from the first elements to the last.
R5RSは>>187で君が述べていた通り、リストの要素への適用順序はunspecifiedだと明確に書いてある。
これに対してRacket v7.6ではprocをlstsの最初の要素から最後の要素へと適用すると書いてある、
つまりリストlstsの要素の並びの順番に手続きprocを適用して行くと明記している。
だからprocとして受け取った値を標準出力に書き出す手続きを渡せば、R5RSでは表示される要素の順番はどんな順序でも良いのに対して
Racket v7.6では元のリストlstの要素の並び順に必ず表示せねばならない。
これは私の想像だが、R5RSでmapが手続きを適用する要素の順番を規定しないと明記しているのは長大なリストに対する並列処理を可能にするためだろう。
逆に言えば手続きの適用順序を確実に把握したい場合にはmapでなくfor-eachを使えというのがR5RSを定めたチームの言語設計上の意図だろう。
>>190
> 保証とはどういうことを指しているのだろう
その言語仕様書のそのバージョンに準拠していると宣言している言語処理系は、それを守らねばならない(守っていなければバグだ)という意味だよ。
だから今の例では、Racket Reference v7.6準拠と処理系が宣言したら、その処理系はmapで手続きを適用する要素の順番を必ずリストの並び順に
する義務が生ずる(Racket v7.6の定める言語仕様=Racket v7.6ユーザとの約束の順守を保証せねばならない)、ということだ。
当然ながら、言語仕様書のバージョンが変われば約束(つまり言語仕様による規定の内容)も変更され得る。
> 私は R5RS (など) と言い回しが違うという点に引きずられていましたが、
> "from the first elements to the last" というフレーズ単体で見ると範囲のニュアンス
> で捉える方が自然ですかね。
いや、違う。
R5RSとRacket Reference v7.6とでのmapが手続き(proc)を適用する要素の順番に関して言及しているのは
各々、以下の箇所だが、両者では明らかに全く異なる。
R5RS>The dynamic order in which proc is applied to the elements of the lists is unspecified.
Racket>Applies proc to the elements of the lsts from the first elements to the last.
R5RSは>>187で君が述べていた通り、リストの要素への適用順序はunspecifiedだと明確に書いてある。
これに対してRacket v7.6ではprocをlstsの最初の要素から最後の要素へと適用すると書いてある、
つまりリストlstsの要素の並びの順番に手続きprocを適用して行くと明記している。
だからprocとして受け取った値を標準出力に書き出す手続きを渡せば、R5RSでは表示される要素の順番はどんな順序でも良いのに対して
Racket v7.6では元のリストlstの要素の並び順に必ず表示せねばならない。
これは私の想像だが、R5RSでmapが手続きを適用する要素の順番を規定しないと明記しているのは長大なリストに対する並列処理を可能にするためだろう。
逆に言えば手続きの適用順序を確実に把握したい場合にはmapでなくfor-eachを使えというのがR5RSを定めたチームの言語設計上の意図だろう。
>>190
> 保証とはどういうことを指しているのだろう
その言語仕様書のそのバージョンに準拠していると宣言している言語処理系は、それを守らねばならない(守っていなければバグだ)という意味だよ。
だから今の例では、Racket Reference v7.6準拠と処理系が宣言したら、その処理系はmapで手続きを適用する要素の順番を必ずリストの並び順に
する義務が生ずる(Racket v7.6の定める言語仕様=Racket v7.6ユーザとの約束の順守を保証せねばならない)、ということだ。
当然ながら、言語仕様書のバージョンが変われば約束(つまり言語仕様による規定の内容)も変更され得る。
192デフォルトの名無しさん
2020/04/29(水) 06:44:54.55ID:bLWOmnfL >>187
処理系によって(A B C)の評価順序が
(1 2 3)だったり(3 1 2)だったり(3 2 1)だったりするから
mapのようなリストで処理結果を返すような関数のクロージャ内では原則副作用は起こさないことが求められる
for-eachみたいな初めから副作用を期待する関数はどう並べようが問題は起きない
処理系によって(A B C)の評価順序が
(1 2 3)だったり(3 1 2)だったり(3 2 1)だったりするから
mapのようなリストで処理結果を返すような関数のクロージャ内では原則副作用は起こさないことが求められる
for-eachみたいな初めから副作用を期待する関数はどう並べようが問題は起きない
193デフォルトの名無しさん
2020/04/29(水) 09:21:45.86ID:sxS/u8Yc194デフォルトの名無しさん
2020/04/29(水) 09:54:06.36ID:sxS/u8Yc >>191
> 長大なリストに対する並列処理を可能にするためだろう
手続きの引数の評価順序については未規定ではあるものの
"some sequential order of evaluation" という制約がついています。
https://docs.racket-lang.org/r5rs/r5rs-std/r5rs-Z-H-7.html#%_sec_4.1.3
ちょっとわかり難いんですが、これは「同時ではない (かのように動作する)」と解されるそうです。
たとえば
(list (begin (display 'a) (display 'b) 1)
(begin (display 'c) (display 'd) 2))
とあったときに表示は abcd か cdab のどちらかであり acbd だったり cabd だったりはしない
ということです。
map についてはこういう制約は書かれてはいないものの、
順序は規定しないという文言は「既定はしないけどなんらかの順序を想定する」
とも読めなくもないので並列化を許しているとは言い切れない気がします。
副作用がないときに限っては並列化しても仕様に反しないのは間違いないですけど、
その場合は順序に関して有るとも無いとも書く必要がないんですよね。
どうせ観測できないので。
> 長大なリストに対する並列処理を可能にするためだろう
手続きの引数の評価順序については未規定ではあるものの
"some sequential order of evaluation" という制約がついています。
https://docs.racket-lang.org/r5rs/r5rs-std/r5rs-Z-H-7.html#%_sec_4.1.3
ちょっとわかり難いんですが、これは「同時ではない (かのように動作する)」と解されるそうです。
たとえば
(list (begin (display 'a) (display 'b) 1)
(begin (display 'c) (display 'd) 2))
とあったときに表示は abcd か cdab のどちらかであり acbd だったり cabd だったりはしない
ということです。
map についてはこういう制約は書かれてはいないものの、
順序は規定しないという文言は「既定はしないけどなんらかの順序を想定する」
とも読めなくもないので並列化を許しているとは言い切れない気がします。
副作用がないときに限っては並列化しても仕様に反しないのは間違いないですけど、
その場合は順序に関して有るとも無いとも書く必要がないんですよね。
どうせ観測できないので。
195デフォルトの名無しさん
2020/04/29(水) 12:39:32.81ID:qQMMu/UY196187
2020/04/29(水) 13:42:08.04ID:sxS/u8Yc >>195
継続については「call/cc は副作用を生じる」というひとことで説明できます。
副作用とは何かというのは色々なモデル化のやり方があってはっきりしたひとつの定義を
定められないみたいなんですが、この説明が納得感があって参考になると思います。
https://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3Acall%2Fcc%E3%81%A8%E5%89%AF%E4%BD%9C%E7%94%A8
副作用がないなら順序なんか考える必要はないんですよ。
どの順序で実行されようと並列であろうと (観測できる) 結果は同じなので順序を気にする意味がありません。
結果が同じにならない場合 (副作用がある場合) がどうあるべきか考えるから順序が効いてくるんです。
で、副作用がある手続きの中でも特に第一級継続は (観測できるだけでなく) 流れを変えることが出来るから
どれが妥当なのか結論が出ないなぁってことです。
継続については「call/cc は副作用を生じる」というひとことで説明できます。
副作用とは何かというのは色々なモデル化のやり方があってはっきりしたひとつの定義を
定められないみたいなんですが、この説明が納得感があって参考になると思います。
https://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3Acall%2Fcc%E3%81%A8%E5%89%AF%E4%BD%9C%E7%94%A8
副作用がないなら順序なんか考える必要はないんですよ。
どの順序で実行されようと並列であろうと (観測できる) 結果は同じなので順序を気にする意味がありません。
結果が同じにならない場合 (副作用がある場合) がどうあるべきか考えるから順序が効いてくるんです。
で、副作用がある手続きの中でも特に第一級継続は (観測できるだけでなく) 流れを変えることが出来るから
どれが妥当なのか結論が出ないなぁってことです。
197デフォルトの名無しさん
2020/04/29(水) 14:57:29.24ID:u7alO7eW グラフかくのってどうしたらいい?gnuplotの🎺使うの?
gnuplot使ったことないけど難しいのか?
gnuplot使ったことないけど難しいのか?
198デフォルトの名無しさん
2020/04/29(水) 18:27:14.43ID:OS1rodDF やりたいことをやろうとすると難しい
199デフォルトの名無しさん
2020/04/29(水) 23:11:18.94ID:ALOjMFFX >>193
"from the first elements to the last"は最初の要素から最後の要素へだから当然ながらin orderの意味を含む
もしも、上の表現を使ってin orderを保証しないことを意図する言語仕様があったら、
その言語仕様を書いた人間が英語(というよりも人間の使う言葉)の常識を知らないと言うべきレベルの代物
procの適用にin orderを保証したくないのならば"from the first elements to the last"などではなく、例えば
“(map) Applies proc to every elements of the lsts exactly once”とでも書くべき
というか、そもそもR5RSでのmapに関する表現をそのまま使えば良い
>>194
なるほど、インターリーヴを起こしてはならない、ということですね
良い反例ですね、了解しました
確かにそれだと並列処理という話は排除されますね
"from the first elements to the last"は最初の要素から最後の要素へだから当然ながらin orderの意味を含む
もしも、上の表現を使ってin orderを保証しないことを意図する言語仕様があったら、
その言語仕様を書いた人間が英語(というよりも人間の使う言葉)の常識を知らないと言うべきレベルの代物
procの適用にin orderを保証したくないのならば"from the first elements to the last"などではなく、例えば
“(map) Applies proc to every elements of the lsts exactly once”とでも書くべき
というか、そもそもR5RSでのmapに関する表現をそのまま使えば良い
>>194
なるほど、インターリーヴを起こしてはならない、ということですね
良い反例ですね、了解しました
確かにそれだと並列処理という話は排除されますね
200デフォルトの名無しさん
2020/04/30(木) 01:56:25.80ID:qpY4nJGd 実用性皆無の話だなschemeらしいや
racketとの比較ならr6だと思うのだが
しかもr7でなくr5とな
scheme間でさえ移植性は低いんだからどんな挙動でも良いんじゃねえか
racketはまだ実装が複数存在するような状況ではないらしいが
schemeとは文化が違うんで実用性に舵切った仕切りになりそうね
racketとの比較ならr6だと思うのだが
しかもr7でなくr5とな
scheme間でさえ移植性は低いんだからどんな挙動でも良いんじゃねえか
racketはまだ実装が複数存在するような状況ではないらしいが
schemeとは文化が違うんで実用性に舵切った仕切りになりそうね
201デフォルトの名無しさん
2020/04/30(木) 02:18:30.11ID:7t452aCV >>199
> "from the first elements to the last"は最初の要素から最後の要素へだから当然ながらin orderの意味を含む
この説明は説明になってなかったですね
ちゃんと書くと、前置詞fromとtoとを同時に使う場合、前者は動詞が表す行為の始点を、後者は終点を表す
つまり
> "from the first elements to the last"
という表現は先頭の要素たちがprocをapplyするという行為は、その行為の始点が先頭要素で終点が末尾の要素となる経路から成るということ
そうであるので、途中の要素に関しては193が心配している通り順序通り(in order)とは確かに書いていないけれど、
少なくとも最初に適用されるのは先頭要素たちで最後に適用されるのは最終要素だということは上の引用した英語句から確かだということ
applyを行う最初と最後はそれぞれ先頭と末尾でなければならないのに途中はランダムでも可というのは不自然すぎる
(なぜ最初と最後だけは変更を許さず先頭と末尾に確定させるのか?、ランダムを許すならば最初・最後も含め全部がランダム可にするのが自然)
ということだ
もし最初および最後だけはそれぞれ先頭および最後だけに限定し、それ以外の途中の順番だけは規定したくない、という極めて不自然な仕様にしたいならば
誤解させないように、「但し、最初・最後以外の途中の順番は自由で規定しない」という趣旨の語句を挟む必要がある
> "from the first elements to the last"は最初の要素から最後の要素へだから当然ながらin orderの意味を含む
この説明は説明になってなかったですね
ちゃんと書くと、前置詞fromとtoとを同時に使う場合、前者は動詞が表す行為の始点を、後者は終点を表す
つまり
> "from the first elements to the last"
という表現は先頭の要素たちがprocをapplyするという行為は、その行為の始点が先頭要素で終点が末尾の要素となる経路から成るということ
そうであるので、途中の要素に関しては193が心配している通り順序通り(in order)とは確かに書いていないけれど、
少なくとも最初に適用されるのは先頭要素たちで最後に適用されるのは最終要素だということは上の引用した英語句から確かだということ
applyを行う最初と最後はそれぞれ先頭と末尾でなければならないのに途中はランダムでも可というのは不自然すぎる
(なぜ最初と最後だけは変更を許さず先頭と末尾に確定させるのか?、ランダムを許すならば最初・最後も含め全部がランダム可にするのが自然)
ということだ
もし最初および最後だけはそれぞれ先頭および最後だけに限定し、それ以外の途中の順番だけは規定したくない、という極めて不自然な仕様にしたいならば
誤解させないように、「但し、最初・最後以外の途中の順番は自由で規定しない」という趣旨の語句を挟む必要がある
202_
2020/05/03(日) 15:45:23.91ID:XyvLD4Kl そうこうしているうち Racket 7.7 リリースされたよ。
https://blog.racket-lang.org/2020/05/racket-v7-7.html
個人的なトピックス
・イミュータブルで高速なハッシュテーブルHAMT(hash array mapped trie)がインプリされた。
・コンパイラの最適化でコードサイズ20%減。
・GC1,2割高速化。
・ドキュメント改善。
https://blog.racket-lang.org/2020/05/racket-v7-7.html
個人的なトピックス
・イミュータブルで高速なハッシュテーブルHAMT(hash array mapped trie)がインプリされた。
・コンパイラの最適化でコードサイズ20%減。
・GC1,2割高速化。
・ドキュメント改善。
203デフォルトの名無しさん
2020/05/03(日) 18:58:12.70ID:BS5ww13P 今の Racket は
ChezScheme をバックエンドにしたやつと従来からのやつがどちらも配信されているけど、
これって将来的には一本化される予定ってあるのかな?
ChezScheme をバックエンドにしたやつと従来からのやつがどちらも配信されているけど、
これって将来的には一本化される予定ってあるのかな?
204デフォルトの名無しさん
2020/05/04(月) 08:02:38.27ID:QFOyDpRt hy言語をwindows10で使いたい
pip install hyは成功するが
コマンドプロンプトでhyと入力してもhyが実行されない
変なパスの設定がいる?
pip install hyは成功するが
コマンドプロンプトでhyと入力してもhyが実行されない
変なパスの設定がいる?
205デフォルトの名無しさん
2020/05/04(月) 17:14:51.89ID:WvOaLqMC >>204
管理者権限でインストールしたなら C:\Program Files\Python37\Scripts だけど、
ユーザ権限なら %LocalAppData%\Programs\Python の下のどこからしい。
管理者権限でインストールしたなら C:\Program Files\Python37\Scripts だけど、
ユーザ権限なら %LocalAppData%\Programs\Python の下のどこからしい。
206デフォルトの名無しさん
2020/05/07(木) 13:26:34.69ID:fANici3H >>202
キタ━━━━(゚∀゚)━━━━!!
キタ━━━━(゚∀゚)━━━━!!
207デフォルトの名無しさん
2020/05/29(金) 15:53:20.54ID:Xj9bBIl5208デフォルトの名無しさん
2020/05/31(日) 00:46:42.64ID:RkS0wDCU Common Lispは使い込まないと頭に入ってこないが
Racketにはドキュメント読んだだけで頭にすっと入ってくる綺麗さがあった
最近のRacketって昔と同じ感じの綺麗なままなんだろうか
最近読んだRacketの() []の括弧を区別する方法のドキュメントがわかりにくくて
RacketもCommonLispと同じなってしまって,これならCommon Lispでいいじゃん
と思ったのだが
Racketにはドキュメント読んだだけで頭にすっと入ってくる綺麗さがあった
最近のRacketって昔と同じ感じの綺麗なままなんだろうか
最近読んだRacketの() []の括弧を区別する方法のドキュメントがわかりにくくて
RacketもCommonLispと同じなってしまって,これならCommon Lispでいいじゃん
と思ったのだが
209デフォルトの名無しさん
2020/05/31(日) 16:35:47.71ID:6jrbJecg > 最近読んだRacketの() []の括弧を区別する方法
racketがschemeから枝分かれして10年だがracketになるよりまえのr6rsからだろ
たまにしか書かない程度ならなんでも良いだろ大袈裟だな
racketがschemeから枝分かれして10年だがracketになるよりまえのr6rsからだろ
たまにしか書かない程度ならなんでも良いだろ大袈裟だな
210はちみつ餃子 ◆8X2XSCHEME
2020/06/01(月) 02:26:33.76ID:0yVOdbpz Racket は元は教育用途で使われていたこともあってドキュメントはかなり整備されている部類だと思うが。
211デフォルトの名無しさん
2020/06/02(火) 22:21:53.62ID:0sTsfEfs 他の言語と比べてCommon Lispっぽい書き方、Schemeっぽい書き方ってどんな書き方ですかね
212デフォルトの名無しさん
2020/06/03(水) 00:06:28.05ID:OT4MJN13 そら末尾再帰をふんだんに使うとか変数はなるべく使わないとか
213デフォルトの名無しさん
2020/06/03(水) 00:18:32.67ID:5C2VTXl3 CLっぽい書き方はマクロを使いまくった超絶技巧だろう
Schemeっぽい書き方は兎に角無理矢理に再起呼び出しを使った超絶技巧な書き方だろう
Schemeっぽい書き方は兎に角無理矢理に再起呼び出しを使った超絶技巧な書き方だろう
214デフォルトの名無しさん
2020/06/03(水) 01:17:24.97ID:gRMTE3Wt ダイナミックスコープ活用してるの見るとcommon lispだなぁって思う
215デフォルトの名無しさん
2020/06/03(水) 09:04:50.18ID:yr2/b+Mr 括弧のやまがある時点でlispっぽい。あとはまあ、ラムダ式とかもほかに普及してきてるから、マクロかなぁ。
216デフォルトの名無しさん
2020/06/05(金) 13:14:24.46ID:dnBRE6E+ hy言語良いのにpython使いが良さをわかってくれない
217デフォルトの名無しさん
2020/06/05(金) 23:11:11.70ID:gXepSjvX 見るからに検索に引っかからなそう
名前って大事だよね・・・
名前って大事だよね・・・
218デフォルトの名無しさん
2020/06/26(金) 20:41:33.71ID:zhAvJTli LispworksのprofessionalとhobbyistDVどう違うの?
219デフォルトの名無しさん
2020/06/27(土) 16:06:22.83ID:9QvR4hLZ Lispworksのprofessional 32bitかhobbyistDV 64bitどっち買うか迷う
220デフォルトの名無しさん
2020/06/29(月) 08:04:38.82ID:bwiS8r2m >>218
hobbyistDVは業務で使うことはできんくて作成したEXEも配布できないです
professionalは業務用途で無制限の配布ライセンス込みです
業務で使用するEXEの配布をするのが目的かどうかでしょうね
hobbyistDVは業務で使うことはできんくて作成したEXEも配布できないです
professionalは業務用途で無制限の配布ライセンス込みです
業務で使用するEXEの配布をするのが目的かどうかでしょうね
221デフォルトの名無しさん
2020/07/21(火) 23:47:51.88ID:WS1OAOc5 Pythonぽい独自言語をpythonに変換したい
Lispは使わずpythonのパーサー使った方が楽だろうか
Lispは使わずpythonのパーサー使った方が楽だろうか
222デフォルトの名無しさん
2020/07/22(水) 00:07:10.65ID:Rr/gpg4T >>221
PythonぽいならPythonに変換すればいいだろ!
PythonぽいならPythonに変換すればいいだろ!
223デフォルトの名無しさん
2020/07/22(水) 19:30:54.17ID:Cq/LgZJ4 hyこういう時に使えるのか
224デフォルトの名無しさん
2020/08/21(金) 21:28:14.79ID:l/GdGvyy racketでデバッグするのは
DrRacketを使うしかない?
コマンドラインでデバッグできたらいいんだが
DrRacketを使うしかない?
コマンドラインでデバッグできたらいいんだが
225はちみつ餃子 ◆8X2XSCHEME
2020/08/24(月) 02:59:00.85ID:ko9AntT7 デバッグってどういうレベルのことだろ。
REPL はあるんだからそこから実行してみればいいんじゃね。
REPL はあるんだからそこから実行してみればいいんじゃね。
226デフォルトの名無しさん
2020/10/05(月) 07:37:00.61ID:VkmQCekf Python のpandasが日時関係処理充実しすぎて手放せない
しかしlispで似たことできるなら乗り換えたい
Pandasのデータからガントチャート作ってくれさえすればいいのだけど
Lispに相当するものないでしょうか
しかしlispで似たことできるなら乗り換えたい
Pandasのデータからガントチャート作ってくれさえすればいいのだけど
Lispに相当するものないでしょうか
227デフォルトの名無しさん
2020/10/05(月) 23:29:50.84ID:+akcWJTJ 既に手放せないほどのものを漠然としたlispへの印象で乗り換えたら全てが満足したという話は寡聞にして知らない
228デフォルトの名無しさん
2020/10/07(水) 06:01:50.72ID:K2xU1fKa pandasはRの劣化コピーで
Rはschemeと相性がいいから
Rに乗り換えると良いのでは?
Rはschemeと相性がいいから
Rに乗り換えると良いのでは?
229デフォルトの名無しさん
2020/10/07(水) 11:49:58.33ID:jq/8+j7g 邪道かもしれないが
hy使えばlisp でpandas使える
hy使えばlisp でpandas使える
230デフォルトの名無しさん
2020/10/16(金) 17:12:58.14ID:PUF6e3pG lispは他の言語に寄生して生きていくしかないね
pyレベルのライブラリなんて期待できないし
pyレベルのライブラリなんて期待できないし
231デフォルトの名無しさん
2020/10/16(金) 18:49:22.22ID:gzagFIoh Luaみたいな用途なら需要がある気がする
232デフォルトの名無しさん
2020/10/16(金) 19:26:16.21ID:eDnfO719 時期にcommon lisp でできるようになるかも
最近numpyのcommonlisp版作るnumcl ってプロジェクトあるし
最近numpyのcommonlisp版作るnumcl ってプロジェクトあるし
233デフォルトの名無しさん
2020/10/16(金) 19:47:49.92ID:gzagFIoh カッコなし、字下げか空白だけで繋ぐlispとかあったら3レス分くらい流行るかも
234デフォルトの名無しさん
2020/10/16(金) 22:46:57.54ID:uQ0QovW5 >>233
たとえば(/(+ 1 2 3 4 5) 5)はどうなるの
/
+
1 2 3 4 5
5
こうかな?
たとえば(/(+ 1 2 3 4 5) 5)はどうなるの
/
+
1 2 3 4 5
5
こうかな?
235デフォルトの名無しさん
2020/10/16(金) 22:55:51.98ID:uQ0QovW5 無限ループ
((lambda(x)(x x))(lambda(x)(x x)))
こういうのだと字下げだけでは対応できないから補助キーワードが必要になる
call
lambda x
call x x
lambda x
call x x
こうかな
無意味に行数が増える時点で自分的に却下だけど
((lambda(x)(x x))(lambda(x)(x x)))
こういうのだと字下げだけでは対応できないから補助キーワードが必要になる
call
lambda x
call x x
lambda x
call x x
こうかな
無意味に行数が増える時点で自分的に却下だけど
236はちみつ餃子 ◆8X2XSCHEME
2020/10/17(土) 01:28:29.67ID:EbfBq8oa >>233-235
Scheme での提案として存在はする。
https://srfi.schemers.org/srfi-49/srfi-49.html
でも使われているのを見たことは無いなー。
そこまで括弧が嫌いならあえて Lisp の系統の言語を使わなくても
他の選択肢はいくらでもあるわけだしな。
Scheme での提案として存在はする。
https://srfi.schemers.org/srfi-49/srfi-49.html
でも使われているのを見たことは無いなー。
そこまで括弧が嫌いならあえて Lisp の系統の言語を使わなくても
他の選択肢はいくらでもあるわけだしな。
237デフォルトの名無しさん
2020/10/17(土) 09:40:24.61ID:aI2oeiUv なんていうか、何も変わらんなあ…
カッコがないのにカッコが見える
カッコがないのにカッコが見える
238デフォルトの名無しさん
2020/10/17(土) 13:45:30.78ID:FBaj+4Vy AST をそのままかけるのが lisp の欠点であるし強みでもあるんだから、それが嫌なら他言語で AST をいじれるライブラリーを使ってかけって話だしね
239はちみつ餃子 ◆8X2XSCHEME
2020/10/17(土) 16:11:43.70ID:EbfBq8oa >>237
Indentation-sensitive syntax ( I 式) は S 式との間での単純な変換規則なので
S 式を忘れて書けるほどの抽象度ではないという感覚はわかる。
むしろ脳内で S 式に展開しようとしてしまって変に負荷がかかる感じがある。
最初から I 式で学んでいればまた違う感覚なのかもしれないけど、
そういう学習ルートは確立してないしなぁ。
Indentation-sensitive syntax ( I 式) は S 式との間での単純な変換規則なので
S 式を忘れて書けるほどの抽象度ではないという感覚はわかる。
むしろ脳内で S 式に展開しようとしてしまって変に負荷がかかる感じがある。
最初から I 式で学んでいればまた違う感覚なのかもしれないけど、
そういう学習ルートは確立してないしなぁ。
240デフォルトの名無しさん
2020/11/03(火) 18:17:12.28ID:mQdztdM9 趣味プログラマでLispしか知らないんだけど、
みんなはやりたいことの応じて言語を使い分けてんの?
みんなはやりたいことの応じて言語を使い分けてんの?
241デフォルトの名無しさん
2020/11/04(水) 09:41:10.74ID:lIQnEWld >>240
そりゃ使い分ける
たとえば速さや移植性を重視するときは今でもCが手放せない
一時Rustも使ってみたけどLLVMに縛られるのでCに戻った
あと複雑なことをしないグループログラムだとPythonが楽
ネットを探せば必要なライブラリはだいたい手に入る
そりゃ使い分ける
たとえば速さや移植性を重視するときは今でもCが手放せない
一時Rustも使ってみたけどLLVMに縛られるのでCに戻った
あと複雑なことをしないグループログラムだとPythonが楽
ネットを探せば必要なライブラリはだいたい手に入る
242はちみつ餃子 ◆8X2XSCHEME
2020/11/04(水) 12:06:16.91ID:gK1y19nz なんだかんだで C だけは手放せない感じはあるかな。
低レイヤを支配してるのはやっぱ C だわ。
それもこれからは一部は Go や Rust に置き換わっていくとは思うけど。
低レイヤを支配してるのはやっぱ C だわ。
それもこれからは一部は Go や Rust に置き換わっていくとは思うけど。
244はちみつ餃子 ◆8X2XSCHEME
2020/11/05(木) 17:06:21.53ID:CL/4cqPq >>243
そりゃ当然できるよ。 呼び出すだけなら難しい手間は何もない。
ただ、 C の側のコードの保証が弱すぎる。
たとえば (C側で) malloc で確保したメモリは Go や Rust の側でいつ解放するのが
正しいのかわからないのでそのあたりのつじつま合わせは手動で頑張るしかない。
多少のラッパーを書く必要はあったりする。
そりゃ当然できるよ。 呼び出すだけなら難しい手間は何もない。
ただ、 C の側のコードの保証が弱すぎる。
たとえば (C側で) malloc で確保したメモリは Go や Rust の側でいつ解放するのが
正しいのかわからないのでそのあたりのつじつま合わせは手動で頑張るしかない。
多少のラッパーを書く必要はあったりする。
245デフォルトの名無しさん
2020/11/14(土) 17:07:17.70ID:sHUc2peo 趣味でやっててhyperspec引きながらやりたいことできるようにはなってきたんだけど、
ガッコで系統的勉強したわけじゃないし、自分でやっててもうちょっとええ方法あってもいいよなあとか思うんだけど、
なんかいい勉強方法ある?PAIPはイヤ。
ガッコで系統的勉強したわけじゃないし、自分でやっててもうちょっとええ方法あってもいいよなあとか思うんだけど、
なんかいい勉強方法ある?PAIPはイヤ。
246デフォルトの名無しさん
2020/11/15(日) 01:33:48.20ID:A4lXbstU SICPとCTMCPとかどうかな。
LISPじゃなくてプログラミング全般を体系的に学ぶ話になるけど。
LISPじゃなくてプログラミング全般を体系的に学ぶ話になるけど。
247はちみつ餃子 ◆8X2XSCHEME
2020/11/15(日) 03:50:11.96ID:x+/Z2zzY 日本語で書かれた Common Lisp の本はほとんど絶版になっちゃってるしなぁ……。
ガチの初心者なら Land of Lisp とかもアリかと思うけど、自分でリファレンスを調べられる程度ということになると
逆にちょうどよい書籍ってあまりない感じだよね。
ガチの初心者なら Land of Lisp とかもアリかと思うけど、自分でリファレンスを調べられる程度ということになると
逆にちょうどよい書籍ってあまりない感じだよね。
248デフォルトの名無しさん
2020/11/16(月) 14:24:47.42ID:0hfDZfuV 使ってる処理系のソースを読んだり処理系を作ってみる
249デフォルトの名無しさん
2020/11/16(月) 20:37:45.98ID:ui1G6s5+ on lisp好き
let over lamda変態チックで好き
でも今はsmalltalkerになってしまったよ
let over lamda変態チックで好き
でも今はsmalltalkerになってしまったよ
250デフォルトの名無しさん
2020/11/17(火) 01:49:08.02ID:k3t+4yVm lolのワクワク感はすごい、とりあえず写経したけど理解が追いついてないのでg!無し版を実装中
初心者だけどlisp関連の良書はかなりネットに上がってるよね、cltl2、onlisp,、lol、sicpなどなど
初心者だけど評判良さそうだからとホイホイ買ったのをネットで見付けてはヘコんでる
初心者だけどlisp関連の良書はかなりネットに上がってるよね、cltl2、onlisp,、lol、sicpなどなど
初心者だけど評判良さそうだからとホイホイ買ったのをネットで見付けてはヘコんでる
251デフォルトの名無しさん
2020/11/17(火) 01:59:11.44ID:k3t+4yVm (大事なことなので)
252デフォルトの名無しさん
2020/11/28(土) 21:43:05.36ID:IG5x2Tcu みんな、fletとかlabels使うの?
俺全然使わないんだけど。
俺全然使わないんだけど。
253デフォルトの名無しさん
2020/11/29(日) 02:14:37.33ID:JzQZ+ZwM labelsはよく使う
fletはネストが深くなって読みにくくなるので嫌い
fletはネストが深くなって読みにくくなるので嫌い
254デフォルトの名無しさん
2020/12/01(火) 23:12:43.95ID:Ul2ITO5q スキーム手習いなんですけど
前の章までしっかり理解してから読み進めてくださいとのことですが
継続渡しから急に難しく感じます
そこまでが理解できてないってこと??
前の章までしっかり理解してから読み進めてくださいとのことですが
継続渡しから急に難しく感じます
そこまでが理解できてないってこと??
255はちみつ餃子 ◆8X2XSCHEME
2020/12/02(水) 11:19:13.62ID:wCsCmSK2 >>254
私はその本を持っていないから具体的なことはわからんけど、
不慣れな初心者にとって継続渡しは実際に難しいと思う。
でも「難しい」だけで「理解できない」わけじゃないならたぶん前章まで一応の理解はできてるんじゃないかな。
私はその本を持っていないから具体的なことはわからんけど、
不慣れな初心者にとって継続渡しは実際に難しいと思う。
でも「難しい」だけで「理解できない」わけじゃないならたぶん前章まで一応の理解はできてるんじゃないかな。
256デフォルトの名無しさん
2020/12/02(水) 12:39:58.54ID:2sTDa/BO 継続渡しスタイルに書き換える方法がわからないではなくて継続渡しスタイルに書き換える意味がわからないからかな?
257はちみつ餃子 ◆8X2XSCHEME
2020/12/02(水) 13:45:58.76ID:wCsCmSK2 ああ。 なるほど。
継続渡し形式でプログラムを書くことは実際にまず無いし便利でもないので
その点では意味不明と感じられても仕方がないことではあるな。
後の話 (第一級継続) に繋がる前振りだと思うので、
この時点ではパズルとでも思ってとりあえずこなすしかないわ。
継続渡し形式でプログラムを書くことは実際にまず無いし便利でもないので
その点では意味不明と感じられても仕方がないことではあるな。
後の話 (第一級継続) に繋がる前振りだと思うので、
この時点ではパズルとでも思ってとりあえずこなすしかないわ。
258デフォルトの名無しさん
2020/12/02(水) 22:18:09.20ID:3rT4yRJc259256
2020/12/02(水) 22:40:35.57ID:2sTDa/BO 俺はsicpでcall-cc出てきてもさっぱり理解できなかったけど、
onlispで継続の実装を読んでやっと理解できた。
継続でできることってのは超高性能goto(?)が使えるようになることなんだけど、
そのためには継続渡しスタイルで今までの状態(実際はクロージャだけど)の全部または一部を渡して計算をしていくんだよ。
渡されたクロージャのどれかを呼び出す事によって以前の状態に復帰できる。
みたいなことだったと思う。空覚えなんで誰か突っ込んでね。
それと本のわからんところのコードを貼れば誰か解説してくれんじゃない。
onlispで継続の実装を読んでやっと理解できた。
継続でできることってのは超高性能goto(?)が使えるようになることなんだけど、
そのためには継続渡しスタイルで今までの状態(実際はクロージャだけど)の全部または一部を渡して計算をしていくんだよ。
渡されたクロージャのどれかを呼び出す事によって以前の状態に復帰できる。
みたいなことだったと思う。空覚えなんで誰か突っ込んでね。
それと本のわからんところのコードを貼れば誰か解説してくれんじゃない。
260デフォルトの名無しさん
2020/12/02(水) 22:45:58.51ID:2sTDa/BO 超高性能gotoって書いてるのは普通の言語のgotoって同じ関数内でしかジャンプできないんだけど、
継続なら安全に関数間でもジャンプできるっていう意味。
継続なら安全に関数間でもジャンプできるっていう意味。
261デフォルトの名無しさん
2020/12/02(水) 22:48:34.44ID:2sTDa/BO 継続はわかってしまえば当たり前でどこにでも存在してるんだけど、
継続を考えたやつは本当頭いいわとおもった。
継続を考えたやつは本当頭いいわとおもった。
262はちみつ餃子 ◆8X2XSCHEME
2020/12/02(水) 23:20:42.42ID:wCsCmSK2 >>258
「プログラミング言語 Scheme」や「プログラミング Gauche」でもそういう手順で説明されている。
ネット上で見つかる解説でもよくあるパターン。
http://www.shido.info/lisp/scheme_cc.html
http://www.nct9.ne.jp/m_hiroi/func/abcscm20.html
ようするに定番なんですわ……。
「プログラミング言語 Scheme」や「プログラミング Gauche」でもそういう手順で説明されている。
ネット上で見つかる解説でもよくあるパターン。
http://www.shido.info/lisp/scheme_cc.html
http://www.nct9.ne.jp/m_hiroi/func/abcscm20.html
ようするに定番なんですわ……。
263デフォルトの名無しさん
2020/12/03(木) 00:08:17.53ID:BSRv8eBD264デフォルトの名無しさん
2020/12/03(木) 12:12:09.32ID:vc9+WZu6 Landin's J operator の糖衣みたいなもんじゃ?
call-ccって.
call-ccって.
265デフォルトの名無しさん
2020/12/03(木) 14:15:21.78ID:sf+VFKLQ 普段cl書きなんでこのまま動くか知らんが、雰囲気はたぶん
(define call/cc (lambda (func) (func (J (lambda x x)))
(define call/cc (lambda (func) (func (J (lambda x x)))
266デフォルトの名無しさん
2020/12/03(木) 19:48:43.98ID:1MHSKMz8 >>258
継続渡しの初期の用例にヒューイットのアクター理論があるように
並行性が絡むと有り難いこともあるけど
Schemeの規格にそういうのがないから
Gaucheを使ったウェブアプリサーバーにKahuaってのがあったけど
あれが継続渡しを使ってたはず
継続渡しの初期の用例にヒューイットのアクター理論があるように
並行性が絡むと有り難いこともあるけど
Schemeの規格にそういうのがないから
Gaucheを使ったウェブアプリサーバーにKahuaってのがあったけど
あれが継続渡しを使ってたはず
267デフォルトの名無しさん
2020/12/04(金) 22:12:04.78ID:9AUT9QCq エンジニアが教えるの下手くそな理由を論理的に解説してみた【教育の本質】
https://www.youtube.com/watch?v=3YwyYSj-k2s
派遣エージェントの言う事は9割ウソである理由【カモられない方法】
https://www.youtube.com/watch?v=8DxQFLAuFqo&t=231s
IT業界のヤバすぎる落とし穴5選
https://www.youtube.com/watch?v=WPPCJ4o-mpA
絶対にエンジニアになってはいけない人とは【ハイクラス人材】
https://www.youtube.com/watch?v=kKUC7rZRUtc
りゅうけんKENTAマナブは怪しいアフィ勢だとベテランエンジニア(笑)に言われるらしいwww
https://www.youtube.com/watch?v=Cp7ByHiFk6Y
【個人で稼ぐ】会社を辞める前に習得しておくべきスキル5選
https://www.youtube.com/watch?v=8WB4O1V6YLg
【聞いてください】「会社員」という働き方の本当のヤバさ
https://www.youtube.com/watch?v=HbIAACbQkPc
サラリーマンが知らないフリーランスの真実
https://www.youtube.com/watch?v=vxVG8eAQbsc
https://www.youtube.com/watch?v=3YwyYSj-k2s
派遣エージェントの言う事は9割ウソである理由【カモられない方法】
https://www.youtube.com/watch?v=8DxQFLAuFqo&t=231s
IT業界のヤバすぎる落とし穴5選
https://www.youtube.com/watch?v=WPPCJ4o-mpA
絶対にエンジニアになってはいけない人とは【ハイクラス人材】
https://www.youtube.com/watch?v=kKUC7rZRUtc
りゅうけんKENTAマナブは怪しいアフィ勢だとベテランエンジニア(笑)に言われるらしいwww
https://www.youtube.com/watch?v=Cp7ByHiFk6Y
【個人で稼ぐ】会社を辞める前に習得しておくべきスキル5選
https://www.youtube.com/watch?v=8WB4O1V6YLg
【聞いてください】「会社員」という働き方の本当のヤバさ
https://www.youtube.com/watch?v=HbIAACbQkPc
サラリーマンが知らないフリーランスの真実
https://www.youtube.com/watch?v=vxVG8eAQbsc
268デフォルトの名無しさん
2020/12/07(月) 13:18:23.95ID:kze+rPTU 結局call/ccは実装読んだ方が早い
269デフォルトの名無しさん
2020/12/08(火) 00:25:26.96ID:g/rTchWW そういう発想はschemeっぽくないと思う
これはコンピュータにかける魔法言語なんだからぁ
これはコンピュータにかける魔法言語なんだからぁ
270デフォルトの名無しさん
2020/12/08(火) 10:24:39.14ID:7buWiz9t schemeは知らんがclでcall/ccエミュってるぞ、こういうのは勉強になる
閲覧無料の論文もたくさん出てくるし、確かrosetta code(だったか)に少し残念だけど動く実装載ってた気がする
デフォでdynamic scopeのclの方が(エミュる)のはむしろ簡単な気がする
閲覧無料の論文もたくさん出てくるし、確かrosetta code(だったか)に少し残念だけど動く実装載ってた気がする
デフォでdynamic scopeのclの方が(エミュる)のはむしろ簡単な気がする
271デフォルトの名無しさん
2020/12/10(木) 03:16:14.79ID:FVBY7yTa clデフォでdynamic scopeじゃないな
どういうcps実装なん
どういうcps実装なん
272デフォルトの名無しさん
2020/12/10(木) 19:52:56.52ID:m5YUCflP dr.schemeを起動したらada lavelaceが表示された。12月10日が誕生日らしい。
273デフォルトの名無しさん
2020/12/18(金) 00:23:57.39ID:xE2tdWzM 3月にサスマンの新しい本が出ますね
274デフォルトの名無しさん
2020/12/18(金) 00:35:54.39ID:wHl77nxB Software Design for Flexibility
How to Avoid Programming Yourself into a Corner
https://mitpress.mit.edu/books/software-design-flexibility
How to Avoid Programming Yourself into a Corner
https://mitpress.mit.edu/books/software-design-flexibility
276デフォルトの名無しさん
2021/01/02(土) 09:30:41.51ID:DXffwUjS 頑張れ
277はちみつ餃子 ◆8X2XSCHEME
2021/01/02(土) 12:55:01.66ID:rf+zWHQf 2018 年の話題へスレ内でアンカーできるあたり、だいぶん進みの遅いスレだなぁ……
ところで先月、 Gauche の 0.9.10 がリリースされたよ。
ところで先月、 Gauche の 0.9.10 がリリースされたよ。
278デフォルトの名無しさん
2021/01/11(月) 12:28:40.23ID:evx8yw3j 最近Clojureをさわって思ったんだけど、コンスって必要?ただのリストじゃだめなん?
279デフォルトの名無しさん
2021/01/11(月) 22:00:08.80ID:TgqHKx3G 最近はlistと言いつつ狭義のlist(linked)じゃなくlinked arrayな事が多いけどclosureもそれかな?(触ってないごめん
(三十年前の言語だけど)Pythonのコード読んだけどそうだったはず
計算量の議論なんかだとlinked listとarrayは一長一短ってことになってるが、アーキテクチャと殆どのデータの性質によって連結配列が実質万能なんで仕方ないね
抽象データ型としてcons/car/cdrというインターフェイスを提供してるなら十分lispだよ
consがなんでそんな大事なのかというと、普通に使われる抽象データ型の中では最も表現力が高いこと
単に自由に伸ばせるリストのようなモノでは、構文上バイナリツリーより複雑な構造は書きにくい(ポインタを駆使しない限り)
consが提供されていれば自然に平面DAGが、そしてちょっと読みにくくなる程度で任意のグラフが表現できる
化学構造やグラフをconsで扱ってるけどほんと便利だよ
(三十年前の言語だけど)Pythonのコード読んだけどそうだったはず
計算量の議論なんかだとlinked listとarrayは一長一短ってことになってるが、アーキテクチャと殆どのデータの性質によって連結配列が実質万能なんで仕方ないね
抽象データ型としてcons/car/cdrというインターフェイスを提供してるなら十分lispだよ
consがなんでそんな大事なのかというと、普通に使われる抽象データ型の中では最も表現力が高いこと
単に自由に伸ばせるリストのようなモノでは、構文上バイナリツリーより複雑な構造は書きにくい(ポインタを駆使しない限り)
consが提供されていれば自然に平面DAGが、そしてちょっと読みにくくなる程度で任意のグラフが表現できる
化学構造やグラフをconsで扱ってるけどほんと便利だよ
280デフォルトの名無しさん
2021/01/11(月) 23:51:15.24ID:TgqHKx3G 書きにくい/やすい、ってのは環や分岐がcarとcdrとconsだけで書けるって意味ね
これらのアクセサが提供されていない言語、例えはPythonやcではリストのインデックスに対応する参照/ポインタを明示的に取り出して記録し、アドレスを格納する必要がある
またアルゴリズムにかける時に素の型とポインタ型を区別して場合分けする必要まである
そのまま文字列として吐くのも実装しなくていいし(リンク先のインデックス表示が読みやすいとは言わないが)
PythonなんかだとオブジェクトがリッチなのでnetworkXのような巨大なライブラリを使えば木を超えた表現も自然にかけるので、一時浮気をしたが…
形式言語の分野だともう線形な文字列や二分木の括弧文法は研究され尽くしてるので、グラフ文法なんかが最近流行ってlisp系言語で論文書かれてるね
これらのアクセサが提供されていない言語、例えはPythonやcではリストのインデックスに対応する参照/ポインタを明示的に取り出して記録し、アドレスを格納する必要がある
またアルゴリズムにかける時に素の型とポインタ型を区別して場合分けする必要まである
そのまま文字列として吐くのも実装しなくていいし(リンク先のインデックス表示が読みやすいとは言わないが)
PythonなんかだとオブジェクトがリッチなのでnetworkXのような巨大なライブラリを使えば木を超えた表現も自然にかけるので、一時浮気をしたが…
形式言語の分野だともう線形な文字列や二分木の括弧文法は研究され尽くしてるので、グラフ文法なんかが最近流行ってlisp系言語で論文書かれてるね
281デフォルトの名無しさん
2021/01/12(火) 00:03:51.23ID:XqNkUArk 連投してごめんだけど、環や分岐がポインタ使わず自在に描けるのはかしこいsetfの寄与もある、って書き忘れてた(schemeはset-cdr!だっけ)
念のため
念のため
282デフォルトの名無しさん
2021/01/13(水) 22:45:17.14ID:c60O+Iz7 >>279
興味深い内容をありがとう
ちょこちょこ遊んでいるだけなので到底そこまで使いこなせる気がしないけど、
データをプログラム中にストレートに表現して操作できるというのはよく分かる
他の言語だとデータを保持するためにわざわざクラス設計からしないと
いけないような強迫観念にかられるけど、lispはそういう気にならない
興味深い内容をありがとう
ちょこちょこ遊んでいるだけなので到底そこまで使いこなせる気がしないけど、
データをプログラム中にストレートに表現して操作できるというのはよく分かる
他の言語だとデータを保持するためにわざわざクラス設計からしないと
いけないような強迫観念にかられるけど、lispはそういう気にならない
283デフォルトの名無しさん
2021/01/14(木) 12:13:04.15ID:/NlgSZrU データ型を定義しないのはトイプログラムだけだけどな
Lispはリストだけ使うのが通だとか善意で広めないでくれよ
Lispはリストだけ使うのが通だとか善意で広めないでくれよ
284はちみつ餃子 ◆8X2XSCHEME
2021/01/14(木) 22:43:13.17ID:9qLPLWCT (カッチリした型を中心にする言語に比べれば) 最初はラフに
書き始められるというのはあると思うよ。
でも、そのままだと千行くらいの規模でももうだいぶんキツいんじゃないかな。
人によってはコードを書く腕力 (?) というか強引に行けちゃう人もいるけど、
雑に試行錯誤できるということとそこから部品として確立するのは別の段階なので、
試行錯誤で弄ってるときと同じノリでどんどん拡大していったら
すぐわけわからんようになる。
世間で思われているよりは型定義はすると私も思う。
書き始められるというのはあると思うよ。
でも、そのままだと千行くらいの規模でももうだいぶんキツいんじゃないかな。
人によってはコードを書く腕力 (?) というか強引に行けちゃう人もいるけど、
雑に試行錯誤できるということとそこから部品として確立するのは別の段階なので、
試行錯誤で弄ってるときと同じノリでどんどん拡大していったら
すぐわけわからんようになる。
世間で思われているよりは型定義はすると私も思う。
285デフォルトの名無しさん
2021/01/15(金) 01:43:39.29ID:Hai3vgIl そういう後付けのボイラープーレトにはCLOSやジェネリックよりコンパイラマクロが便利ね
286デフォルトの名無しさん
2021/01/15(金) 21:24:11.84ID:6113KkR6 ここでいう型定義はdeftypeのことを指しているのでしょうか
287はちみつ餃子 ◆8X2XSCHEME
2021/01/16(土) 09:43:26.51ID:uH9KWN6j Common Lisp でなら deftype とか defclass とかいったものを使うことになるんかな。
私は Scheme しか知らんからよくわからんけど。
私は Scheme しか知らんからよくわからんけど。
288デフォルトの名無しさん
2021/01/17(日) 08:06:30.53ID:MtDeBO+C289デフォルトの名無しさん
2021/01/17(日) 11:47:31.37ID:9ajuvsmH >>288
defgeneric/methodは勢いで書き上げた触りたくないコードに機能追加するにはコード触らなくちゃならない
型の付いていない複雑なconsはどうせdestructuring-bindして振り分けるしかないんだから分けてdefmethodする利点もない
define-compiler-macroなら一切既存のコードに触れる必要は無いからすごく便利だよ
既存のライブラリに手を入れたいけど、直接書き換えるとアップグレードで無かった事にされるから嫌、って時にも活躍する
もちろんリファクタリング出来るならした方がいいけど、取り敢えず動けば良い時の話ね
defgeneric/methodは勢いで書き上げた触りたくないコードに機能追加するにはコード触らなくちゃならない
型の付いていない複雑なconsはどうせdestructuring-bindして振り分けるしかないんだから分けてdefmethodする利点もない
define-compiler-macroなら一切既存のコードに触れる必要は無いからすごく便利だよ
既存のライブラリに手を入れたいけど、直接書き換えるとアップグレードで無かった事にされるから嫌、って時にも活躍する
もちろんリファクタリング出来るならした方がいいけど、取り敢えず動けば良い時の話ね
290デフォルトの名無しさん
2021/01/17(日) 12:14:47.80ID:fZnccXPg この場合、 alist はどっち側に分類されるのかな…
個人的にはだいたい alist で済ませてるけど。
個人的にはだいたい alist で済ませてるけど。
291はちみつ餃子 ◆8X2XSCHEME
2021/01/17(日) 12:16:55.56ID:ERThMJgw Lisp 的なスタイルだとかなり短いサイクルで開発が進むので、
リファクタリングしないまま手の付けられないほどグダグダになった状態は単にサイクルを
回すのが下手なように思うんだけど。
まあ上手くいってないときでもどうにかする方法があるのはありがたい話ではあるけどさ。
リファクタリングしないまま手の付けられないほどグダグダになった状態は単にサイクルを
回すのが下手なように思うんだけど。
まあ上手くいってないときでもどうにかする方法があるのはありがたい話ではあるけどさ。
292デフォルトの名無しさん
2021/01/17(日) 12:22:48.91ID:16Ro+9sx 既存のコードには手を入れず振る舞いだけに着目して付け足して行くってスタイルはaspect oriented programmingとか言うんだっけな
まあ盲で付け足してゆく事と同義ではないが
まあ盲で付け足してゆく事と同義ではないが
293デフォルトの名無しさん
2021/01/17(日) 12:36:52.37ID:16Ro+9sx >>290
plistの方が好きだな、pprintでkey-valのカラムに並べられるし、alistが要求されれば一段flattenすれば済む
consの数も同じだし好みでは
ただvalがlistだと(a . (b c))=(a b c)とformatされてしまうので(a . ((b c))) = (a . (b c))と書いてる
aとリストのペアなので意味的にも正しいはず
plistの方が好きだな、pprintでkey-valのカラムに並べられるし、alistが要求されれば一段flattenすれば済む
consの数も同じだし好みでは
ただvalがlistだと(a . (b c))=(a b c)とformatされてしまうので(a . ((b c))) = (a . (b c))と書いてる
aとリストのペアなので意味的にも正しいはず
294289
2021/01/17(日) 12:38:34.26ID:16Ro+9sx 最後は(a (b c))が正しい、.が余計だった
なんかid変わってたけど289です
なんかid変わってたけど289です
295289
2021/01/17(日) 12:54:42.47ID:16Ro+9sx 真意を掴めてなかった感がある
alist-pとplist-pを定義してる、よく見るし受け入れられてるイディオムだと思う
deftypeしておくといい
すると振り分けをdefmethodに任せる事が出来る
alist-pとplist-pを定義してる、よく見るし受け入れられてるイディオムだと思う
deftypeしておくといい
すると振り分けをdefmethodに任せる事が出来る
296デフォルトの名無しさん
2021/01/17(日) 22:27:16.25ID:MtDeBO+C deftypeしたtypeはclassじゃないからdefmethodできない
コンパイラマクロはプログラムの意味をかえたらいかんし
パッチするなら別定義のファイルを追加でloadすれば上書きされるのでコンパイラマクロする意味0
嘘ノウハウいらないです・・・
コンパイラマクロはプログラムの意味をかえたらいかんし
パッチするなら別定義のファイルを追加でloadすれば上書きされるのでコンパイラマクロする意味0
嘘ノウハウいらないです・・・
297デフォルトの名無しさん
2021/01/17(日) 23:38:13.35ID:4VqziDiv >>296
そうだっけ、ごめん確認してきます
そうだっけ、ごめん確認してきます
298デフォルトの名無しさん
2021/01/20(水) 01:48:17.88ID:9Gv1v6nA alist vs plist はalistの方がassocが(lisp的な意味で)簡潔になるから?で一票
assoc[x;y] = eq[caar[y];x] → cadar[y];T → assoc[x;cdr[y]]]
M式、[x→y; ...はapplyによってS式(QUOTE (COND (x y ) …に展開される
http://www-formal.stanford.edu/jmc/recursive.html
pdf17p
evalのボトムケースでもある大事なassoc、俺にはplist版は思いつかない
evenpが欲しいところだけど算術の定義がまだだし…
clのcx^nrがn=4までなのもcaddarまで使ってるからだろうかね
assoc[x;y] = eq[caar[y];x] → cadar[y];T → assoc[x;cdr[y]]]
M式、[x→y; ...はapplyによってS式(QUOTE (COND (x y ) …に展開される
http://www-formal.stanford.edu/jmc/recursive.html
pdf17p
evalのボトムケースでもある大事なassoc、俺にはplist版は思いつかない
evenpが欲しいところだけど算術の定義がまだだし…
clのcx^nrがn=4までなのもcaddarまで使ってるからだろうかね
299デフォルトの名無しさん
2021/01/20(水) 01:59:40.44ID:9Gv1v6nA ffとかappqとか見慣れない面白関数出てきて面白かった
first/restは単なるエイリアスでなくL-exp(線形リスプ?)における相似物としてちゃんと別に定義されてるとかも
あとpairがpairlisに改称した理由とか気になってる、次は1.5マニュアル読むか
小並感
first/restは単なるエイリアスでなくL-exp(線形リスプ?)における相似物としてちゃんと別に定義されてるとかも
あとpairがpairlisに改称した理由とか気になってる、次は1.5マニュアル読むか
小並感
300デフォルトの名無しさん
2021/01/22(金) 02:54:51.68ID:GlnM3g/q consesのカッコのネストを無視して初めのシンボルを返すffは、左端の簡約だけで導出が決まる特性を持つコンビネータ計算(SKなど)にとても重宝する関数だよ
applyを.と見なせば(論理学記法で)SKx = ((S K) x)はcons((S . K) . x)と等価
.
/ \
. x
/ \
S K
(ff ((S . K) . x)) ; => S
ffでSを得て、そこへのaccessor は(dfs 'S '((S . K) . x))で4行程度で実装出来る、carで潜る時にはpush 'car、cdrならpush 'car、その枝で見つからなかったときにはpopでSへのアクセサ(car car)が得られて、そのノードを公式に従ってsetf '公式すれば導出完了
lispと言えばラムダってイメージあるとおもうけど、むしろコンビータと相性が良い、特にclのラムダは細かなコントロールを求めた代償として明示的なapply/funcallが必要だからなあ
あとdotprintとか定義しとくと便利ね
applyを.と見なせば(論理学記法で)SKx = ((S K) x)はcons((S . K) . x)と等価
.
/ \
. x
/ \
S K
(ff ((S . K) . x)) ; => S
ffでSを得て、そこへのaccessor は(dfs 'S '((S . K) . x))で4行程度で実装出来る、carで潜る時にはpush 'car、cdrならpush 'car、その枝で見つからなかったときにはpopでSへのアクセサ(car car)が得られて、そのノードを公式に従ってsetf '公式すれば導出完了
lispと言えばラムダってイメージあるとおもうけど、むしろコンビータと相性が良い、特にclのラムダは細かなコントロールを求めた代償として明示的なapply/funcallが必要だからなあ
あとdotprintとか定義しとくと便利ね
301デフォルトの名無しさん
2021/01/22(金) 08:32:42.17ID:hEWi2BMh jmcはラムダ教徒だったろうになあ
いくらlispが形式言語処理向けとはいえ、機械的に処理するには置換が面倒過ぎる
いくらlispが形式言語処理向けとはいえ、機械的に処理するには置換が面倒過ぎる
302デフォルトの名無しさん
2021/01/26(火) 22:54:00.78ID:+x6NTk+g >>299
app(ly)-q(uote)?直訳するとこんな感じか
(defun appq (m)
(cond (null m) nil)
(t (cons (list 'quote (car m)))))
(appq (cdr m))
>(appq '(a b c d e))
; ('a 'b 'c 'd 'e)
(jmcの)applyは関数fをコレにconsしてS式 (#'f 'a 'b 'c ...)を得ると
common lispではformの先頭は関数名かラムダじゃないとダメなのでevalには'funcallか'applyを追加でconsする必要があるので、組み込みevalを使う限りは循環定義だな
app(ly)-q(uote)?直訳するとこんな感じか
(defun appq (m)
(cond (null m) nil)
(t (cons (list 'quote (car m)))))
(appq (cdr m))
>(appq '(a b c d e))
; ('a 'b 'c 'd 'e)
(jmcの)applyは関数fをコレにconsしてS式 (#'f 'a 'b 'c ...)を得ると
common lispではformの先頭は関数名かラムダじゃないとダメなのでevalには'funcallか'applyを追加でconsする必要があるので、組み込みevalを使う限りは循環定義だな
303デフォルトの名無しさん
2021/01/26(火) 23:06:50.96ID:+x6NTk+g 誤解してた
M式apply[f; args]の引数はシンボルなのでS式のapplyに渡ってくるのはfunction fじゃなくてシンボルfか
グローバルでdefunしたfなら多分呼べるはず、試してないけど
M式apply[f; args]の引数はシンボルなのでS式のapplyに渡ってくるのはfunction fじゃなくてシンボルfか
グローバルでdefunしたfなら多分呼べるはず、試してないけど
304デフォルトの名無しさん
2021/01/28(木) 03:52:37.47ID:52TUUvk8 cons-car-cdr公理主義者への反発として最近妙に感心してしまったポエムを貼っとく
https://arxiv.org/pdf/1507.05956
本当の基本関数はc、a、d、rでした
paulのon lispに載ってる(explode 'bomb) → (B O M B)がハマりそうと思い、実装してみたは良いけどなんに使うんだコレ…
楽しいからいいか
https://arxiv.org/pdf/1507.05956
本当の基本関数はc、a、d、rでした
paulのon lispに載ってる(explode 'bomb) → (B O M B)がハマりそうと思い、実装してみたは良いけどなんに使うんだコレ…
楽しいからいいか
305デフォルトの名無しさん
2021/02/06(土) 00:01:36.05ID:7zAE1WPt cxrとconsは表裏一体なので片手落ち
r•c = idになるからこそ
car•cdr = c•a•r•c•d•r = ca•(r•c)•dr = cadr
と読める訳であって
cxr • cons= id を成り立たせるにはcxons = id となるようなo, n, sも定義せねばならない
後はまかせた
r•c = idになるからこそ
car•cdr = c•a•r•c•d•r = ca•(r•c)•dr = cadr
と読める訳であって
cxr • cons= id を成り立たせるにはcxons = id となるようなo, n, sも定義せねばならない
後はまかせた
306デフォルトの名無しさん
2021/02/12(金) 22:14:51.72ID:rBgVuMm7 わたばさんのところ見て知ったけど
井田昌之先生のHPで
bit 1996-4、5月号、Guy L. Steele Jr.『Scheme 過去◇現在◇未来』(訳 井田昌之)
などの歴史資料PDFが読めるね
井田昌之先生のHPで
bit 1996-4、5月号、Guy L. Steele Jr.『Scheme 過去◇現在◇未来』(訳 井田昌之)
などの歴史資料PDFが読めるね
307はちみつ餃子 ◆8X2XSCHEME
2021/02/15(月) 14:15:58.52ID:GNSRFiac Racket のメジャーリリース。
https://blog.racket-lang.org/2021/02/racket-v8-0.html
ついに Chez Scheme の実行エンジンを組み込んだものがデフォになった。
https://blog.racket-lang.org/2021/02/racket-v8-0.html
ついに Chez Scheme の実行エンジンを組み込んだものがデフォになった。
308デフォルトの名無しさん
2021/02/16(火) 17:43:38.86ID:05vP8Ot3 普通のやつらを超えろおじさんのarcヲチするのにちょっとracketしてるけどフレンドリーかつ尖ってるね
どんどん尖ってゆけ
どんどん尖ってゆけ
309デフォルトの名無しさん
2021/02/16(火) 18:27:11.46ID:6gVrqubW グラハムさんは今はBel言語では
310デフォルトの名無しさん
2021/02/16(火) 19:02:11.29ID:05vP8Ot3 >>309
現在の俺がもしjmcだったら?とか言い出したので見限った
今ざっと目を通しても目新しいところ、興奮するところが全然ないんだなこれが
https://sep.yimg.com/ty/cdn/paulgraham/bellanguage.txt
ofは便利くらいの感想しか出ない
あと整数nをnth nへオバロは、逆なんじゃないかな?
push n へオバロならforthライクに発展できるのに
おじさんは自分に求められてるのは変態テクニックやインスピレーションだと自覚しろ
現在の俺がもしjmcだったら?とか言い出したので見限った
今ざっと目を通しても目新しいところ、興奮するところが全然ないんだなこれが
https://sep.yimg.com/ty/cdn/paulgraham/bellanguage.txt
ofは便利くらいの感想しか出ない
あと整数nをnth nへオバロは、逆なんじゃないかな?
push n へオバロならforthライクに発展できるのに
おじさんは自分に求められてるのは変態テクニックやインスピレーションだと自覚しろ
311デフォルトの名無しさん
2021/02/16(火) 19:13:16.29ID:RZ7vFu0i >>309
グレアムの方が近いはずだが
グレアムの方が近いはずだが
312デフォルトの名無しさん
2021/02/16(火) 21:26:58.99ID:6gVrqubW313デフォルトの名無しさん
2021/02/17(水) 03:29:33.90ID:PFWUQJwx 関数やマウロの実体もリストというのはだいぶん振り切れていると思うがおまえらには目新しくはないのか>bel
314デフォルトの名無しさん
2021/02/17(水) 03:49:42.83ID:KZUgEKHz315デフォルトの名無しさん
2021/02/17(水) 04:32:37.72ID:KZUgEKHz 後は語り尽くされたlisp1/2の分化の話になるのでその辺はググって
316デフォルトの名無しさん
2021/02/17(水) 04:57:15.21ID:KZUgEKHz 補足
elの挙動は完全にバグいので忘れた方がいい、一方で関数実体はリストのサブタイプではないとヒューリスティックに判定されるのでそもそもill-defined
elの挙動は完全にバグいので忘れた方がいい、一方で関数実体はリストのサブタイプではないとヒューリスティックに判定されるのでそもそもill-defined
317デフォルトの名無しさん
2021/02/17(水) 18:52:29.11ID:zk5Pyjxw アラン・ケイもそれを自分でやってみようとすることが重要だと言ってる
原始関数が変われば何もかもが変わるわけだから
変わった世界が良いのか悪いのか、は自己言及がどれだけよく出来てるかどうか
ということだと思うんだけど
つまり、僕らが使いやすいと感じるかどうかではなく
未来にそれに慣れた人たちがより効率の良い開発が出来るかどうか
で、グレアムは自分なりにBelは良く出来てると思ってるんだろう
オレにはよくわからんがw
原始関数が変われば何もかもが変わるわけだから
変わった世界が良いのか悪いのか、は自己言及がどれだけよく出来てるかどうか
ということだと思うんだけど
つまり、僕らが使いやすいと感じるかどうかではなく
未来にそれに慣れた人たちがより効率の良い開発が出来るかどうか
で、グレアムは自分なりにBelは良く出来てると思ってるんだろう
オレにはよくわからんがw
318はちみつ餃子 ◆8X2XSCHEME
2021/02/18(木) 00:14:56.95ID:k6/K1ymI グレアムが現役プログラマだった時代なら実務に全振りしただろうが、今は投資する側の立場だからね。
投資に技術的な知見を活かしてはいるんだろうけど、道楽が出来るんだろう。
投資に技術的な知見を活かしてはいるんだろうけど、道楽が出来るんだろう。
319デフォルトの名無しさん
2021/02/18(木) 01:58:35.80ID:lD1LwcuS レディットで実装した人いるね
確かに使われてみなければ分からん事もたくさんあるので使ってみたい、まあ、そのうちね…
原典からlit=appqを引用(復古)するのなら、read&eval結果を示すのでなく、各々の挙動についてイメージできるように書いてほしい
とりわけlitは、302のレスにあるdefunをdefmacroに置き換えた定義(その場合(lit a b c)と記述できる)であっても、
より強力なreader macroによる、定義(e.g.quote)でも実装できるのだから、なおさら
確かに使われてみなければ分からん事もたくさんあるので使ってみたい、まあ、そのうちね…
原典からlit=appqを引用(復古)するのなら、read&eval結果を示すのでなく、各々の挙動についてイメージできるように書いてほしい
とりわけlitは、302のレスにあるdefunをdefmacroに置き換えた定義(その場合(lit a b c)と記述できる)であっても、
より強力なreader macroによる、定義(e.g.quote)でも実装できるのだから、なおさら
320デフォルトの名無しさん
2021/02/18(木) 02:07:31.14ID:lD1LwcuS でもグラハムは尊敬してるよ、著書もエッセイ以外紙版で全部持ってるし、啓蒙家としての実績を差し引いてもトップクラスのハッカーであるのは間違いない
321デフォルトの名無しさん
2021/02/18(木) 03:15:27.49ID:sRdwF113 >>319
言葉足らずでした
clは基本的にapplyへマクロを渡せないから、or/andに対応したsome/everyが提供されてるわけだけど、展開効率を無視すればread時に関数へすり替えるワークアラウンドで実現できる
そこが売りなんだからもうちょっと仔細を、と
言葉足らずでした
clは基本的にapplyへマクロを渡せないから、or/andに対応したsome/everyが提供されてるわけだけど、展開効率を無視すればread時に関数へすり替えるワークアラウンドで実現できる
そこが売りなんだからもうちょっと仔細を、と
322デフォルトの名無しさん
2021/02/18(木) 06:11:12.33ID:FG25zgsT ゲイツ、ジョブズと同い年なんだよな
323デフォルトの名無しさん
2021/02/19(金) 11:35:19.85ID:VprFkjBX ・知能は高い
・こまかい技術用語をちりばめてくるので詳しそうと思わせる
・言語仕様と歴史的経緯と個人研究の区別をつける意識がない
・検証するとトータルとしては話が嘘
こまったもんだ
・こまかい技術用語をちりばめてくるので詳しそうと思わせる
・言語仕様と歴史的経緯と個人研究の区別をつける意識がない
・検証するとトータルとしては話が嘘
こまったもんだ
324デフォルトの名無しさん
2021/02/23(火) 02:25:08.36ID:VIkkm8/q 関数がリストで表せるからatomじゃないってのは気持ち悪いな
別にどんな言語であろうと関数定義はトークンの並び≒リストで書けるわで
論理学では関数や述語はそのシンボルと引数のリストとして書かれるにも関わらずatomと定義される、あんまり明るくないんでなんでそうするのかは知らんが
別にどんな言語であろうと関数定義はトークンの並び≒リストで書けるわで
論理学では関数や述語はそのシンボルと引数のリストとして書かれるにも関わらずatomと定義される、あんまり明るくないんでなんでそうするのかは知らんが
325デフォルトの名無しさん
2021/02/23(火) 03:38:31.96ID:aA0AvmX/ ELisp だと、一部の関数は本当にリストとして保持されてたりするんだよね。
ラムダ式そのままの形で。
だから car や setcar とかで中身にアクセスできちゃったり。
ラムダ式そのままの形で。
だから car や setcar とかで中身にアクセスできちゃったり。
326デフォルトの名無しさん
2021/02/23(火) 04:39:24.64ID:VIkkm8/q elのfunctionはid関数っていうね…知りたくなかった
関数定義をいじくりたいならformとして持ち回って、invokeする時にfunction噛ますのがベストプラクティスと思うよ、わりとよく見る
関数定義をいじくりたいならformとして持ち回って、invokeする時にfunction噛ますのがベストプラクティスと思うよ、わりとよく見る
327デフォルトの名無しさん
2021/02/23(火) 04:45:23.10ID:VIkkm8/q あ、後半はちゃんと関数を理論と整合するatomとして扱うlisp(clとか)への言及です
328デフォルトの名無しさん
2021/03/14(日) 21:42:37.21ID:ykHNi/i1 linuxでdr.schemeがちゃんと表示してくれなくて追加パッケージも入れられない
(表示が崩れてまともにサブウインドウが開いてくれない)
どころか終了すらまともに出来ないので、、、
探したらgeiser(Emacs拡張?)というのがあって
それ入れたらEmacsからracket使えるようになった(≧∇≦)/
追加バックはコマンドラインから入れられた
これで充実した春休みが送れそうだぞ
(表示が崩れてまともにサブウインドウが開いてくれない)
どころか終了すらまともに出来ないので、、、
探したらgeiser(Emacs拡張?)というのがあって
それ入れたらEmacsからracket使えるようになった(≧∇≦)/
追加バックはコマンドラインから入れられた
これで充実した春休みが送れそうだぞ
329デフォルトの名無しさん
2021/03/15(月) 17:40:08.88ID:mTFo5Bvn Happy Hacking!
maclispのpitman/moonual読んでるけどシンボル操作系ユティリティが充実してて楽しい、ちまちまclへ移植
そんなのもうたくさん誰かやってるだろって?絶対にググらないぞ
maclispのpitman/moonual読んでるけどシンボル操作系ユティリティが充実してて楽しい、ちまちまclへ移植
そんなのもうたくさん誰かやってるだろって?絶対にググらないぞ
330デフォルトの名無しさん
2021/03/15(月) 17:56:03.28ID:iXam+Zcq 誰かがここに検索結果を貼る可能性を考えなかったのが敗因でした
331デフォルトの名無しさん
2021/03/17(水) 18:41:37.66ID:e+VOZDZq gosh> '()
()
racket> '()
'()
(。・_・。)…?
()
racket> '()
'()
(。・_・。)…?
332はちみつ餃子 ◆8X2XSCHEME
2021/03/17(水) 19:32:10.48ID:sFqg8ROj333デフォルトの名無しさん
2021/03/17(水) 21:49:16.02ID:e+VOZDZq racket> '()
'()racket> '()
になる……
'()racket> '()
になる……
334デフォルトの名無しさん
2021/03/17(水) 21:49:52.85ID:e+VOZDZq 訂正
racket> '()
()racket>
になる……
racket> '()
()racket>
になる……
335デフォルトの名無しさん
2021/03/17(水) 22:26:44.32ID:e+VOZDZq すんません、再度訂正
racket>(write '())
()racket>
になります
racket>(write '())
()racket>
になります
336デフォルトの名無しさん
2021/03/18(木) 00:10:13.29ID:3weRgygV replに代わってrpeplを提唱したい
意外とreadは仕事をしている
clだけどread-from-stringにはいつもお世話になる
意外とreadは仕事をしている
clだけどread-from-stringにはいつもお世話になる
338デフォルトの名無しさん
2021/03/18(木) 21:03:14.59ID:jgE2sGe4 連投してスレ汚しすんませんでした
こんなのあるんだね
https://en.scratch-wiki.info/wiki/Snap!_(programming_language)#First_Class_Continuations
Snap!: Scheme Disguised as Scratch
https://youtu.be/wtUMvx9mvm4
こんなのあるんだね
https://en.scratch-wiki.info/wiki/Snap!_(programming_language)#First_Class_Continuations
Snap!: Scheme Disguised as Scratch
https://youtu.be/wtUMvx9mvm4
339デフォルトの名無しさん
2021/03/19(金) 14:16:23.58ID:6iPIiOby Lispへの憧憬
https://xtech.nikkei.com/it/article/COLUMN/20090324/327085/
Lispに対する偏見、エリートコンプレックスを赤裸々に吐露していて参考になった
すこし弄れるからといってエリート意識持っていたりするのも同じ事なんだよね
そこに本質的な差は無いし、能力的な差も殆どない
https://xtech.nikkei.com/it/article/COLUMN/20090324/327085/
Lispに対する偏見、エリートコンプレックスを赤裸々に吐露していて参考になった
すこし弄れるからといってエリート意識持っていたりするのも同じ事なんだよね
そこに本質的な差は無いし、能力的な差も殆どない
340デフォルトの名無しさん
2021/03/19(金) 19:07:28.92ID:VzIhkYvX >>339
なんかカッコいい感じは分かるけど、なんでそうなのかは分からん
Fortranはすげー科学者がみんな使ってて技術的にも常に(今も、Fortran2020を見よ)最先端だけど、別にFortranはカッコよくないと思うし
どういう心理なんだろ
なんかカッコいい感じは分かるけど、なんでそうなのかは分からん
Fortranはすげー科学者がみんな使ってて技術的にも常に(今も、Fortran2020を見よ)最先端だけど、別にFortranはカッコよくないと思うし
どういう心理なんだろ
341デフォルトの名無しさん
2021/03/19(金) 19:12:24.45ID:VzIhkYvX 思うに、使ってる層のエリート度で考えるとFortranと変わらん
思うに、単純にコードの見た目がalien technologyっぽいかだろ
by an alien
思うに、単純にコードの見た目がalien technologyっぽいかだろ
by an alien
342デフォルトの名無しさん
2021/03/19(金) 19:13:41.78ID:VzIhkYvX 大事なことなので2回思ってしまった…
見た目は大事ってことじゃね
見た目は大事ってことじゃね
343デフォルトの名無しさん
2021/03/19(金) 19:21:49.87ID:VzIhkYvX ところで記事に挙がってるJava、cl/scm、(モダン)Fortranの全てにガッツリ関わってるSteele先生すげーな
344デフォルトの名無しさん
2021/03/19(金) 20:26:43.21ID:6zFezuIX 十年前の記事だけど状況はだいぶん変化したのでLispへの憧憬などというものがもう成り立ってない・・
十年前に書き込んでくれ・・
十年前に書き込んでくれ・・
345デフォルトの名無しさん
2021/03/19(金) 21:04:26.12ID:RMQx/osX なあにlispの本質は60年前から変わってないさ
lispに直接関わる事じゃないんだけど、ちょっとよろしいかしら
ISLISPなるものの規格を読むのにjisc.go.jpに登録しなくちゃならないんだけど、pcからもスマホからも"障害が発生しました"と怒られて進めないんだけど、俺だけ?
ちなみに一月前にも試して同じだった
フリーな規格なのでhtml版読めるとこもあるけど、一応pdfもと
lispに直接関わる事じゃないんだけど、ちょっとよろしいかしら
ISLISPなるものの規格を読むのにjisc.go.jpに登録しなくちゃならないんだけど、pcからもスマホからも"障害が発生しました"と怒られて進めないんだけど、俺だけ?
ちなみに一月前にも試して同じだった
フリーな規格なのでhtml版読めるとこもあるけど、一応pdfもと
346デフォルトの名無しさん
2021/03/19(金) 21:11:14.03ID:RMQx/osX 一部の日本人が布教に熱心で検索にかかりまくるから胡散臭くて敬遠してたんだが、少なくとも初期はcl委員が関わってるし由緒はあるんだよな
無難なlispだが、大体スーパーセットなclにアクティブですごい処理系沢山ある限り絶対流行らんが
あんまり布教頑張るとネガキャンに見えるぞ…
無難なlispだが、大体スーパーセットなclにアクティブですごい処理系沢山ある限り絶対流行らんが
あんまり布教頑張るとネガキャンに見えるぞ…
347デフォルトの名無しさん
2021/03/20(土) 01:03:24.86ID:iR2BedGg >>338
vimだと階層に合わせて背景塗り分けるプラグインとかあるね
Peirce(パースの法則の人)も初めはlogical graphと言う円で囲む二次元言語を考えてたんだが、今言及されるときはテキスト表現で()になってる(そして読みやすい)
歴史はめぐるってか
ちなみにlispと見た目が似てるからってパーサを書いたが、やはり親和性が高い
面白いのでオススメ
vimだと階層に合わせて背景塗り分けるプラグインとかあるね
Peirce(パースの法則の人)も初めはlogical graphと言う円で囲む二次元言語を考えてたんだが、今言及されるときはテキスト表現で()になってる(そして読みやすい)
歴史はめぐるってか
ちなみにlispと見た目が似てるからってパーサを書いたが、やはり親和性が高い
面白いのでオススメ
348デフォルトの名無しさん
2021/03/20(土) 01:11:33.86ID:iR2BedGg コードエディタじゃなくて残念なんだけど、愛用してるOneNoteのテキストのドラッグが()ごとドラッグしてくれるのに気づいた
まあいつものMSのお節介なんですけどね
本来の用途である物書きでは選択範囲を自由に決めさせてくれないイライラ要素
まあいつものMSのお節介なんですけどね
本来の用途である物書きでは選択範囲を自由に決めさせてくれないイライラ要素
349デフォルトの名無しさん
2021/03/20(土) 01:12:20.50ID:iR2BedGg (特に日本語!)
350はちみつ餃子 ◆8X2XSCHEME
2021/03/20(土) 01:20:25.61ID:O2z0YRFR 規格っつーのは多少の粗があっても皆で統一したほうが便利だというもんなんで、
ユーザー規模がないものは規格化が活きてこない。
ISLISPでコードが書いてあってもオレオレLISPで書いてあるのと大差ないんだよ。
共通の知識になってないから。
ISLISP の仕様自体が悪いわけではないし劣っているわけでもないと思うんだけど、
最初に広められなかったらこれから広まるってことはもう無いんだろうな。
それはそれでいいんじゃね。 細々とやっていくのが好きな人もいるんだろ。
ユーザー規模がないものは規格化が活きてこない。
ISLISPでコードが書いてあってもオレオレLISPで書いてあるのと大差ないんだよ。
共通の知識になってないから。
ISLISP の仕様自体が悪いわけではないし劣っているわけでもないと思うんだけど、
最初に広められなかったらこれから広まるってことはもう無いんだろうな。
それはそれでいいんじゃね。 細々とやっていくのが好きな人もいるんだろ。
351デフォルトの名無しさん
2021/03/20(土) 01:39:51.02ID:SzdWYV/s 30年事足りるほど十分カバーしてるclってすごいよな(実働は1980年初頭だからもっと?)
まあマルチスレッドあたりの仕様がバラバラなので、そこをしっかり決めてくれるMACLISP風規格があれば、俺はポッと出でも支持するんだが
まあマルチスレッドあたりの仕様がバラバラなので、そこをしっかり決めてくれるMACLISP風規格があれば、俺はポッと出でも支持するんだが
352はちみつ餃子 ◆8X2XSCHEME
2021/03/20(土) 02:00:29.14ID:O2z0YRFR >>351
Scheme で言う SRFI に相当するものとして Common Lisp にも CDR (Common Lisp Document Repository) があるんだが、
Common Lisp は Scheme よりも実務主義というか話し合いするよりも動くライブラリを置いときゃいいだろみたいな文化があって
共通仕様の策定に熱心ではないような気がするな。
Scheme で言う SRFI に相当するものとして Common Lisp にも CDR (Common Lisp Document Repository) があるんだが、
Common Lisp は Scheme よりも実務主義というか話し合いするよりも動くライブラリを置いときゃいいだろみたいな文化があって
共通仕様の策定に熱心ではないような気がするな。
353デフォルトの名無しさん
2021/03/20(土) 02:13:36.08ID:SzdWYV/s >>352
今誰が主導してるかと訊かれて、答えに詰まるのは特異な状況だとは思う
商用(持ってないけど)ですら保守的にみえる
ぬるま湯に浸かるのを良しとしないISLISPの人を讃えたい
フリーでまともな処理系待ってるから出来たら起こしてくれよな!(讃えるだけ)
今誰が主導してるかと訊かれて、答えに詰まるのは特異な状況だとは思う
商用(持ってないけど)ですら保守的にみえる
ぬるま湯に浸かるのを良しとしないISLISPの人を讃えたい
フリーでまともな処理系待ってるから出来たら起こしてくれよな!(讃えるだけ)
354デフォルトの名無しさん
2021/03/20(土) 02:19:30.20ID:SzdWYV/s こんな感じの人現れないかな
https://i.imgur.com/h6qXF7E.jpg
https://i.imgur.com/h6qXF7E.jpg
355デフォルトの名無しさん
2021/03/20(土) 03:36:41.06ID:y8ipzAe/ でもミンスキーは言ってたよ
表情や仕草が人間ぽいものはたくさん作られたが、
福島の震災で作業できるロボットは創り出せなかった
もう何十年も止まったままだ
って
表情や仕草が人間ぽいものはたくさん作られたが、
福島の震災で作業できるロボットは創り出せなかった
もう何十年も止まったままだ
って
356デフォルトの名無しさん
2021/03/20(土) 03:47:36.11ID:J9z4ezp0 SRFI出るや否や写経と称してシュババとクオリティ実装するclerが結構居るし、必要とあらば足りるしな
quicklispにも結構載ってるよね、clに混ぜるのは違和感あるからあくまでお手本としてアイデアを拝借するだけだが()
scheme処理系も多くのSRFIを標準で揃えてるわけじゃないから(ポートは容易だろうが)、やっぱまとめ役が居ないことに尽きる
qlがやる気出さないかな
quicklispにも結構載ってるよね、clに混ぜるのは違和感あるからあくまでお手本としてアイデアを拝借するだけだが()
scheme処理系も多くのSRFIを標準で揃えてるわけじゃないから(ポートは容易だろうが)、やっぱまとめ役が居ないことに尽きる
qlがやる気出さないかな
357はちみつ餃子 ◆8X2XSCHEME
2021/03/20(土) 15:18:16.80ID:O2z0YRFR358はちみつ餃子 ◆8X2XSCHEME
2021/03/20(土) 15:25:35.53ID:O2z0YRFR SRFI や CDR は (英語がわかるなら!) 誰でも提出できるし、
議論が尽くされたと思ったときに決定稿に (あるいは撤回を) していい。
ユーザーコミュニティの中に文書の置き場と相談の場所があるだけなので、
誰かが可否を決定してるわけではない。
主導者がいないっつってもコミュニティで議論してたらだいたい「いつもの面子」みたいにはなるだろうけどな。
つまり SRFI や CDR で決定稿になっても権威が与えられるわけではないので、
そんなプロセスを経ずとも適当にライブラリを作って皆が使ったり使わなかったりして
デファクトスタンダードが決まっていけばそれでいいんちゃうの?
という考え方もあって、 Common Lisp は割とそういう空気っぽい。
Common Lisp のことはそれほど知らない (Scheme についてもあまり知らないけど)
ので間違ってたら指摘してね。
議論が尽くされたと思ったときに決定稿に (あるいは撤回を) していい。
ユーザーコミュニティの中に文書の置き場と相談の場所があるだけなので、
誰かが可否を決定してるわけではない。
主導者がいないっつってもコミュニティで議論してたらだいたい「いつもの面子」みたいにはなるだろうけどな。
つまり SRFI や CDR で決定稿になっても権威が与えられるわけではないので、
そんなプロセスを経ずとも適当にライブラリを作って皆が使ったり使わなかったりして
デファクトスタンダードが決まっていけばそれでいいんちゃうの?
という考え方もあって、 Common Lisp は割とそういう空気っぽい。
Common Lisp のことはそれほど知らない (Scheme についてもあまり知らないけど)
ので間違ってたら指摘してね。
359はちみつ餃子 ◆8X2XSCHEME
2021/03/21(日) 02:50:10.72ID:GD6fpf+y ところで IEEE の Scheme は期限を過ぎても更新せずにそのまま廃版になってたみたいね。
https://standards.ieee.org/standard/1178-1990.html
知らんかった。
元から参照しているやつはあんまりいなかっただろうし
ステータスが Withdrawn になったからといって何か変わるわけでもないけどさ。
https://standards.ieee.org/standard/1178-1990.html
知らんかった。
元から参照しているやつはあんまりいなかっただろうし
ステータスが Withdrawn になったからといって何か変わるわけでもないけどさ。
360デフォルトの名無しさん
2021/03/24(水) 15:11:25.30ID:HKW94SjI361デフォルトの名無しさん
2021/04/04(日) 11:13:09.40ID:dz+wreGq lisp machine触ってみたいなと思ってたらとても素敵な物が手軽にあった!
https://archives.loomcom.com/genera/genera-install.html
https://archives.loomcom.com/genera/genera-install.html
362デフォルトの名無しさん
2021/04/04(日) 22:30:38.28ID:9kDPlOMr 素敵!
363デフォルトの名無しさん
2021/04/05(月) 19:12:20.11ID:DVkxDxiZ わだばさんのところに紹介があった
https://g000001.cddddr.org/3690710797
https://g000001.cddddr.org/3690710797
364デフォルトの名無しさん
2021/04/05(月) 21:56:17.84ID:i9PX2oQn generaはwikipedia読んだ程度だけど随分先進的そうだ
mac/lml/clまぜこぜだそうな
>>360みたいな感じでマウスで弄ったりカーソル置くと引数やdocがポップアップしたり
オンラインヘルプ大好き人間としては興味あり
まあ今時のソフト無くてもテキスト書くくらいなら十分使えそう
試したらレポる(たぶん
mac/lml/clまぜこぜだそうな
>>360みたいな感じでマウスで弄ったりカーソル置くと引数やdocがポップアップしたり
オンラインヘルプ大好き人間としては興味あり
まあ今時のソフト無くてもテキスト書くくらいなら十分使えそう
試したらレポる(たぶん
365デフォルトの名無しさん
2021/04/05(月) 22:16:42.87ID:i9PX2oQn 98年まで開発(メンテ?)されてたのに驚き
366デフォルトの名無しさん
2021/04/05(月) 23:14:43.49ID:Z3TcF1gw >>361
詳細にドキュメント化されていて迷うことは無さそうだけど、これで手軽ってどんだけ良く訓練されてんだよw
詳細にドキュメント化されていて迷うことは無さそうだけど、これで手軽ってどんだけ良く訓練されてんだよw
367デフォルトの名無しさん
2021/04/05(月) 23:16:47.02ID:wm1TeUKF lisp machine/generaではcやFortranもlisp実装なんだよね
性能はさておきとても興味深い
性能はさておきとても興味深い
368デフォルトの名無しさん
2021/04/05(月) 23:42:14.84ID:i9PX2oQn 権利的に大丈夫なのかが気掛かりだ
Symbolics(のようなもの、symbolics-dks.com)はまだホームページ持っててソフト売ってるわけで
実働してるかは怪しいが
lisp machineのVMもいつまで動くやら、動作報告のあるブロブのビルド方法は不明、linuxのバージョン上がればバイナリ互換性が失われるかもしれない
近いうちにロストテクノロジーになるなこれ
Symbolics(のようなもの、symbolics-dks.com)はまだホームページ持っててソフト売ってるわけで
実働してるかは怪しいが
lisp machineのVMもいつまで動くやら、動作報告のあるブロブのビルド方法は不明、linuxのバージョン上がればバイナリ互換性が失われるかもしれない
近いうちにロストテクノロジーになるなこれ
369デフォルトの名無しさん
2021/04/06(火) 00:03:42.02ID:4WR5kIDO linuxも一応abiの規定あるけど同じアーキテクチャでも違うディストロでそのまま動くとは限らんしな
とりあえずクローンした気がする(気がするだけ)
winならx86系でさえあれば安泰なんだが、generaのXインターフェイス使ってるぽいし無理そうだよなあ
うちでは代々バイナリをコピペし継いだoffice95がwin10でバリバリ元気に働いてるよ
とりあえずクローンした気がする(気がするだけ)
winならx86系でさえあれば安泰なんだが、generaのXインターフェイス使ってるぽいし無理そうだよなあ
うちでは代々バイナリをコピペし継いだoffice95がwin10でバリバリ元気に働いてるよ
370デフォルトの名無しさん
2021/04/06(火) 19:03:06.66ID:9PToVtUo371デフォルトの名無しさん
2021/04/06(火) 19:36:16.54ID:R6aCJEvU Alto→NextStep→OSXがコンシューマ向けになって成功してるのに
Interlisp-D、Symbolicsは(パンピー的には)伝説のマシンのままなのはどうしてなんだぜ
Interlisp-D、Symbolicsは(パンピー的には)伝説のマシンのままなのはどうしてなんだぜ
372デフォルトの名無しさん
2021/04/06(火) 19:41:57.45ID:R6aCJEvU Next, OpenStepを元にしたGNU/Stepというのもあるけど
GNU/HURDが完成したら、Lispマシンぽいことやるんでしょうかね…
Objective-Cならぬ、Lispective-C(仮称)で
GNU/HURDが完成したら、Lispマシンぽいことやるんでしょうかね…
Objective-Cならぬ、Lispective-C(仮称)で
373デフォルトの名無しさん
2021/04/07(水) 02:31:56.66ID:nO5/cs4F >>372
そういう考え方リスペクトする
そういう考え方リスペクトする
374デフォルトの名無しさん
2021/04/07(水) 22:28:51.32ID:0y6O4yId GNUは、というかストールマンが目指してるのはフリーな(自由な)CとLispの環境だと思うんだよね
375デフォルトの名無しさん
2021/04/07(水) 22:50:57.97ID:BC88Bm4+ guileをゴリ推してるけどなにそれ状態だよなー
特段良いとは思わないけどlisp押ししてくれる貴重な権力者
正直C協調性だとか拡張向きだとか今時普通なんで売れないと思います
特段良いとは思わないけどlisp押ししてくれる貴重な権力者
正直C協調性だとか拡張向きだとか今時普通なんで売れないと思います
376デフォルトの名無しさん
2021/04/07(水) 22:52:05.81ID:BC88Bm4+ 応援のつもりで一応入れてる
ちゃんとダウンロード数カウントしてるか知らんが
ちゃんとダウンロード数カウントしてるか知らんが
377はちみつ餃子 ◆8X2XSCHEME
2021/04/08(木) 01:27:32.57ID:d0EnvaGP Guile も良い処理系だよ。
Windows ではいまいち使い勝手が良くないからワイはあまり使わんけど。
GNUプロジェクトとして開発しているだけあって、
ライセンス的にもビルドプロセス的にもGNUのソフトウェアとは連携しやすいから
個別のソフトウェアとしてどうこうというだけでなく
GNUプロジェクトであることに意味があるんだと思う。
ただアプリケーションの拡張用に Guile はリッチすぎる気がする。
ライブラリはホスト環境 (アプリケーション) 側で用意するから
言語処理系の側は単純なほうがありがたいことが多い。
GIMP が TinyScheme をベースにしてることからもわかるように、
拡張用言語はこんくらいの規模でいんだよな。
Windows ではいまいち使い勝手が良くないからワイはあまり使わんけど。
GNUプロジェクトとして開発しているだけあって、
ライセンス的にもビルドプロセス的にもGNUのソフトウェアとは連携しやすいから
個別のソフトウェアとしてどうこうというだけでなく
GNUプロジェクトであることに意味があるんだと思う。
ただアプリケーションの拡張用に Guile はリッチすぎる気がする。
ライブラリはホスト環境 (アプリケーション) 側で用意するから
言語処理系の側は単純なほうがありがたいことが多い。
GIMP が TinyScheme をベースにしてることからもわかるように、
拡張用言語はこんくらいの規模でいんだよな。
378デフォルトの名無しさん
2021/04/08(木) 18:16:52.22ID:IR9u3KhO GNUといえばEmacs
最も普及しているLisp環境
最も普及しているLisp環境
379本田
2021/04/09(金) 05:55:12.32ID:U7WaDuwU >>361
GitHub - lisper/cpus-caddr: FPGA based MIT CADR lisp machine - rewritten in modern verilog - boots and runs
https://github.com/lisper/cpus-caddr
GitHub - lisper/cpus-caddr: FPGA based MIT CADR lisp machine - rewritten in modern verilog - boots and runs
https://github.com/lisper/cpus-caddr
380デフォルトの名無しさん
2021/04/10(土) 00:08:20.59ID:pgV1eSpW guileはdicoと使うと便利ぞ
dicoはdictと喧嘩しやがるアレなやつだからだが
dicoはdictと喧嘩しやがるアレなやつだからだが
381デフォルトの名無しさん
2021/04/10(土) 00:11:58.64ID:pgV1eSpW382本田
2021/04/11(日) 07:05:56.11ID:vMH2MoUG >>381
Unlambda.com | Main / Cadr
http://www.unlambda.com/index.php?n=Main.Cadr
Retrocomputing - MIT CADR Lisp Machines
CADR Emulation
Unlambda.com | Main / Cadr
http://www.unlambda.com/index.php?n=Main.Cadr
Retrocomputing - MIT CADR Lisp Machines
CADR Emulation
383デフォルトの名無しさん
2021/05/04(火) 13:30:15.28ID:fppjg2ZR LispとCの融合ということだと、KCLはLispective-Cなのでは
384本田
2021/05/06(木) 21:07:40.28ID:0MCggaNl385デフォルトの名無しさん
2021/05/08(土) 16:12:40.38ID:HQQ9X3gD Racket Programming the Fun Way: From Strings to Turing Machines
https://nostarch.com/racket-programming-fun-way
https://nostarch.com/racket-programming-fun-way
386デフォルトの名無しさん
2021/05/25(火) 18:47:13.72ID:JJYQeYh+ pというprocedureが何回呼び出されたかを出力したいと思って以下のコードを書きましたが、意図通り動きません。
どうすればいいですか?
(define (cube x) (* x x x))
(define (p x) (- (* 3 x) (* 4 (cube x))))
(define (count_p angle n)
(if (not (> (abs angle) 0.1))
n
(p (count_p (/ angle 3.0) (+ n 1)))))
どうすればいいですか?
(define (cube x) (* x x x))
(define (p x) (- (* 3 x) (* 4 (cube x))))
(define (count_p angle n)
(if (not (> (abs angle) 0.1))
n
(p (count_p (/ angle 3.0) (+ n 1)))))
387デフォルトの名無しさん
2021/05/25(火) 18:50:37.18ID:JJYQeYh+ あ、分かりました。
388デフォルトの名無しさん
2021/05/25(火) 19:30:00.29ID:xQ/lxTUk そうか
389デフォルトの名無しさん
2021/06/28(月) 10:43:13.88ID:TRKsA7C/ Schemeで
(newline)
(display 1.0)
のように複数の文?をつなげて実行することができます。
x が正のときに (newline) と (display 1.0) を続けて実行するようにするにはどのように記述すればいいのでしょうか?
(newline)
(display 1.0)
のように複数の文?をつなげて実行することができます。
x が正のときに (newline) と (display 1.0) を続けて実行するようにするにはどのように記述すればいいのでしょうか?
390デフォルトの名無しさん
2021/06/28(月) 10:44:02.91ID:TRKsA7C/391デフォルトの名無しさん
2021/06/28(月) 11:02:31.15ID:PxTgcihw (if (< 0 x) (begin (newline) (display 1.0)))
392デフォルトの名無しさん
2021/06/28(月) 11:03:43.42ID:7XtL7Dy7 (if (< 0 x)
((lambda ()
(newline)
(display 1.0))))
((lambda ()
(newline)
(display 1.0))))
393デフォルトの名無しさん
2021/06/28(月) 14:39:39.18ID:TRKsA7C/ >>391-392
ありがとうございました。
ありがとうございました。
394デフォルトの名無しさん
2021/06/28(月) 20:21:41.41ID:3DnBzo4y condでいい
(cond ((< 0 x) (newline) (display 1.0)))
(cond ((< 0 x) (newline) (display 1.0)))
395デフォルトの名無しさん
2021/06/28(月) 21:54:24.27ID:PxTgcihw 今度でいい?
396デフォルトの名無しさん
2021/06/29(火) 12:31:46.50ID:aO3q0Gho implicit progn(begin)が欲しいならwhenとunlessを積極的に使おう
397デフォルトの名無しさん
2021/06/29(火) 12:46:42.78ID:aO3q0Gho 色んな書き方が出来るからこそ、most specificなものを使おう
398デフォルトの名無しさん
2021/06/29(火) 13:29:59.66ID:0N5v+m2R 二年前から、どうでもいい駄文が多すぎだな。
399デフォルトの名無しさん
2021/06/29(火) 17:27:58.16ID:cKUJRDcK へーじゃあ君は2年間何してたの
400デフォルトの名無しさん
2021/06/29(火) 18:52:26.88ID:yETyFiIt lispの質問が減って自己紹介みたいな駄文が多いんだよ
401デフォルトの名無しさん
2021/06/30(水) 02:43:05.48ID:HrMy06Ib 結局 most specific なものは何だろう
402デフォルトの名無しさん
2021/06/30(水) 03:40:26.71ID:hbO/nBwY when でいいんじゃね
403デフォルトの名無しさん
2021/07/07(水) 05:18:16.92ID:Jk8/Aq6G stalin って今も最速?
404デフォルトの名無しさん
2021/07/07(水) 20:28:05.30ID:Kq6g4muF スターリンは残酷に最適化するからな
405デフォルトの名無しさん
2021/07/07(水) 23:24:28.15ID:690XxCxv プログラムがr4rsで記述できていてシングルスレッドしばりの競争ならいまでも速い可能性はあるだろうな
だれか追試してくれよ
だれか追試してくれよ
406デフォルトの名無しさん
2021/07/11(日) 18:50:40.89ID:aa3AN28M (eq? '(a b c) (list 'a 'b 'c))
を実行すると
#f
となるのはなぜでしょうか?
を実行すると
#f
となるのはなぜでしょうか?
407デフォルトの名無しさん
2021/07/11(日) 19:31:30.75ID:19O1KSs3 eq?はメモリ上の実体が同一かどうかを返すので、値を比較したかったらequal?を使えばいいよ
408デフォルトの名無しさん
2021/07/11(日) 20:25:33.03ID:aa3AN28M >>407
ありがとうございました。
ありがとうございました。
409デフォルトの名無しさん
2021/07/12(月) 20:42:52.24ID:O01P9WLY named let使おうと思ったらCommon lispには無かった
410デフォルトの名無しさん
2021/07/12(月) 22:45:17.08ID:u5zIJQm8 (let loop ((n 10)) (if (> n 0) (loop (- n 1)) #t))
↓
(((lambda (loop) (set! loop (lambda (n) (if (> n 0) (loop (- n 1)) #t))) loop) 'dummy-label) 10)
こういう仕組みだからCLで書けなくもないと思うけど
↓
(((lambda (loop) (set! loop (lambda (n) (if (> n 0) (loop (- n 1)) #t))) loop) 'dummy-label) 10)
こういう仕組みだからCLで書けなくもないと思うけど
411デフォルトの名無しさん
2021/07/12(月) 23:10:07.08ID:eka9NNGK 現代のlispハッカーはみんなloopマクロ使ってるよ
412デフォルトの名無しさん
2021/07/13(火) 08:34:35.37ID:egse1qJT named-lambdaならalexandriaにある
413デフォルトの名無しさん
2021/07/13(火) 10:27:19.42ID:A078Hhon Schemeで、
(+ '3 3)
を評価すると
6
が返ります。
'3 は「3」というシンボルを表わすのではないんですか?
(+ '3 3)
を評価すると
6
が返ります。
'3 は「3」というシンボルを表わすのではないんですか?
414はちみつ餃子 ◆8X2XSCHEME
2021/07/13(火) 11:05:03.90ID:jDPJbhfl >>413
クウォートは評価を抑制するという仕組み。
データ (S式) の世界がプログラムの世界にマッピングされるときにデータの世界のままで留め置く感じ。
識別子はデータの世界ではシンボルなので、(変数として) 評価しなければシンボル自体となる。
3 はデータの世界でも数値の 3 であり、数値はプログラムの世界で評価すると
それ自体になるという自己評価 (self-evaluating) という規則の対象なので
3 はクウォートを付けても付けなくても評価結果は数値の 3 。
ちなみにベクタリテラルが自己評価の対象になるかどうかは変更があったので注意が必要。
R5RS/R6RS では自己評価の対象ではないのでクウォートが必要だが R7RS では自己評価になる。
まあほとんどの処理系は適当に許容したりもするんだけど。
クウォートは評価を抑制するという仕組み。
データ (S式) の世界がプログラムの世界にマッピングされるときにデータの世界のままで留め置く感じ。
識別子はデータの世界ではシンボルなので、(変数として) 評価しなければシンボル自体となる。
3 はデータの世界でも数値の 3 であり、数値はプログラムの世界で評価すると
それ自体になるという自己評価 (self-evaluating) という規則の対象なので
3 はクウォートを付けても付けなくても評価結果は数値の 3 。
ちなみにベクタリテラルが自己評価の対象になるかどうかは変更があったので注意が必要。
R5RS/R6RS では自己評価の対象ではないのでクウォートが必要だが R7RS では自己評価になる。
まあほとんどの処理系は適当に許容したりもするんだけど。
415デフォルトの名無しさん
2021/07/13(火) 16:32:31.52ID:NGIJbx4Y number?で#tなだけで数値をシンボルで実装した処理系もあるかもしれん
416はちみつ餃子 ◆8X2XSCHEME
2021/07/13(火) 17:10:19.73ID:QSkHhbzy 小さい数値はヒープアロケーションせずにワードに詰め込む (ことで GC 削減して高速化を図る)
ような実装が一般的だったり、同じ内容の文字列リテラルを統合したりすることがある。
eq? が数値や文字列について処理系依存になっているのは
おそらくそういった最適化を許すための配慮なんだけど、
処理が遅くなってでも一貫した扱いをするというデザインを選んだなら
内部的に数値とシンボルと統合することも選択肢としてはあるかもね。
そうしてもユーザー視点ではたいして得なことはないんだけど、
アプリケーションに組み込んで拡張用言語として使うとか
だったらアプリケーション側の事情と馴染みやすいかどうかみたいな視点もあるし。
ような実装が一般的だったり、同じ内容の文字列リテラルを統合したりすることがある。
eq? が数値や文字列について処理系依存になっているのは
おそらくそういった最適化を許すための配慮なんだけど、
処理が遅くなってでも一貫した扱いをするというデザインを選んだなら
内部的に数値とシンボルと統合することも選択肢としてはあるかもね。
そうしてもユーザー視点ではたいして得なことはないんだけど、
アプリケーションに組み込んで拡張用言語として使うとか
だったらアプリケーション側の事情と馴染みやすいかどうかみたいな視点もあるし。
417デフォルトの名無しさん
2021/07/13(火) 19:58:17.06ID:tejz1RXC 数字はreadした時点でnumberになる
それをquoteしてもnumberのまま
quoteするとはevalされないということだ
もちろんnumberをevalしてもnumberのままだ
それをquoteしてもnumberのまま
quoteするとはevalされないということだ
もちろんnumberをevalしてもnumberのままだ
418デフォルトの名無しさん
2021/07/14(水) 06:57:41.65ID:O4vE2Kew あっそうか
末尾再帰が仕様にないからloopを使うようになってるのかな?
末尾再帰が仕様にないからloopを使うようになってるのかな?
419デフォルトの名無しさん
2021/07/15(木) 04:52:42.37ID:eqEigNI9 逆やね末尾再帰でloopを代替できるからイキって仕様からloopを消したったのがschemeやからユーザーもイキるやで
420デフォルトの名無しさん
2021/07/15(木) 06:43:25.74ID:S7wkmjz6 末尾呼び出しの最適化が至高の技術のように思っていた時期が僕にもありました
421はちみつ餃子 ◆8X2XSCHEME
2021/07/15(木) 11:32:01.61ID:d93moyXm 末尾呼出し最適化はあくまでもセマンティクスの話であって、
ループ構文を避ける強い流れがあるわけじゃないよ。
do や named let くらいしか繰り返し構文が用意されてないのは
皆が合意できる仕様をまとめられていないという非常に単純な理由だよ。
R7RS-Large に入れるループ構文の候補としては
・ SRFI-42 (https://srfi.schemers.org/srfi-42/srfi-42.html)
・ foof-loop (http://wiki.call-cc.org/eggref/5/foof-loop)
・ chibi loop (http://synthcode.com/scheme/chibi/lib/chibi/loop.html)
が挙がっている。
まあまだちゃんと議論されてないので他の候補が出るかもしれないし、
結局何も入れないということもあるかもね。
ループ構文を避ける強い流れがあるわけじゃないよ。
do や named let くらいしか繰り返し構文が用意されてないのは
皆が合意できる仕様をまとめられていないという非常に単純な理由だよ。
R7RS-Large に入れるループ構文の候補としては
・ SRFI-42 (https://srfi.schemers.org/srfi-42/srfi-42.html)
・ foof-loop (http://wiki.call-cc.org/eggref/5/foof-loop)
・ chibi loop (http://synthcode.com/scheme/chibi/lib/chibi/loop.html)
が挙がっている。
まあまだちゃんと議論されてないので他の候補が出るかもしれないし、
結局何も入れないということもあるかもね。
422デフォルトの名無しさん
2021/07/15(木) 16:04:48.23ID:MIyHkZEB アキュムレータ加えて末尾再帰で書くよりはdoを好むわ
ロジックとしては全く等価だし、見やすい方がいい
ロジックとしては全く等価だし、見やすい方がいい
423デフォルトの名無しさん
2021/07/15(木) 16:12:57.83ID:MIyHkZEB loopキーワードは:を付けてlisp keywordにすればビジュアル的に随分見やすくなるね
ところでloopの独特の言い回しはAlgol由来だと最近知った、downtoとか
esacやfiまで取り入れてたら投げ捨てるけど
ところでloopの独特の言い回しはAlgol由来だと最近知った、downtoとか
esacやfiまで取り入れてたら投げ捨てるけど
424デフォルトの名無しさん
2021/07/15(木) 16:15:28.68ID:MIyHkZEB425デフォルトの名無しさん
2021/07/15(木) 16:34:32.82ID:zKeMNTWP loopしなくてもdestructuring bindやwithの為にloop使うのは我ながら良くないと思う
値を集める節がハマると簡潔に書けるのでつい
値を集める節がハマると簡潔に書けるのでつい
426はちみつ餃子 ◆8X2XSCHEME
2021/07/15(木) 17:45:11.96ID:d93moyXm 慣れた Scheme ユーザーなら末尾呼出し (末尾再帰) になっているかどうかは空気のように判断できるけど、
do で書けるものなら do で書いたほうがそういう判断をする必要さえないわけで、
なるべく抽象度の高い構文 (または手続き) を使うに越したことはない。
大事なのは抽象化で、繰り返しをしているところなら繰り返しに見えるように書くのが筋だろ。
(繰り返しに do という名前を当てるのがどうなんだ……とも思うけど Fortran 由来らしい。)
そういう意味では >>425 が loop をループ以外の用途に使うのは確かに良くは無いんだが、
場合によってはそういうのもイディオムとして定着していることがあるから
意味に忠実にするために冗長になるくらいならイディオムに頼るほうが「わかりやすい」場合もある。
どちらがいいというわけでもなくて全体の匙加減だから難しいよね。
do で書けるものなら do で書いたほうがそういう判断をする必要さえないわけで、
なるべく抽象度の高い構文 (または手続き) を使うに越したことはない。
大事なのは抽象化で、繰り返しをしているところなら繰り返しに見えるように書くのが筋だろ。
(繰り返しに do という名前を当てるのがどうなんだ……とも思うけど Fortran 由来らしい。)
そういう意味では >>425 が loop をループ以外の用途に使うのは確かに良くは無いんだが、
場合によってはそういうのもイディオムとして定着していることがあるから
意味に忠実にするために冗長になるくらいならイディオムに頼るほうが「わかりやすい」場合もある。
どちらがいいというわけでもなくて全体の匙加減だから難しいよね。
427デフォルトの名無しさん
2021/07/15(木) 19:48:28.17ID:eqEigNI9 末尾呼出し最適化をいかした書き方というのは確かにあるのだけれど named let はシンプルな loop に特化していて中途半端なのだよなあ
428デフォルトの名無しさん
2021/07/15(木) 21:29:35.37ID:hFBqwrB0 named let 嫌いだわ、構文として紛らわしいだけ
あれはgotoとでも名乗るべき
あれはgotoとでも名乗るべき
429デフォルトの名無しさん
2021/07/16(金) 08:09:46.64ID:IT8DyczJ >>428
おいらはすき。letなんてどうせシンタックスシュガー。
おいらはすき。letなんてどうせシンタックスシュガー。
430デフォルトの名無しさん
2021/07/18(日) 09:56:21.45ID:2Hl3gQcn 書き捨てなら抽象度は低い方がよいのが原則じゃないか?
高いほうがいいのは使い回すケース、例えば数列計算関数に項を計算する関数を渡して特殊化したい場合
carがdoなら、何がしたいのか一目で分かるよね
あとclでも普通ループへの展開はしてくれると思うけど、保証はされてないから神経質な人は、より確実に等価なコードに展開されるだろうdoの方がいいかも
いやさすがに気にし過ぎか
高いほうがいいのは使い回すケース、例えば数列計算関数に項を計算する関数を渡して特殊化したい場合
carがdoなら、何がしたいのか一目で分かるよね
あとclでも普通ループへの展開はしてくれると思うけど、保証はされてないから神経質な人は、より確実に等価なコードに展開されるだろうdoの方がいいかも
いやさすがに気にし過ぎか
431はちみつ餃子 ◆8X2XSCHEME
2021/07/18(日) 10:09:27.74ID:+Ch+KzUq >>430
> 書き捨てなら抽象度は低い方がよいのが原則じゃないか?
手間とのトレードオフで抽象化層をわざわざ作るのを避けるという意味ならそうだけど、
多様な語彙 (標準ライブラリ、またはそれに近いもの) がすでに揃っている中
から選べるなら状況をより適切に表しているものをピックアップしたほうが
わかりやすいし手間も少ないでしょ。
> 書き捨てなら抽象度は低い方がよいのが原則じゃないか?
手間とのトレードオフで抽象化層をわざわざ作るのを避けるという意味ならそうだけど、
多様な語彙 (標準ライブラリ、またはそれに近いもの) がすでに揃っている中
から選べるなら状況をより適切に表しているものをピックアップしたほうが
わかりやすいし手間も少ないでしょ。
432デフォルトの名無しさん
2021/07/18(日) 10:13:20.17ID:2Hl3gQcn ポエムだけど、状態機械ともロジックは等価だよね
二項漸化式を例に
仮引数-呼び出し
末尾再帰
a b accum - b (next b) accum'
do
a b result - b (next b) result'
状態機械
a b state - b (next b) state'
状態機械は普通遷移テーブルを与えて考えるけど、制御構造で動的に割り振れば前の二者になる
状態を引数で受け渡すことで、ステートフルな計算を実現する
二項漸化式を例に
仮引数-呼び出し
末尾再帰
a b accum - b (next b) accum'
do
a b result - b (next b) result'
状態機械
a b state - b (next b) state'
状態機械は普通遷移テーブルを与えて考えるけど、制御構造で動的に割り振れば前の二者になる
状態を引数で受け渡すことで、ステートフルな計算を実現する
433デフォルトの名無しさん
2021/07/18(日) 10:18:13.98ID:2Hl3gQcn434デフォルトの名無しさん
2021/07/18(日) 10:31:34.34ID:2Hl3gQcn 'formをテーブルに書き込んでしまえば…
435デフォルトの名無しさん
2021/07/18(日) 10:43:00.23ID:iK76XXqo 状態機械の定義にそぐうかは詳しくないので分からないけど、表で管理するのは見やすそう
でもデータ構造中に保持する限り反復に翻訳される可能性は皆無だろうな
でもデータ構造中に保持する限り反復に翻訳される可能性は皆無だろうな
436デフォルトの名無しさん
2021/07/18(日) 22:30:22.92ID:wZnHH9/v do構文は何がどこかすぐ忘れる
named letはうる覚えでもなんとかなる
ただのletの亜種だから断然読みやすい
named letはうる覚えでもなんとかなる
ただのletの亜種だから断然読みやすい
437デフォルトの名無しさん
2021/07/18(日) 22:33:40.35ID:3JZJIWfz ×うる覚え
○うろ覚え
○うろ覚え
438デフォルトの名無しさん
2021/07/20(火) 02:01:05.64ID:DJlNseKm すみませんscheme初心者なのですが累乗を求めるプログラムが動きません
http://www.nct9.ne.jp/m_hiroi/func/abcscm04.html
を参考に、let と cond を使って書いてみたのですが let で局所変数を導入した瞬間に動かなくなりました
何が間違っているのか指摘していただけると幸いです
(define (pow x y)
(let ((z (pow x (quotient y 2))))
(cond ((zero? y) 1)
((zero? (modulo y 2)) (* z z))
(else (* x z z))
)
)
)
http://www.nct9.ne.jp/m_hiroi/func/abcscm04.html
を参考に、let と cond を使って書いてみたのですが let で局所変数を導入した瞬間に動かなくなりました
何が間違っているのか指摘していただけると幸いです
(define (pow x y)
(let ((z (pow x (quotient y 2))))
(cond ((zero? y) 1)
((zero? (modulo y 2)) (* z z))
(else (* x z z))
)
)
)
439デフォルトの名無しさん
2021/07/20(火) 02:30:15.19ID:yRdGIeGP infinite recursion
440デフォルトの名無しさん
2021/07/20(火) 03:11:09.60ID:DJlNseKm (z (pow x...)) の評価が ((zero? y) 1) の前に起きてるのが原因なんですね
z に (pow x..) を束縛だけして評価しないみたいなことって出来るんですかね?
(define (pow2 x y)
(if (= y 0)
1
(let ((z (pow2 x (quotient y 2))))
(if (= (modulo y 2) 0)
(* z z)
(* x z z)))))
みたいに if 文に分解して (= y 0) 1 を (let ((z (pow2 x ..) の前に出すしかないんでしょうか
let と cond を一緒に使うとスッキリ書けそうなのですが…
z に (pow x..) を束縛だけして評価しないみたいなことって出来るんですかね?
(define (pow2 x y)
(if (= y 0)
1
(let ((z (pow2 x (quotient y 2))))
(if (= (modulo y 2) 0)
(* z z)
(* x z z)))))
みたいに if 文に分解して (= y 0) 1 を (let ((z (pow2 x ..) の前に出すしかないんでしょうか
let と cond を一緒に使うとスッキリ書けそうなのですが…
441デフォルトの名無しさん
2021/07/20(火) 09:22:43.66ID:0xL9gg55 (define (pow x y)
(let ((z (lambda()(pow x (quotient y 2)))))
(cond ((zero? y) 1)
((zero? (modulo y 2)) (* (z) (z)))
(else (* x (z) (z))))))
(let ((z (lambda()(pow x (quotient y 2)))))
(cond ((zero? y) 1)
((zero? (modulo y 2)) (* (z) (z)))
(else (* x (z) (z))))))
442デフォルトの名無しさん
2021/07/20(火) 10:43:12.24ID:aBN0Hnxa 計算量悪化してない?
443デフォルトの名無しさん
2021/07/20(火) 11:23:57.77ID:0xL9gg55 (define (pow x y)
(let ((z (lambda()(pow x (quotient y 2)))))
(cond ((zero? y) 1)
((zero? (modulo y 2)) (set! z (z)) (* z z))
(else (set! z (z)) (* x z z)))))
(let ((z (lambda()(pow x (quotient y 2)))))
(cond ((zero? y) 1)
((zero? (modulo y 2)) (set! z (z)) (* z z))
(else (set! z (z)) (* x z z)))))
444デフォルトの名無しさん
2021/07/20(火) 12:21:34.41ID:27sTwTCb ifとletを使うのが一番いいと思う
(define (pow1 x y)
(let ((z (delay (pow1 x (quotient y 2)))))
(cond ((zero? y) 1)
((zero? (modulo y 2)) (* (force z) (force z)))
(else (* x (force z) (force z))))))
(define (pow2 x y)
(let ((z #f))
(cond ((zero? y) 1)
((begin
(set! z (pow2 x (quotient y 2)))
(zero? (modulo y 2)))
(* z z))
(else (* x z z)))))
(define (pow1 x y)
(let ((z (delay (pow1 x (quotient y 2)))))
(cond ((zero? y) 1)
((zero? (modulo y 2)) (* (force z) (force z)))
(else (* x (force z) (force z))))))
(define (pow2 x y)
(let ((z #f))
(cond ((zero? y) 1)
((begin
(set! z (pow2 x (quotient y 2)))
(zero? (modulo y 2)))
(* z z))
(else (* x z z)))))
445デフォルトの名無しさん
2021/07/20(火) 12:42:50.05ID:DJlNseKm446デフォルトの名無しさん
2021/07/20(火) 13:00:13.21ID:DJlNseKm447はちみつ餃子 ◆8X2XSCHEME
2021/07/20(火) 16:19:35.74ID:BjsPOMc7 計算量のことを言うなら繰り返し二乗法を使うのがスマートやろ。
448デフォルトの名無しさん
2021/07/20(火) 17:16:38.64ID:FEwdsMz6 force 使うの大袈裟すぎない?
440で全く問題ないと思ったけど
440で全く問題ないと思ったけど
449はちみつ餃子 ◆8X2XSCHEME
2021/07/20(火) 17:33:51.23ID:BjsPOMc7 元になる数式をなるべく形式を変えずに書きたいみたいな要求はあるんじゃないの?
プログラマ的視点で見れば >>440 の形に不自然さは感じない (むしろ比較的自然だと思う) けど、
理論家がコードに書き起こすときにはコードを変形させるよりは
遅延を明示したほうがすっきりと感じることだってあるだろう。
そこらへんは何が正しいとは言えないけど、
現時点で Scheme を学習中の人みたいなので色々な方法に触れておけば
どれかは役にたつこともあるかもね。
プログラマ的視点で見れば >>440 の形に不自然さは感じない (むしろ比較的自然だと思う) けど、
理論家がコードに書き起こすときにはコードを変形させるよりは
遅延を明示したほうがすっきりと感じることだってあるだろう。
そこらへんは何が正しいとは言えないけど、
現時点で Scheme を学習中の人みたいなので色々な方法に触れておけば
どれかは役にたつこともあるかもね。
450デフォルトの名無しさん
2021/07/20(火) 17:41:31.79ID:yRdGIeGP こんなんでもいいんじゃない
(define (pow2 x y)
(if (= y 0) 1
(let ((z (pow2 x (quotient y 2))))
(* (if (= (modulo y 2) 0) 1 x) z z))))
(define (pow2 x y)
(if (= y 0) 1
(let ((z (pow2 x (quotient y 2))))
(* (if (= (modulo y 2) 0) 1 x) z z))))
451はちみつ餃子 ◆8X2XSCHEME
2021/07/21(水) 23:35:17.25ID:tIqEOSex Racket 8.2 がリリースされておった。
https://blog.racket-lang.org/2021/07/racket-v8-2.html
https://blog.racket-lang.org/2021/07/racket-v8-2.html
452デフォルトの名無しさん
2021/07/29(木) 12:26:00.90ID:AB6awnRN トイプログラムをチューニング合戦やめーや
453はちみつ餃子 ◆8X2XSCHEME
2021/07/29(木) 14:35:36.73ID:lV+mYu1n 簡単な場合をよく考えられないなら応用的状況ではもっと出来ないよ。
応用ができるようになってからなら枝葉は後回しにすべきだけど。
(いわゆる「早すぎる最適化は諸悪の根源」ってやつ。)
あと、単にこのスレってあまり話題ないから。
応用ができるようになってからなら枝葉は後回しにすべきだけど。
(いわゆる「早すぎる最適化は諸悪の根源」ってやつ。)
あと、単にこのスレってあまり話題ないから。
454デフォルトの名無しさん
2021/08/29(日) 19:48:00.40ID:ExQfKpCF Parenscriptとclojurescriptのメリットとデメリットどこかにまとまってないかな
主力をcLかclosureのどっちにするかで悩んでる
主力をcLかclosureのどっちにするかで悩んでる
455デフォルトの名無しさん
2021/09/01(水) 11:05:24.22ID:3cqZfQ8E racket から pythonのtensorflowとか使いたいのに
まともなpython ffiが見つからない
racket死んでる?
まともなpython ffiが見つからない
racket死んでる?
456デフォルトの名無しさん
2021/09/03(金) 17:00:38.92ID:w5919iNp フリーランスに立ちはだかる「常駐」の壁。慣例を打ち壊し、
“テレワーク”案件3割→8割へと成長を遂げた「クラウドテック」の軌跡
https://prtimes.jp/story/detail/DBnPOktyljr
テレワークの一般化により、11月にはテレワーク可能案件83.7%へと増加。
2021年、フリーランスのトレンドは「移住&テレワーク」と予測
https://prtimes.jp/main/html/rd/p/000000045.000050142.html
リモートワーク求人専門サイト「プロリモート」がリニューアルオープン、業務委託契約の求職者と企業をマッチング
https://www.value-press.com/pressrelease/262778
1/3以上が採用につながる高マッチング率、リモートワーク×エンジニア・デザイナー専門の
人材紹介サービス「ReworkerAgent」正式リリース場所からも時間からも自由な働き方を実現!
https://www.nishinippon.co.jp/item/o/713384/
新潟県、移住してきたテレワーカー/フリーランスに最大50万円を支給
https://internet.watch.impress.co.jp/docs/news/1287094.html
茨城県日立市、県外からの「テレワーク移住者」に最大151万円の助成金
https://internet.watch.impress.co.jp/docs/news/1281120.html
長野市、市内に移転・事業所設置し、移住することで最大550万円の支援金を支給
https://internet.watch.impress.co.jp/docs/news/1274735.html
フリーランスが活用できる「最大1,000〜3,000万円・補助率50%〜75%」の
『ものづくり・商業・サービス補助金』とは?概要や条件を解説
https://freenance.net/media/money/4255/
『ReWorks(リワークス)』リモートワーク特化型転職サイトとして 3月5日 リニューアル
https://prtimes.jp/main/html/rd/p/000000051.000010457.html
“テレワーク”案件3割→8割へと成長を遂げた「クラウドテック」の軌跡
https://prtimes.jp/story/detail/DBnPOktyljr
テレワークの一般化により、11月にはテレワーク可能案件83.7%へと増加。
2021年、フリーランスのトレンドは「移住&テレワーク」と予測
https://prtimes.jp/main/html/rd/p/000000045.000050142.html
リモートワーク求人専門サイト「プロリモート」がリニューアルオープン、業務委託契約の求職者と企業をマッチング
https://www.value-press.com/pressrelease/262778
1/3以上が採用につながる高マッチング率、リモートワーク×エンジニア・デザイナー専門の
人材紹介サービス「ReworkerAgent」正式リリース場所からも時間からも自由な働き方を実現!
https://www.nishinippon.co.jp/item/o/713384/
新潟県、移住してきたテレワーカー/フリーランスに最大50万円を支給
https://internet.watch.impress.co.jp/docs/news/1287094.html
茨城県日立市、県外からの「テレワーク移住者」に最大151万円の助成金
https://internet.watch.impress.co.jp/docs/news/1281120.html
長野市、市内に移転・事業所設置し、移住することで最大550万円の支援金を支給
https://internet.watch.impress.co.jp/docs/news/1274735.html
フリーランスが活用できる「最大1,000〜3,000万円・補助率50%〜75%」の
『ものづくり・商業・サービス補助金』とは?概要や条件を解説
https://freenance.net/media/money/4255/
『ReWorks(リワークス)』リモートワーク特化型転職サイトとして 3月5日 リニューアル
https://prtimes.jp/main/html/rd/p/000000051.000010457.html
457デフォルトの名無しさん
2021/09/04(土) 12:17:58.77ID:7RPQ9cbD hy一時期話題になったけど今は誰も使ってない
458デフォルトの名無しさん
2021/09/04(土) 13:00:17.62ID:P/r0boNY459デフォルトの名無しさん
2021/09/04(土) 17:09:55.40ID:jSSzYM7r だいぶん昔にjaistでtaoのイベントがあったが同様の質問が出たが権利問題が解決できないらしく関係者にさえ配布できない状況らしい
lispの勉強会で遭遇した人の話なので風の噂レベルでスマンがガッカリしたのを思い出した.エミュレーションもデモしたらしい
lispの勉強会で遭遇した人の話なので風の噂レベルでスマンがガッカリしたのを思い出した.エミュレーションもデモしたらしい
460デフォルトの名無しさん
2021/09/05(日) 06:20:35.31ID:pE5Z7TQ6 quickdocs復活してるな
461デフォルトの名無しさん
2021/09/07(火) 20:50:21.97ID:8Gi3qZOZ Scheme版のcl-ppcreは何処いったんだ?
463デフォルトの名無しさん
2021/09/10(金) 16:25:34.83ID:vbZ+sZ5t 政治闘争で頻繁に互換性ないアップデートを繰り返して死んだ
hy
次はclojureで同じ政治闘争が始まりそうという噂が
hy
次はclojureで同じ政治闘争が始まりそうという噂が
464はちみつ餃子 ◆8X2XSCHEME
2021/09/10(金) 17:54:13.80ID:53pAHbe3 hy くらいの新興処理系でどんどん変更が入るのは普通のことだと思うが。
つってももう登場から 8 年なのか。
つってももう登場から 8 年なのか。
465デフォルトの名無しさん
2021/09/11(土) 14:53:00.01ID:WRGMhX/P466デフォルトの名無しさん
2021/09/11(土) 20:38:39.26ID:Suq8GRsb スレに書き込む前に妄想と現実の区別がついていることをよく確認しましょう
467デフォルトの名無しさん
2021/09/11(土) 21:45:04.20ID:E5TnD1wu 自分で変換した不確かな正規表現ライブラリなんて使いたくねーな
468デフォルトの名無しさん
2021/09/11(土) 23:37:54.18ID:Suq8GRsb いやそれは移植元にテストケースがあるからテストが完走すればだいじょぶっしょ
しかしそもそもschemeにもpcreライブラリは沢山あるだろうけど
しかしそもそもschemeにもpcreライブラリは沢山あるだろうけど
469デフォルトの名無しさん
2021/09/15(水) 04:41:28.63ID:mYoOhxQF 妄想も噂も似たような言い換えみたいなものなのに
何でそんな強い口調で言い換えを強要してくるんだ
何でそんな強い口調で言い換えを強要してくるんだ
470デフォルトの名無しさん
2021/09/15(水) 04:43:02.67ID:mYoOhxQF 何でそんな強い口調で言い換えを強要してくるんだ
471デフォルトの名無しさん
2021/09/16(木) 00:32:04.26ID:4L00LZ3y ()に包めば言い換えないでも柔らかさを演出できる
()はすごいのだ
()はすごいのだ
472デフォルトの名無しさん
2021/09/16(木) 02:34:55.53ID:PaKnZlMf 465から別の話題になってて468まででひとつの会話の流れ.
つまりお前が勝手に被弾してるわけよ‥
つまりお前が勝手に被弾してるわけよ‥
473デフォルトの名無しさん
2021/09/16(木) 07:32:28.90ID:d2OD6VRD クオートしてエバらなければよろしい
474デフォルトの名無しさん
2021/10/09(土) 23:58:58.03ID:6Ftx/1cj sbcl2.1.9 windows版(amd64)入れてみたけど今まで起動直後に表示されてたWARNING(win版はスレッドまわりが壊れやすいけどそんなの対応してらんない!みたいなやつ)が表示されなくなって地味にうれしい
475デフォルトの名無しさん
2021/10/10(日) 10:54:30.08ID:Td68Zwht スレッド周りはpthreadのエミュレーションを自前で実装してたのを、直接Win32のAPIを呼ぶようになった
コードが一気にシンプルになったし、その時にバグの修正も行ったのだろう
コードが一気にシンプルになったし、その時にバグの修正も行ったのだろう
476デフォルトの名無しさん
2021/10/28(木) 23:14:45.49ID:61MCerNv hhk限定モデル注文した
これでlisp書きまくるぞ
これでlisp書きまくるぞ
477デフォルトの名無しさん
2021/10/29(金) 10:04:04.19ID:Wx77+vYW [ )* ]
このキートップを作って売ったら儲かる!
このキートップを作って売ったら儲かる!
478デフォルトの名無しさん
2021/11/04(木) 15:30:13.66ID:Pg5ZjBDA ()と[]は入れ替えてる
スペースカデットの模造品とかないんだろうか
スペースカデットの模造品とかないんだろうか
479デフォルトの名無しさん
2021/11/19(金) 06:28:29.94ID:xMhA1wC0 roswell環境で.roswell/local-projects/が認識されないんだけど原因分かる人いない?
480デフォルトの名無しさん
2021/11/28(日) 23:37:15.25ID:RhGEQvG/ roswell emacs
481デフォルトの名無しさん
2021/11/29(月) 20:25:25.48ID:egtLBMKE roswellは複雑すぎて分からん
482デフォルトの名無しさん
2021/11/30(火) 11:59:55.55ID:mt2EOzfV LISPマシン
https://youtu.be/4c8qJGlG9Ik
https://youtu.be/4c8qJGlG9Ik
483デフォルトの名無しさん
2021/12/01(水) 00:08:54.18ID:S5WVP6ck quicklispとかroswellとか、全部一体化されたら使うわ
484デフォルトの名無しさん
2021/12/08(水) 02:22:37.34ID:7SPCPFJp485デフォルトの名無しさん
2021/12/15(水) 14:51:19.13ID:gD/y5IR+ Lispworks 8でた!
486はちみつ餃子 ◆8X2XSCHEME
2021/12/15(水) 16:19:54.21ID:liRiJS5F Chicken Scheme 5.3.0 が先月リリースされてたのに気づいてなかったわ。
487デフォルトの名無しさん
2021/12/18(土) 20:20:58.46ID:wxlLyg04 Lispworksのpro版購入してる人いますか?
488_
2021/12/27(月) 16:17:35.40ID:kKbRMARZ Release of LispWorks 8.0
http://www.lispworks.com/news/news39.html
LispworksってSBCL みたいなSIMDサポートありますか?
http://www.lispworks.com/news/news39.html
LispworksってSBCL みたいなSIMDサポートありますか?
489デフォルトの名無しさん
2021/12/27(月) 23:09:52.29ID:W+QyKxlb 週2日出社、週2日在宅の週4日勤務が最高の働き方だと提唱したい
週休3日制になったら給料を減らされる??そんな考えだからいつまで経っても貧乏なんだよ...
サラリーマンが副業でプライベートカンパニーを設立するメリット
Webマーケターに転職して、セミリタイアを実現させる方法
【朗報】「在宅勤務OK」の求人、コロナ前と比べて7 7倍に上昇!
【悲報】「会社員に戻りたい!」というフリーランス、全体の3%しかいないw
【悲報】副業が解禁されても、副業を見つけられずに困窮する会社員が続出...
日頃から副業をやっておくことの重要性を再認識しよう
【驚愕】5人に1人は本業よりも副業収入の方が多いことが判明w 本業よりも稼げる副業とはなんなのか??
週休3日制になったら給料を減らされる??そんな考えだからいつまで経っても貧乏なんだよ...
サラリーマンが副業でプライベートカンパニーを設立するメリット
Webマーケターに転職して、セミリタイアを実現させる方法
【朗報】「在宅勤務OK」の求人、コロナ前と比べて7 7倍に上昇!
【悲報】「会社員に戻りたい!」というフリーランス、全体の3%しかいないw
【悲報】副業が解禁されても、副業を見つけられずに困窮する会社員が続出...
日頃から副業をやっておくことの重要性を再認識しよう
【驚愕】5人に1人は本業よりも副業収入の方が多いことが判明w 本業よりも稼げる副業とはなんなのか??
490デフォルトの名無しさん
2021/12/27(月) 23:20:39.96ID:rFnrNjhz 家でゲームやってる方が100倍楽しい
491デフォルトの名無しさん
2021/12/28(火) 14:24:25.81ID:ikdMcku9 Gauche 0.9.11 リリース
492デフォルトの名無しさん
2021/12/29(水) 00:16:33.25ID:CixWfOUS >>491
でも来年も1.0は出ないんでしょう?
でも来年も1.0は出ないんでしょう?
493_
2022/01/04(火) 06:23:02.11ID:rzEME/gD494デフォルトの名無しさん
2022/01/04(火) 09:25:24.58ID:0EKZRL01495デフォルトの名無しさん
2022/01/04(火) 18:09:56.39ID:M2x34zFQ496デフォルトの名無しさん
2022/01/05(水) 01:55:05.36ID:M/mCn8xE 1.0 で Stabilize と書いてはいるが、別に現状の動作が不安定で落ちたりするという意味じゃなくて
API の試行錯誤とかをやってたのを 1.0 では「とりあえずの」決定版にしようねという話であって、
後にもたまには大きな変更だってあるだろうし、そのへんの感覚は番号だけ見てもわからんのだよな。
むしろメジャーバージョンが変わった直後は不安定という通説もあるし。
メジャーバージョンがクソデカでも信用ならんものなんて腐るほど見てきただろう?
心理的な障壁というのはわかるんだけど、逆に言えば気分の問題でしかない。
検証した上でやっぱりアカンとなったならしょうがないんだけど、
バージョンナンバー「だけで」判断してるのならよい態度ではないよね。
API の試行錯誤とかをやってたのを 1.0 では「とりあえずの」決定版にしようねという話であって、
後にもたまには大きな変更だってあるだろうし、そのへんの感覚は番号だけ見てもわからんのだよな。
むしろメジャーバージョンが変わった直後は不安定という通説もあるし。
メジャーバージョンがクソデカでも信用ならんものなんて腐るほど見てきただろう?
心理的な障壁というのはわかるんだけど、逆に言えば気分の問題でしかない。
検証した上でやっぱりアカンとなったならしょうがないんだけど、
バージョンナンバー「だけで」判断してるのならよい態度ではないよね。
497デフォルトの名無しさん
2022/01/05(水) 09:05:38.61ID:i4+082M6 1.0をだしたら、これまでできなかったあんあことやこんなことをやってみて、がんがん不安定化させるということだよね。もう飽きたからメンテナンスフェーズにはいるじゃないよね。
498デフォルトの名無しさん
2022/01/08(土) 17:42:20.32ID:p9TLuwuj Gauche は作者自身が仕事で使うための道具でもあるから
万人向けではない方向にデザインされるということはあるかもしれんが、
(まあそもそも Scheme が万人向けではないが……)
常に作者によって使われているので大きく壊れることはたぶんあんまりない。
万人向けではない方向にデザインされるということはあるかもしれんが、
(まあそもそも Scheme が万人向けではないが……)
常に作者によって使われているので大きく壊れることはたぶんあんまりない。
499デフォルトの名無しさん
2022/01/09(日) 03:10:06.49ID:Yh7kYLt+ forkすりゃいいじゃん
500デフォルトの名無しさん
2022/01/09(日) 09:17:46.18ID:/FcxVx4/ 無理
501デフォルトの名無しさん
2022/01/09(日) 19:19:41.13ID:KdA6aSLx gaucheはr7rs対応したときに2.0になっていてもよかったのではとおもう
502デフォルトの名無しさん
2022/01/10(月) 19:38:26.99ID:2hS04FMw 俺はscmは遊ぶ用だけどguileがいい感じ、イントロスペクションがつよいので掘って遊べる
まだまだあんどきゅめんてっどなelモード探索も楽しい
まだまだあんどきゅめんてっどなelモード探索も楽しい
503デフォルトの名無しさん
2022/01/15(土) 20:48:11.65ID:lW+N/iWS 今度のMSXはCとLispとPythonが動くんだぞ
https://www.4gamer.net/games/999/G999905/20220113106/
https://www.4gamer.net/games/999/G999905/20220113106/
504デフォルトの名無しさん
2022/01/16(日) 15:41:52.89ID:13k9JV8z ことしのlisp的抱負をひとつ...
505デフォルトの名無しさん
2022/01/16(日) 17:06:35.43ID:qRjB4bc5506デフォルトの名無しさん
2022/01/16(日) 22:33:47.36ID:UU19DhdN 同じく
あと、リスト遊び読む
あと、リスト遊び読む
507デフォルトの名無しさん
2022/01/16(日) 22:57:05.20ID:hpGcG9O9 あくまで個人的感想だが、そういう風に勉強のために勉強するみたいなのは結局は上手くいかんのじゃないかと思う。
508デフォルトの名無しさん
2022/01/16(日) 23:41:32.77ID:UU19DhdN じゃあ、GAFAを超えるものを作るために勉強する!
509デフォルトの名無しさん
2022/01/17(月) 05:54:03.53ID:F1CAOb16510デフォルトの名無しさん
2022/01/17(月) 10:07:54.20ID:jU2WrI4n 成果物として作るんでなくてもちょっとした前処理程度のことをするときに使えばいいよ。
使い捨てるものを何で作ろうが文句は言わせん。
プライベートで使うんでもいいしな。
使い捨てるものを何で作ろうが文句は言わせん。
プライベートで使うんでもいいしな。
511デフォルトの名無しさん
2022/01/17(月) 10:10:54.91ID:mRPHMZkx ツール類は自分の慣れた言語で作ってしまうw
512デフォルトの名無しさん
2022/01/17(月) 10:32:49.23ID:jU2WrI4n 俺は Scheme が一番慣れた言語だから……
こういうのがニワトリタマゴってやつかね。
慣れるために使いたいのに慣れてないから使わないってのでは
何も進まんでないか。
こういうのがニワトリタマゴってやつかね。
慣れるために使いたいのに慣れてないから使わないってのでは
何も進まんでないか。
513デフォルトの名無しさん
2022/01/17(月) 22:29:08.40ID:BbgRNbfx scheme使いなら自作の処理系の1つや2つは持ってるよね
514デフォルトの名無しさん
2022/01/18(火) 01:32:42.02ID:Q53p7HFH いいえ。
515デフォルトの名無しさん
2022/01/18(火) 23:30:17.32ID:Npm0ST7N 黒板とノートという万能処理系なら
516デフォルトの名無しさん
2022/01/19(水) 12:17:51.13ID:YBAvI2MD なにか作ろうと思うと結局cffiでcライブラリを呼び出して使ってるので、糊みたいな使い方しかしてないなぁ
517デフォルトの名無しさん
2022/01/20(木) 02:19:42.06ID:3oKX7/s6 Ruby でも JavaScript でも Python でもだいたいそんなもんだろ。
518デフォルトの名無しさん
2022/01/20(木) 19:02:36.89ID:GKs3JF21 scheme修行読んだら処理系書けるかな?
ちょっと読んでちっともわからなくて挫折したけど
ちょっと読んでちっともわからなくて挫折したけど
519デフォルトの名無しさん
2022/01/20(木) 21:08:50.31ID:Ibae9TV2 処理系作りたいなら下手な本より既存の処理系のソース読みまくるのが近道
520デフォルトの名無しさん
2022/01/22(土) 21:58:31.48ID:E9iIueP5 俺の気持ちを代弁してくれてたポエム
https://gist.github.com/phoe/7d24bdb1f2be76a02fecba8cfecbef38
https://gist.github.com/phoe/7d24bdb1f2be76a02fecba8cfecbef38
522デフォルトの名無しさん
2022/01/24(月) 20:39:39.47ID:xI9wwXQn ちゃんとエンドユーザー様までデプロイするのはめんどいのは確か
グラフィックス叩いたりするライブラリに依存するのはやむ無しだけど、純lispなライブラリはライセンスの許す限りスニペットに切り出して同梱してる
グラフィックス叩いたりするライブラリに依存するのはやむ無しだけど、純lispなライブラリはライセンスの許す限りスニペットに切り出して同梱してる
523デフォルトの名無しさん
2022/01/24(月) 21:07:29.09ID:e/3681Ma 継続が凄いって話は、かれこれ10年くらい聞いてたんだけど、結局は限定継続で十分だよね、
限定継続もあんまり応用ないね、って感じに落ち着いたのかな?
限定継続もあんまり応用ないね、って感じに落ち着いたのかな?
524デフォルトの名無しさん
2022/01/25(火) 11:38:40.17ID:GfuWsBWm 継続が凄いってなんだよ
継続ベースのlisp実装をschemeと言うのだから、そういう意味では凄い応用例だよ
継続ベースのlisp実装をschemeと言うのだから、そういう意味では凄い応用例だよ
525デフォルトの名無しさん
2022/01/25(火) 12:33:26.79ID:Do1EUgQ3 非限定継続ってjmcのambとかが該当するのか?
動作としてはバックトラックするだけだから特に継続概念が必須というわけではないけど、なんか楽しい
動作としてはバックトラックするだけだから特に継続概念が必須というわけではないけど、なんか楽しい
526デフォルトの名無しさん
2022/01/28(金) 01:56:11.96ID:hT9TavA0 形式定義できるのが継続の便利なところなんだよ。
バックトラックするだけとはいうが「バックトラックってなに?」というのを突き詰めていったときに「継続をこんなふうに受け渡してるでよ」と言えるの。
バックトラックするだけとはいうが「バックトラックってなに?」というのを突き詰めていったときに「継続をこんなふうに受け渡してるでよ」と言えるの。
527デフォルトの名無しさん
2022/01/28(金) 23:35:03.31ID:i9eS2qVS でも実際はambはただの愚直な探索だから遅いんじゃないの?
528デフォルトの名無しさん
2022/01/28(金) 23:54:45.12ID:hT9TavA0 原理的にはバックトラックと同じ速さ。
それが遅いというのならバックトラックでも遅い。
バックトラックより速い方法があってチューニングの手間をかけていいならそうすりゃいい。
それが遅いというのならバックトラックでも遅い。
バックトラックより速い方法があってチューニングの手間をかけていいならそうすりゃいい。
529デフォルトの名無しさん
2022/02/09(水) 12:03:16.04ID:3KsDo8lO >>522
久々にscm書いてみたんだけどsrfi1とMITとr6rsでfold, fold-left, reduce fold-right, reduce-right(とそのpair-版)が初期値の畳まれる位置や引数の左右スワップとか違ってて混乱した
とっくに誰かやってると思ったけど今後の為に:initial-valueと:from-endを取るcl式reduceを移植しました…
久々にscm書いてみたんだけどsrfi1とMITとr6rsでfold, fold-left, reduce fold-right, reduce-right(とそのpair-版)が初期値の畳まれる位置や引数の左右スワップとか違ってて混乱した
とっくに誰かやってると思ったけど今後の為に:initial-valueと:from-endを取るcl式reduceを移植しました…
530はちみつ餃子 ◆8X2XSCHEME
2022/02/09(水) 12:14:56.74ID:9Cj+df9g scm はキーワード型がないけどキーワード引数をどういう風に渡すの?
531デフォルトの名無しさん
2022/02/09(水) 12:36:09.65ID:3KsDo8lO restに'symb突っ込んで泥臭く拾ってます
srfiにちゃんとした機構あった気がするけど、小道具レベルで依存はしたくないので
srfiにちゃんとした機構あった気がするけど、小道具レベルで依存はしたくないので
532はちみつ餃子 ◆8X2XSCHEME
2022/02/09(水) 23:48:43.20ID:9Cj+df9g ところで scm を使うのはなにか理由があるの?
単なる好みならそれはそれでいいんだけど
このスレで言及される Scheme 処理系は Gauche, Racket, Chicken あたりが多いので
scm 使いは珍しいなーと思った。
単なる好みならそれはそれでいいんだけど
このスレで言及される Scheme 処理系は Gauche, Racket, Chicken あたりが多いので
scm 使いは珍しいなーと思った。
533デフォルトの名無しさん
2022/02/10(木) 00:36:07.94ID:d8JzH9qO guile使ってるけど#:で自己評価シンボルになるな
よく見かける:の方はデフォルトで有効じゃなくて、オプション切り替えだったり
よく見かける:の方はデフォルトで有効じゃなくて、オプション切り替えだったり
534はちみつ餃子 ◆8X2XSCHEME
2022/02/10(木) 11:27:44.77ID:zyc1CtL/ Guile のキーワードはシンボルとは別の型。
(symbol? #:foo) は #f を返す。
(symbol? #:foo) は #f を返す。
535デフォルトの名無しさん
2022/02/10(木) 20:51:58.38ID:/6XFwXXi CLの掟とか知らないから名前付き引数はマクロでシコシコやってた思い出
536デフォルトの名無しさん
2022/03/22(火) 22:52:38.10ID:VhTpyHaP537デフォルトの名無しさん
2022/03/22(火) 23:07:01.10ID:jC3GI8nJ Lispエイリアンww
538デフォルトの名無しさん
2022/03/23(水) 05:57:57.32ID:M5tI2TdZ ほんまや
539_
2022/04/03(日) 20:41:08.96ID:2/Br4qMY LLVMベースの Common Lisp Clasp が1.0 になったよー
https://github.com/clasp-developers/clasp/releases/tag/1.0.0
https://github.com/clasp-developers/clasp/releases/tag/1.0.0
540デフォルトの名無しさん
2022/04/04(月) 01:15:26.65ID:H1vYw7XQ キタ━━━━(゚∀゚)━━━━!!
541デフォルトの名無しさん
2022/04/04(月) 15:23:18.85ID:lL1T2q6e542でーちゃんじゃないけど
2022/06/25(土) 21:10:35.30ID:AGenfzJY github.com/Soldier-B/ns.js/blob/master/ns.js#L3
543デフォルトの名無しさん
2022/06/26(日) 13:26:40.20ID:DTfGvOZF さとばん
544デフォルトの名無しさん
2022/11/07(月) 12:52:23.10ID:D9DaYQB4 svigiはなんて読めばいいの
545デフォルトの名無しさん
2022/11/07(月) 12:52:44.37ID:D9DaYQB4 木曽路的な
546はちみつ餃子 ◆8X2XSCHEME
2022/11/07(月) 13:59:37.65ID:QQJOk/Pv >>544
アイスランド語で括弧の意味だというのはあのキャラの作者が発表している公式な情報だから
Wikipedia でアイスランド語の表記から調べてみた。
https://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%A4%E3%82%B9%E3%83%A9%E3%83%B3%E3%83%89%E8%AA%9E%E3%82%A2%E3%83%AB%E3%83%95%E3%82%A1%E3%83%99%E3%83%83%E3%83%88
たぶんこの場合の g は英語でいうところの y みたいな発音。
あえてカタカナで表すと「スヴィーイィ」みたいな感じ。
アイスランド語の辞書サイトで音を聞いてみた感じでも外してないと思う。
https://islenskordabok.arnastofnun.is/ord/40650
アイスランド語で括弧の意味だというのはあのキャラの作者が発表している公式な情報だから
Wikipedia でアイスランド語の表記から調べてみた。
https://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%A4%E3%82%B9%E3%83%A9%E3%83%B3%E3%83%89%E8%AA%9E%E3%82%A2%E3%83%AB%E3%83%95%E3%82%A1%E3%83%99%E3%83%83%E3%83%88
たぶんこの場合の g は英語でいうところの y みたいな発音。
あえてカタカナで表すと「スヴィーイィ」みたいな感じ。
アイスランド語の辞書サイトで音を聞いてみた感じでも外してないと思う。
https://islenskordabok.arnastofnun.is/ord/40650
547デフォルトの名無しさん
2022/11/07(月) 16:54:40.26ID:D9DaYQB4548デフォルトの名無しさん
2022/11/07(月) 20:41:51.67ID:kjCGP1Rc549デフォルトの名無しさん
2022/12/12(月) 12:44:02.44ID:asaSA4nl 「命の輝き君」がマンホールの蓋に 轢死体と見分けがつかなくなってしまう [725951203]
https://hayabusa9.5ch.net/test/read.cgi/news/1670487647/
https://hayabusa9.5ch.net/test/read.cgi/news/1670487647/
550デフォルトの名無しさん
2023/01/08(日) 12:42:17.07ID:hPHqQTwv schemeはじめましたなんだけど
[lisp1.0+]label, [cl]labels = letrec + let name
[cl]flet ((f (args) fletbody)) body = let ((f (lambda (args) body)) letbody)
って理解でいいの?
[lisp1.0+]label, [cl]labels = letrec + let name
[cl]flet ((f (args) fletbody)) body = let ((f (lambda (args) body)) letbody)
って理解でいいの?
551はちみつ餃子 ◆8X2XSCHEME
2023/01/08(日) 17:21:31.97ID:/n9SAwLy おおよそ似た雰囲気では書けたりするのかもしれないけど
単純に対応してるわけじゃなかったりもするからいいかどうかは状況によるんじゃないの。
単純に対応してるわけじゃなかったりもするからいいかどうかは状況によるんじゃないの。
552デフォルトの名無しさん
2023/01/08(日) 18:49:11.56ID:5ojqztS1 まんまじゃね?
とりあえず(macroexpand 'sb-int:named-let)はそのまんまlabelsに展開されたのでお試しあれ
どの処理系でも似たような定義が大体あるはず
1958年のオリジナルlispのlabelは、scheme界隈ではlet1という名前で見掛ける
当然だけど、ローカル定義が一つなので(自明には)相互再帰はできない
触って気付いたけど
(flet ((cons (a d) (list :cons a d))) (cons :a :d))
; (:CONS :A :D) clisp, sbcl
; (:A . :D) ecl
eclのこれバグ?
とりあえず(macroexpand 'sb-int:named-let)はそのまんまlabelsに展開されたのでお試しあれ
どの処理系でも似たような定義が大体あるはず
1958年のオリジナルlispのlabelは、scheme界隈ではlet1という名前で見掛ける
当然だけど、ローカル定義が一つなので(自明には)相互再帰はできない
触って気付いたけど
(flet ((cons (a d) (list :cons a d))) (cons :a :d))
; (:CONS :A :D) clisp, sbcl
; (:A . :D) ecl
eclのこれバグ?
553デフォルトの名無しさん
2023/01/09(月) 03:51:35.47ID:0CyucYY1 触ったことないのでeclがどの程度cltl/ANSI/clhs等の標準をリスペクトしてるのかも分からないのだが
とりあえずgoogle play storeからeclのandroidポートらしいeql5 replを入れてみた
(list ;; attempt to shadow cl:cons
(flet ((cons (x y) (cons y x)))
(cons 'co '?ns))
(let ((cons (lambda (x y) (cons y x))))
(funcall cons 'co 'ns)))
((CO . NS) (NS . CO))
fletは謎挙動だね…
* shadowしない名前(xcons)ならok
* (flet ((cons (x) (1+ x))) (cons 42))がアリティ不一致で怒られる
から推測するに、普通cl packageの関数なんて弄られないだろうと踏んで、関数の名前解決を手抜きして最適化してるんだろう
値の名前解決は特に弄る意義もないので、scheme風にlambdaをletで値として束縛して呼べば問題ない
clを名乗る以上はオプションで切れるくらいの配慮はあるだろうから、eclにこだわるならマニュアル読んでみては
少なくともclhsはリスペクトしてないね
...flet can locally shadow a global function name, ...
http://www.lispworks.com/documentation/HyperSpec/Body/s_flet_.htm
とりあえずgoogle play storeからeclのandroidポートらしいeql5 replを入れてみた
(list ;; attempt to shadow cl:cons
(flet ((cons (x y) (cons y x)))
(cons 'co '?ns))
(let ((cons (lambda (x y) (cons y x))))
(funcall cons 'co 'ns)))
((CO . NS) (NS . CO))
fletは謎挙動だね…
* shadowしない名前(xcons)ならok
* (flet ((cons (x) (1+ x))) (cons 42))がアリティ不一致で怒られる
から推測するに、普通cl packageの関数なんて弄られないだろうと踏んで、関数の名前解決を手抜きして最適化してるんだろう
値の名前解決は特に弄る意義もないので、scheme風にlambdaをletで値として束縛して呼べば問題ない
clを名乗る以上はオプションで切れるくらいの配慮はあるだろうから、eclにこだわるならマニュアル読んでみては
少なくともclhsはリスペクトしてないね
...flet can locally shadow a global function name, ...
http://www.lispworks.com/documentation/HyperSpec/Body/s_flet_.htm
554デフォルトの名無しさん
2023/01/09(月) 16:15:24.76ID:2yNmR2Eh | 彡⌒ミ
\ (´・ω・`)名前のシャドウ化辺りって自分で処理系実装した子はわかると思うけどハゲる要因だから絶対関わらない方がいいと思う
(| |)::::
(γ /:::::::
し \:::
\ (´・ω・`)名前のシャドウ化辺りって自分で処理系実装した子はわかると思うけどハゲる要因だから絶対関わらない方がいいと思う
(| |)::::
(γ /:::::::
し \:::
555デフォルトの名無しさん
2023/01/09(月) 16:36:52.10ID:0CyucYY1 eclは有名だけど、embeddableの名前通りの用途で1MBちょいな処理系だから、そういうものと割り切って使うべき
funcallが冗長ならletのbodyにfuncallをconsするだけのmy-fletを作ればいいじゃない
(さらなる災禍を招きそう)
funcallが冗長ならletのbodyにfuncallをconsするだけのmy-fletを作ればいいじゃない
(さらなる災禍を招きそう)
556デフォルトの名無しさん
2023/01/09(月) 16:57:44.09ID:0CyucYY1 eclのlocked packageなる概念やcompile-timeの意味論に関連しそうなissue
2 yeas agoだけど
https://gitlab.com/embeddable-common-lisp/ecl/-/issues/574
2 yeas agoだけど
https://gitlab.com/embeddable-common-lisp/ecl/-/issues/574
557デフォルトの名無しさん
2023/01/10(火) 02:33:32.35ID:/i8qCr3o >>553
特定の名前の解決を決め打つ言語は多いし、そういうポリシーもありだと思う
普通でないのはcondition(warning)を挙げないところ
決め打つ名前(locked package?)が分かってる限りは、flet/labelsのレキシカル束縛リストから拾った名前がbody内の呼び出しformのcarに存在するか、ランタイムコストの無い自明な静的解析でconditionを挙げられるはず
特定の名前の解決を決め打つ言語は多いし、そういうポリシーもありだと思う
普通でないのはcondition(warning)を挙げないところ
決め打つ名前(locked package?)が分かってる限りは、flet/labelsのレキシカル束縛リストから拾った名前がbody内の呼び出しformのcarに存在するか、ランタイムコストの無い自明な静的解析でconditionを挙げられるはず
558デフォルトの名無しさん
2023/01/10(火) 03:18:54.37ID:/i8qCr3o >>550
等価と思って良いよ
伝統的なlisp(とcl)のように(let ((x '())) ...)を(let (x) ...)と略記できない、だとか細かい差異はあるけど
百聞は一見にしかずなので、構文の対応を見るのが手っ取り早い
あとeclのname collisionの件、consの例(>>553)はさすがにcontrived-exampleだと思うので、ついでにeclで破綻するように
letrec/nlet/labels で定義するラベルとして、所謂accumulatorイディオムにloop(他にはlp, iterとか)を使うのが慣例だけど、eclではcl:loopと読まれるのでは?と予想
;;; cl -- ok: cmucl, sbcl, clisp, gcl err:ecl (的中)
(defun fact (n)
(labels ((loop (k acc)
(if (= k 0)
acc
(loop (1- k) (* k acc)))))
(loop n 1)))
;;; scheme -- ok: guile
(define (fact n)
(letrec ((loop (lambda (k acc)
(if (= k 0)
acc
(loop (1- k) (* k acc))))))
(loop n 1)))
pcでテストはしたけど、スマホから手打ちなので変だったらごめん
等価と思って良いよ
伝統的なlisp(とcl)のように(let ((x '())) ...)を(let (x) ...)と略記できない、だとか細かい差異はあるけど
百聞は一見にしかずなので、構文の対応を見るのが手っ取り早い
あとeclのname collisionの件、consの例(>>553)はさすがにcontrived-exampleだと思うので、ついでにeclで破綻するように
letrec/nlet/labels で定義するラベルとして、所謂accumulatorイディオムにloop(他にはlp, iterとか)を使うのが慣例だけど、eclではcl:loopと読まれるのでは?と予想
;;; cl -- ok: cmucl, sbcl, clisp, gcl err:ecl (的中)
(defun fact (n)
(labels ((loop (k acc)
(if (= k 0)
acc
(loop (1- k) (* k acc)))))
(loop n 1)))
;;; scheme -- ok: guile
(define (fact n)
(letrec ((loop (lambda (k acc)
(if (= k 0)
acc
(loop (1- k) (* k acc))))))
(loop n 1)))
pcでテストはしたけど、スマホから手打ちなので変だったらごめん
559はちみつ餃子 ◆8X2XSCHEME
2023/01/10(火) 13:31:12.96ID:TxpPtfKm >>557
スクリプト言語 (処理系) 的な想定だと実行開始時にテキストの解釈から毎回やるので
静的解析もランタイムの一部みたいな感じになる。
この場合に限って言えばどちらにせよ名前のルックアップはやるのだからそのときにわかるだろうとは思うけど
静的解析を頑張らないという方針はあり得るんじゃないの。
スクリプト言語 (処理系) 的な想定だと実行開始時にテキストの解釈から毎回やるので
静的解析もランタイムの一部みたいな感じになる。
この場合に限って言えばどちらにせよ名前のルックアップはやるのだからそのときにわかるだろうとは思うけど
静的解析を頑張らないという方針はあり得るんじゃないの。
560はちみつ餃子 ◆8X2XSCHEME
2023/01/11(水) 00:38:29.47ID:s0T2WgwN Gauche で検出されないエラーで (let ((0 1)) 0) みたいなのがあって、
実際にはオプティマイザが消去してしまうんだそうな。
文法の解析で通したものをオプティマイザがエラーとして弾くのも変な話だし、
オプティマイザが走査することがわかっているものを前段階でもチェックするのは二度手間だし、
オプティマイザを密結合してしまうのも保守しづらいし……
という葛藤があるのはわかる。
まあそれぞれに事情があるので原理的に可能だからといってそうすべきだとも言えない気がする。
実際にはオプティマイザが消去してしまうんだそうな。
文法の解析で通したものをオプティマイザがエラーとして弾くのも変な話だし、
オプティマイザが走査することがわかっているものを前段階でもチェックするのは二度手間だし、
オプティマイザを密結合してしまうのも保守しづらいし……
という葛藤があるのはわかる。
まあそれぞれに事情があるので原理的に可能だからといってそうすべきだとも言えない気がする。
561デフォルトの名無しさん
2023/01/11(水) 00:49:38.31ID:LBEzL6fs 0はシンボルじゃないから、文法解析を通しちゃ駄目だろw
562デフォルトの名無しさん
2023/01/11(水) 01:29:07.80ID:/IOcm4EW そういう手では絶対書かないだろう変なコードも、マクロ書いてるとまれによく発生するから困る
563デフォルトの名無しさん
2023/01/11(水) 01:59:04.27ID:/IOcm4EW カウンタ変数を捕捉更新しようとして、うっかり評価してしまったケースとか
564デフォルトの名無しさん
2023/01/11(水) 02:21:26.04ID:z40MB/0w 多分(let ((i (+ i 1))) i)が化けたのかな
565デフォルトの名無しさん
2023/01/11(水) 02:34:55.34ID:LWIYKuEk letの時点でオプティマイザに通してんのかな
let系はlambdaまで落として((lambda(i) i) (+ i 1))とすれば間違えようがないと思うのだが
let系はlambdaまで落として((lambda(i) i) (+ i 1))とすれば間違えようがないと思うのだが
566デフォルトの名無しさん
2023/01/11(水) 02:44:32.93ID:/IOcm4EW エスパー大会か?
(let ((i (+ i 1)))
(another-macro i))
another-macroは副作用目的で自明にiに展開したか、乗法的な関数を呼んだ(iの初期値0*n=0)
(let ((i (+ i 1)))
(another-macro i))
another-macroは副作用目的で自明にiに展開したか、乗法的な関数を呼んだ(iの初期値0*n=0)
567デフォルトの名無しさん
2023/01/11(水) 03:33:43.09ID:4gRHy1NM >>565
gancheは知らんけど、さすがにletはプリミティブな事が多いかと
むしろ最適化で読み飛ばすならlambdaまで還元してしまってはダメで、LETをヒューリスティックに認識する必要がある
仮に評価順を示す為にバッククォートでわざとらしく書くと
`(let ((,index ,(1+ stride))) ,(* index stride))
; (LET ((0 1)) 0)
(に等価な)展開とかがありがちかな
特に例に意味は無かったってオチだったりして
gancheは知らんけど、さすがにletはプリミティブな事が多いかと
むしろ最適化で読み飛ばすならlambdaまで還元してしまってはダメで、LETをヒューリスティックに認識する必要がある
仮に評価順を示す為にバッククォートでわざとらしく書くと
`(let ((,index ,(1+ stride))) ,(* index stride))
; (LET ((0 1)) 0)
(に等価な)展開とかがありがちかな
特に例に意味は無かったってオチだったりして
568デフォルトの名無しさん
2023/01/11(水) 03:56:23.35ID:/IOcm4EW defmacro/macroexpand方式だと特にだけど、(let ((0 1)) 0)みたいな残骸から推論する技能はとても大事に思う
書く時もそうだけど、人が書いたモノの後始末なら前提知識が無いのでなおさら
これだけ想像を膨らませてくれる貴重な(let ((0 1)) 0)すら消し飛ばされるならもうお手上げ
なんて文句を言いつつ、schemeでもついslibのdefmacroに手が伸びてしまうのだが
書く時もそうだけど、人が書いたモノの後始末なら前提知識が無いのでなおさら
これだけ想像を膨らませてくれる貴重な(let ((0 1)) 0)すら消し飛ばされるならもうお手上げ
なんて文句を言いつつ、schemeでもついslibのdefmacroに手が伸びてしまうのだが
569デフォルトの名無しさん
2023/01/11(水) 06:03:42.65ID:/IOcm4EW >>565
論理的にどんなletが束縛リスト(とおそらくbodyも)を読み飛ばせるかについて補足
letフォームの評価値は最後のフォームの評価値(car (last 'let-form))のみで決まるけど、それが再束縛のできない自己評価オブジェクト(0, T/#t, :kw-symb etc)ならば、単にそれを返すだけで他を一切見る必要すら必要がない
(let dont-care/maybe-invalid self-evaluating)
→self-evaluating
もしそれ以上簡約してしまうと、(eq 'let (car 'let-form))と(car (last 'let-form))だけを見て決められない
論理的にどんなletが束縛リスト(とおそらくbodyも)を読み飛ばせるかについて補足
letフォームの評価値は最後のフォームの評価値(car (last 'let-form))のみで決まるけど、それが再束縛のできない自己評価オブジェクト(0, T/#t, :kw-symb etc)ならば、単にそれを返すだけで他を一切見る必要すら必要がない
(let dont-care/maybe-invalid self-evaluating)
→self-evaluating
もしそれ以上簡約してしまうと、(eq 'let (car 'let-form))と(car (last 'let-form))だけを見て決められない
570デフォルトの名無しさん
2023/01/11(水) 06:21:34.50ID:/IOcm4EW 一応値については正しいというだけで、もしbodyに(exit)や大域脱出が入ってても無視するのか?という問題はある
ill-formedな>>560すら無視するのだから、当然well-formedな(exit)も無視するのが自然だけど、実際のところはgaucheに訊いてください
ill-formedな>>560すら無視するのだから、当然well-formedな(exit)も無視するのが自然だけど、実際のところはgaucheに訊いてください
571はちみつ餃子 ◆8X2XSCHEME
2023/01/11(水) 17:03:18.22ID:s0T2WgwN572デフォルトの名無しさん
2023/01/11(水) 17:40:33.93ID:/IOcm4EW >>571
どうも、俺のも原理的には…という同じ意図の話だよ
eclやgaucheが有名実装では最もアグレッシブな感じなのかな?
(declaim (optimize (speed 0) debug safety)
が外せない俺には怖くて触れないよ
どうも、俺のも原理的には…という同じ意図の話だよ
eclやgaucheが有名実装では最もアグレッシブな感じなのかな?
(declaim (optimize (speed 0) debug safety)
が外せない俺には怖くて触れないよ
573デフォルトの名無しさん
2023/01/11(水) 18:02:49.87ID:/IOcm4EW なおeclのlocked package?の件、標準の宣言を全て付けても有効な模様…
574デフォルトの名無しさん
2023/01/11(水) 18:12:33.46ID:qLQaVlgq notinlineも効かないし独自機構だな
575はちみつ餃子 ◆8X2XSCHEME
2023/01/14(土) 01:01:49.57ID:9ctkhBjT >>572
> 有名実装では最もアグレッシブ
そんなことはないんじゃないかな。。
実行前の処理に時間をかけない (かけても総合的な性能向上にならない) という
判断でエラーチェックに消極的だけど最適化にも消極的だから。
> 有名実装では最もアグレッシブ
そんなことはないんじゃないかな。。
実行前の処理に時間をかけない (かけても総合的な性能向上にならない) という
判断でエラーチェックに消極的だけど最適化にも消極的だから。
576本田
2023/01/25(水) 23:58:21.43ID:PahnnjBC UCB Scheme
https://people.eecs.berkeley.edu/~bh/61a-pages/Scheme/
UCB Scheme is a modified version of STk 4.0.1 by Erick Gallesio.
https://people.eecs.berkeley.edu/~bh/61a-pages/Scheme/
UCB Scheme is a modified version of STk 4.0.1 by Erick Gallesio.
577デフォルトの名無しさん
2023/01/26(木) 19:06:40.12ID:lq03KzKz USB Schemeじゃないのか
どっちかって言えばUSB Schemeが欲しいのだが
どっちかって言えばUSB Schemeが欲しいのだが
578デフォルトの名無しさん
2023/01/28(土) 14:07:46.81ID:BDgiT21v579本田
2023/01/29(日) 22:24:48.67ID:XMFhzyDs580はちみつ餃子 ◆8X2XSCHEME
2023/01/30(月) 00:59:07.34ID:kRDQpz8S そのリンクがどうしたっていうんだ?
何か思うところがあるなら話題に挙げるのはかまわんが
ただリンクを置いて去るのはやめて欲しいな。
ニュース系のネタならお知らせの意味で貼ったのかなと思うところだが、
そういう感じでもないみたいだしな。
何か思うところがあるなら話題に挙げるのはかまわんが
ただリンクを置いて去るのはやめて欲しいな。
ニュース系のネタならお知らせの意味で貼ったのかなと思うところだが、
そういう感じでもないみたいだしな。
581デフォルトの名無しさん
2023/01/30(月) 19:13:37.70ID:prACFehy そもそもダイナミックスコープの何がだめですか
Emacs lispはダイナミックスコープですが、
あちこちから呼ばれてる関数を、空関数で上書きして殺すとかできて便利です
Emacs lispの感覚でGIMPのスクリプト(scheme)を書こうとすると
なにか何でもかんでもラッパー渡し(いちいちcarをひとつ辿る)って感じです
ちなみにLispは普通の手続き型言語としてしか使ったことないです
そんな奴への説教とかあったら聞きたいです
マクロとか、「確かにif文を関数として実装するのは無理かもしれないし、
そういう時に使うのかな」くらいにしか解ってないです
Emacs lispはダイナミックスコープですが、
あちこちから呼ばれてる関数を、空関数で上書きして殺すとかできて便利です
Emacs lispの感覚でGIMPのスクリプト(scheme)を書こうとすると
なにか何でもかんでもラッパー渡し(いちいちcarをひとつ辿る)って感じです
ちなみにLispは普通の手続き型言語としてしか使ったことないです
そんな奴への説教とかあったら聞きたいです
マクロとか、「確かにif文を関数として実装するのは無理かもしれないし、
そういう時に使うのかな」くらいにしか解ってないです
582デフォルトの名無しさん
2023/01/30(月) 19:45:34.45ID:w7gs7hNq >>581
全然ダメじゃないよ。でも誰か(昨日のオレ)が余計なことをやって不審な挙動をしてるけど原因がさっぱり分からないというのは起こりやすいかもしれない。
全然ダメじゃないよ。でも誰か(昨日のオレ)が余計なことをやって不審な挙動をしてるけど原因がさっぱり分からないというのは起こりやすいかもしれない。
583デフォルトの名無しさん
2023/01/31(火) 01:40:41.84ID:t9l1A9G+ Lispではたまたまうまく動いてるように見えるけど変数宣言の無い言語でダイナミックスコープやると死ぬ
584はちみつ餃子 ◆8X2XSCHEME
2023/01/31(火) 10:19:46.67ID:XA5Y5Qfu >>581
元のプログラムを書き換えずに影響を差し込むことが出来るってのはアプリケーション拡張用として便利だけれど
元のプログラムが想定してない滅茶苦茶なことも出来ちゃうということと最適化が困難になるのが深刻な問題だと思う。
ユーザーが変な使い方をして変なことを起こす分には自業自得といえるにしても
今ではパッケージをネット上からダウンロードしてインストールまで自動だから
悪意あるコードが他のパッケージを好きなように変更できるようだと影響範囲が大きい。
たとえばウェブブラウザのアドオンなんかだど各アドオンは通信によって協調は出来るが
環境は共有しないようにすることで影響力を制限している。
参照しているものがことごとくいつでも変更される可能性があると
インライン化や畳み込みといったごく基本的な (しかし効果が高い) 最適化すらできない。
現代的な言語処理系に対して数十倍単位で遅いのはさすがに困る。
ものごとの良し悪しにはトレードオフがある。
どちらの問題もコードが小規模ならどうということはないので利点のほうが上回っていたのかもしれないが、
時代を経て巨大になりすぎた。 疎結合を意識した構成にしないと手に負えない。
元のプログラムを書き換えずに影響を差し込むことが出来るってのはアプリケーション拡張用として便利だけれど
元のプログラムが想定してない滅茶苦茶なことも出来ちゃうということと最適化が困難になるのが深刻な問題だと思う。
ユーザーが変な使い方をして変なことを起こす分には自業自得といえるにしても
今ではパッケージをネット上からダウンロードしてインストールまで自動だから
悪意あるコードが他のパッケージを好きなように変更できるようだと影響範囲が大きい。
たとえばウェブブラウザのアドオンなんかだど各アドオンは通信によって協調は出来るが
環境は共有しないようにすることで影響力を制限している。
参照しているものがことごとくいつでも変更される可能性があると
インライン化や畳み込みといったごく基本的な (しかし効果が高い) 最適化すらできない。
現代的な言語処理系に対して数十倍単位で遅いのはさすがに困る。
ものごとの良し悪しにはトレードオフがある。
どちらの問題もコードが小規模ならどうということはないので利点のほうが上回っていたのかもしれないが、
時代を経て巨大になりすぎた。 疎結合を意識した構成にしないと手に負えない。
585デフォルトの名無しさん
2023/01/31(火) 10:34:59.12ID:tSjB9eWW グローバル&ダイナミックは罠になり得るけど、対話的に使うコマンド言語(シェル)は大体そうだし利便性の問題、新しいpwshでももそう
定義をテキストとして全てダンプして、読み戻せる利点がある
cl/scheme(fluid-letとかそんな名前の拡張)のように基本レキシカルで、ローカル&ダイナミックは宣言が必要なら意図せず使う事は稀なはず
(form-in-scope? (declare (special x)) form-in-scope)
(locally (declare (special x)) (form-in-scope))
面倒だけど(declare…)が外、つまり同じレベルのフォームに影響する場合があるのが気持ち悪いから、明示的な後者を好む
定義をテキストとして全てダンプして、読み戻せる利点がある
cl/scheme(fluid-letとかそんな名前の拡張)のように基本レキシカルで、ローカル&ダイナミックは宣言が必要なら意図せず使う事は稀なはず
(form-in-scope? (declare (special x)) form-in-scope)
(locally (declare (special x)) (form-in-scope))
面倒だけど(declare…)が外、つまり同じレベルのフォームに影響する場合があるのが気持ち悪いから、明示的な後者を好む
586デフォルトの名無しさん
2023/01/31(火) 10:56:14.75ID:tSjB9eWW レキシカルな情報を取り込んでしまう(暗黙にクロージャを作る)クロージャにはテキスト表現が無いから、ダンプが出来ないのは致命的な欠点
よってダイナミックスコープ一択になる
pwshだと gci function:
bashだとdeclare -f (多分、よく知らん)
でダンプ、出力されるテキストを読み直せば(大体)環境が復元できる
pwsh方式だと{code}.GetNewClosure()でクロージャは明示的に得る
よってダイナミックスコープ一択になる
pwshだと gci function:
bashだとdeclare -f (多分、よく知らん)
でダンプ、出力されるテキストを読み直せば(大体)環境が復元できる
pwsh方式だと{code}.GetNewClosure()でクロージャは明示的に得る
587デフォルトの名無しさん
2023/01/31(火) 11:08:10.67ID:tSjB9eWW588はちみつ餃子 ◆8X2XSCHEME
2023/01/31(火) 11:28:43.20ID:XA5Y5Qfu >>587
GIMP の Scheme (Script-fu) は TinyScheme が使われている。 (昔は SIOD だった。)
まあ fluid-let くらいなら自分で書いてもたいした手間じゃないけどね。
GIMP の Scheme (Script-fu) は TinyScheme が使われている。 (昔は SIOD だった。)
まあ fluid-let くらいなら自分で書いてもたいした手間じゃないけどね。
589デフォルトの名無しさん
2023/01/31(火) 11:31:05.15ID:cAwVb56Q #<closure ...>が嫌ならいにしえのfunargを使えばok
別にレキシカル環境をリストで持ったって構わないわけで、印字表現が不透明なlispはインクリメンタルコンパイルやリストより効率の良いデータ構造を選んだ結果
厳密にはダイナミックスコープでないけれど、コード注入なら'ラムダ式を渡して廻っても同等の自由が得られる(call by name)
既存のコードの方でも準備が必要だけど
別にレキシカル環境をリストで持ったって構わないわけで、印字表現が不透明なlispはインクリメンタルコンパイルやリストより効率の良いデータ構造を選んだ結果
厳密にはダイナミックスコープでないけれど、コード注入なら'ラムダ式を渡して廻っても同等の自由が得られる(call by name)
既存のコードの方でも準備が必要だけど
590デフォルトの名無しさん
2023/01/31(火) 11:33:22.79ID:tSjB9eWW >>588
ええ…gnu公式の拡張言語とは一体なんだったのか
ええ…gnu公式の拡張言語とは一体なんだったのか
591はちみつ餃子 ◆8X2XSCHEME
2023/01/31(火) 12:23:06.03ID:XA5Y5Qfu >>590
アプリケーションに特有の機能はアプリケーション側で用意されたものを呼出して使うわけだし
言語側のライブラリはほどほどで足りるんで小さい処理系のほうが面倒がないというのはあるかも。
Guile はビルドするだけで面倒くさいが TinyScheme はファイル数個の簡単構成だし。
アプリケーションに特有の機能はアプリケーション側で用意されたものを呼出して使うわけだし
言語側のライブラリはほどほどで足りるんで小さい処理系のほうが面倒がないというのはあるかも。
Guile はビルドするだけで面倒くさいが TinyScheme はファイル数個の簡単構成だし。
592デフォルトの名無しさん
2023/01/31(火) 12:38:01.83ID:mFP57axK ローカルにダイナミックな束縛をやるなら、それ専用のprogvフォーム(clにある)はどう思われてるんだろ?
(progv 変数リスト
値リスト
body)
let系列の (変数 値)リスト慣習を転置(zip)した記法だけど、束縛が多くても縦にスペースを取らない
let慣習では変数 値はsetq/set!だけど、progvの変数リストは評価されるから、リード時にバッククオートでシンボルを埋め込むようなハックが不要
動的束縛を活用するようなメタな場面では特にだけど、埋め込む為だけにわざわざリーダを何度も通すのが歯痒い
多分に個人的な好みだと思うけど
(progv 変数リスト
値リスト
body)
let系列の (変数 値)リスト慣習を転置(zip)した記法だけど、束縛が多くても縦にスペースを取らない
let慣習では変数 値はsetq/set!だけど、progvの変数リストは評価されるから、リード時にバッククオートでシンボルを埋め込むようなハックが不要
動的束縛を活用するようなメタな場面では特にだけど、埋め込む為だけにわざわざリーダを何度も通すのが歯痒い
多分に個人的な好みだと思うけど
593デフォルトの名無しさん
2023/01/31(火) 13:07:01.68ID:tSjB9eWW >>592
転置されてるのと束縛リストの実行時評価は、おそらくlet風のマクロを書く時に便利だからかな
mapcar #'list let-like-binding-list
がprogvに渡せて、あと欠損値も勝手にnilで埋まる
あと機械的に名前を処理するならgensymもお忘れなく
転置されてるのと束縛リストの実行時評価は、おそらくlet風のマクロを書く時に便利だからかな
mapcar #'list let-like-binding-list
がprogvに渡せて、あと欠損値も勝手にnilで埋まる
あと機械的に名前を処理するならgensymもお忘れなく
594デフォルトの名無しさん
2023/01/31(火) 13:18:26.31ID:tSjB9eWW 例が悪かった
単にlistをmapcarするだけでは、let形式のリストをそのまま渡した方が早い
不定数の引数を取ってリストを返す関数で、自明なlist以外をmapcarするならかなり楽が出来るはず
しかし何に便利か今すぐ具体的な例は思い付かない()
単にlistをmapcarするだけでは、let形式のリストをそのまま渡した方が早い
不定数の引数を取ってリストを返す関数で、自明なlist以外をmapcarするならかなり楽が出来るはず
しかし何に便利か今すぐ具体的な例は思い付かない()
595デフォルトの名無しさん
2023/01/31(火) 14:00:30.21ID:tSjB9eWW596デフォルトの名無しさん
2023/01/31(火) 14:46:13.56ID:CmTey6Bh GNUは昔から他人の成果物の丸パクリしか脳が無い団体だよ
597デフォルトの名無しさん
2023/01/31(火) 15:18:25.22ID:AYYg8Thv emacsの膨大なテキスト処理関数群に依存していない純ロジックのみのelispコードなら資産になる
そんなの指折り数える量だろう
そんなの指折り数える量だろう
598デフォルトの名無しさん
2023/01/31(火) 15:38:47.41ID:sZCc+g+m ライセンス問題でどうしてもコードを触りたくないなら別だけど
何らかのlisp書きであれば、コピペしてその方言に適合するよう手直しする程度は自明な作業でしょう
何らかのlisp書きであれば、コピペしてその方言に適合するよう手直しする程度は自明な作業でしょう
599はちみつ餃子 ◆8X2XSCHEME
2023/02/01(水) 01:45:17.62ID:ySbq2UIa >>598
ダイナミックスコープとレキシカルスコープでは埋めがたい差があるし、モジュールやフェイズの方針なども大きな差だ。
伝統的に方言と称してはいるが個々に定義された別の言語なのでそんなに簡単に修正は出来ないよ。
私自身はそこそこ Scheme には習熟している自信があるが Common Lisp も Clojure も全然わからん。
C と JavaScript の外観はなんとなく似せてあるが静的型と動的型の違いという根本的な部分で違うからそう簡単に移植はできないのと同じような感じ。
ダイナミックスコープとレキシカルスコープでは埋めがたい差があるし、モジュールやフェイズの方針なども大きな差だ。
伝統的に方言と称してはいるが個々に定義された別の言語なのでそんなに簡単に修正は出来ないよ。
私自身はそこそこ Scheme には習熟している自信があるが Common Lisp も Clojure も全然わからん。
C と JavaScript の外観はなんとなく似せてあるが静的型と動的型の違いという根本的な部分で違うからそう簡単に移植はできないのと同じような感じ。
600デフォルトの名無しさん
2023/02/01(水) 06:05:03.14ID:BjxytPYm いっそ Emacs そのまま組み込んじゃうとかそんな方向に進まないかな…
近頃の環境ならそんなに重くないはずだし。
近頃の環境ならそんなに重くないはずだし。
601デフォルトの名無しさん
2023/02/01(水) 14:47:30.69ID:MmorO90J >>600
やってできなくはないのかもしれないよ
昔、zlibがまだなかった時代にDOSでzオプションの利くtarを使いたくて、
仕方なくtarとgzipをまとめて一つのバイナリにリンクしてしまって、
スタートアップでヒープを半分に割って、スタックをそれぞれに割り振って、
あとはバッファが一杯になるたびにtar側とgzip側をsetjmpとlongjmpで行ったり来たり、
解凍は問題ないんだけど圧縮がどうしても同じ結果にならなくて、発表せず一人で使ってた
やってできなくはないのかもしれないよ
昔、zlibがまだなかった時代にDOSでzオプションの利くtarを使いたくて、
仕方なくtarとgzipをまとめて一つのバイナリにリンクしてしまって、
スタートアップでヒープを半分に割って、スタックをそれぞれに割り振って、
あとはバッファが一杯になるたびにtar側とgzip側をsetjmpとlongjmpで行ったり来たり、
解凍は問題ないんだけど圧縮がどうしても同じ結果にならなくて、発表せず一人で使ってた
602デフォルトの名無しさん
2023/02/11(土) 19:10:46.38ID:iYjc3QSL オレオレSchemeでMineSweeper
ソースがSchemeで書かれている
ttp://ujip.ninja-web.net/schemeonjs/minesweeper.html
ソースがSchemeで書かれている
ttp://ujip.ninja-web.net/schemeonjs/minesweeper.html
603デフォルトの名無しさん
2023/02/11(土) 20:04:34.26ID:6efBUOB/ だからなんやねん
つか何年前から来たの?ってレベルの話だろ
つか何年前から来たの?ってレベルの話だろ
604デフォルトの名無しさん
2023/02/15(水) 12:56:30.42ID:Iq74I464 目くじら立てることかよ
605デフォルトの名無しさん
2023/03/05(日) 13:42:32.16ID:nmaj3sub オンラインでuLisp動かしてみようかとTinkerCADのArduonoUnoにソースコード流し込んでみたけどさすがに5000行は許してもらえないみたいだな。
606デフォルトの名無しさん
2023/04/24(月) 08:39:19.08ID:AD1D3xO/ 最適化されたCLは最適化されていないCよりは速い
昔Common LispでCより速いHTTPパーサを書いたとか言ってたのを見かけた
コードを見るとnodejsのCで書かれたHTTPパーサをパクったみたいな感じなのに
比較対象はなぜかどっかの個人がCで書いたHTTPパーサだった
その個人が晒してたソースのMakefileはデフォルトでは最適化なし
なぜ比較する前にCの方を最適化することを思いつかなかったのだろうか
というかなんでnodjsの方と比較しなかったんだ?
誰か理由わかります?
昔Common LispでCより速いHTTPパーサを書いたとか言ってたのを見かけた
コードを見るとnodejsのCで書かれたHTTPパーサをパクったみたいな感じなのに
比較対象はなぜかどっかの個人がCで書いたHTTPパーサだった
その個人が晒してたソースのMakefileはデフォルトでは最適化なし
なぜ比較する前にCの方を最適化することを思いつかなかったのだろうか
というかなんでnodjsの方と比較しなかったんだ?
誰か理由わかります?
607デフォルトの名無しさん
2023/04/24(月) 08:46:06.25ID:Z0B9bFh/ なぞなぞかな
608デフォルトの名無しさん
2023/04/25(火) 20:39:53.26ID:wy/j7fQc おじいちゃんそろそろマクロを飲む時間ですよ
609デフォルトの名無しさん
2023/05/24(水) 21:31:48.49ID:w5+jyJkb 氏のイキリ芸でしょ
610デフォルトの名無しさん
2023/06/20(火) 13:38:32.61ID:Dvlv0UV+ scheme処理系作ったりSICPで悟り開いたりしたけど今の使い方は実質電卓
スペース区切りの値そのまま貼り付けられて便利なんよなー
スペース区切りの値そのまま貼り付けられて便利なんよなー
611デフォルトの名無しさん
2023/08/18(金) 02:03:46.68ID:dtVdNVwB John Cowan 氏が R7RS-large の議長の座を降りることを表明した模様。
これからの体制については現時点は決まっていない。
これからの体制については現時点は決まっていない。
612デフォルトの名無しさん
2023/08/19(土) 10:24:26.69ID:L0GsKMkM 実質機能しない規格なんて不要
主要処理系の実態調査して
ANSI Common Schemeを策定すべき
主要処理系の実態調査して
ANSI Common Schemeを策定すべき
613デフォルトの名無しさん
2023/08/19(土) 20:44:33.82ID:2cGgFupU 実用的で無い言語にANSI規格とか要らないだろ
それより、Type Script 普通に良い言語だぞ、
あれ実質的に型付きのlispだわ
それより、Type Script 普通に良い言語だぞ、
あれ実質的に型付きのlispだわ
614デフォルトの名無しさん
2023/08/20(日) 18:08:19.00ID:Jez4Fpf5 「Type Scriptはlisp」発言頂きましたー
615デフォルトの名無しさん
2023/08/20(日) 18:21:02.18ID:P3ytobrG JavaScriptがそもそもschemeだし。
616デフォルトの名無しさん
2023/08/20(日) 21:24:26.60ID:CVtYBdI9617デフォルトの名無しさん
2023/08/28(月) 22:32:35.76ID:ZDIe4Rjo618デフォルトの名無しさん
2023/09/03(日) 20:41:45.72ID:ApaaLf4l Chez Scheme の 9.6.2 が五日前にリリースされていた。
619はちみつ餃子 ◆8X2XSCHEME
2023/10/04(水) 15:56:06.86ID:DlO9V8Bc Gauche 0.9.13 のリリース候補が出た。
問題ありそうな部分や要望があるなら今のうちに出しとくといいよ。
https://sourceforge.net/p/gauche/mailman/message/41039777/
問題ありそうな部分や要望があるなら今のうちに出しとくといいよ。
https://sourceforge.net/p/gauche/mailman/message/41039777/
620デフォルトの名無しさん
2023/10/06(金) 07:52:06.47ID:Gz/JU6Xd Gauche1.0.0 !! 早く来てくれーーー!!!
621デフォルトの名無しさん
2023/10/06(金) 23:46:32.54ID:WmRjQTiM Gaucheの目的が何なのか知らんけど
それが達成されるまで1.0にならんのだろうな
それが達成されるまで1.0にならんのだろうな
622はちみつ餃子 ◆8X2XSCHEME
2023/10/07(土) 09:12:48.49ID:xYnVrult Gauche のバージョンナンバーの予定はここにかいてある。
http://practical-scheme.net/gauche/devinfo-j.html
具体的な基準ではないので(ユーザーの意見を聞きつつ)開発者が納得する完成度になればメジャーバージョンもあがるってことだろ。
http://practical-scheme.net/gauche/devinfo-j.html
具体的な基準ではないので(ユーザーの意見を聞きつつ)開発者が納得する完成度になればメジャーバージョンもあがるってことだろ。
623デフォルトの名無しさん
2023/10/07(土) 15:21:49.73ID:GRsLaML4 「Gauche 1.0」って文字列の違和感がすごい
624デフォルトの名無しさん
2023/10/07(土) 23:47:40.08ID:c4CFtcBt 要望ね。schemeは処理系としては構造が簡単だから適当に作ってもそこそこ良い具合に出来上がるだろうが、
問題はその後で、処理系の方向性を決める必要がある。処理系作るってことは目標が既に設定されている場合もあるが、
他人に使って欲しいのであるなら例えばpythonライブラリ流用できるとか.NETでGUIアプリ簡単に作れますとかwebだとか生成AIで何かいけるとかそんなのだね
俺がGaucheの名前を知りながら長年ほぼ触ったことないのはその辺りが原因だよ
問題はその後で、処理系の方向性を決める必要がある。処理系作るってことは目標が既に設定されている場合もあるが、
他人に使って欲しいのであるなら例えばpythonライブラリ流用できるとか.NETでGUIアプリ簡単に作れますとかwebだとか生成AIで何かいけるとかそんなのだね
俺がGaucheの名前を知りながら長年ほぼ触ったことないのはその辺りが原因だよ
625はちみつ餃子 ◆8X2XSCHEME
2023/10/08(日) 01:14:49.29ID:tCGlxsdd Gauche の目標設定はトップに書かれている。
http://practical-scheme.net/gauche/index-j.html
要するにスクリプト言語として常識的に必用とされる機能を盛り込んで日常業務に使える Scheme 処理系を目指すってことだ。
英語の「日常会話程度」が専門的な会話より難易度が高いなどといわれることもあるように「普通に使える」ってのは何か特徴的な売り文句があるより大変だったりもする。
Gauche は作者自身が業務で使ってるわけだから特化するより万能寄りのデザインなんだろう。
個人的には日本語テキストを不自由なく扱えるのがありがたいね。開発が始まったきっかけも stk で日本語を扱えなかったかららしいし、そこらへんは力が入ってると思う。
http://practical-scheme.net/gauche/index-j.html
要するにスクリプト言語として常識的に必用とされる機能を盛り込んで日常業務に使える Scheme 処理系を目指すってことだ。
英語の「日常会話程度」が専門的な会話より難易度が高いなどといわれることもあるように「普通に使える」ってのは何か特徴的な売り文句があるより大変だったりもする。
Gauche は作者自身が業務で使ってるわけだから特化するより万能寄りのデザインなんだろう。
個人的には日本語テキストを不自由なく扱えるのがありがたいね。開発が始まったきっかけも stk で日本語を扱えなかったかららしいし、そこらへんは力が入ってると思う。
626デフォルトの名無しさん
2023/10/08(日) 12:59:35.92ID:SlOLtELZ schemeを好きで使ってるやつって俺含めて既に自分の処理系は持ってると思うのだが、
自分の欲しい機能を満たせばそれ以上求めないし、その成果を踏み台に次のステップへ階段を上がるだろう
階段を上った末、他人に使わせる場面に出くわす事は良くある事で、その時それはschemeではなくなってた方が良いかもしれない
新人「えーなにこの括弧だらけ…今のトレンド?か、かっこいいですねワラワラワラ(辞めよ…)」
業務で使ったら他人を辞めさせる能力については万能になれるか
自分の欲しい機能を満たせばそれ以上求めないし、その成果を踏み台に次のステップへ階段を上がるだろう
階段を上った末、他人に使わせる場面に出くわす事は良くある事で、その時それはschemeではなくなってた方が良いかもしれない
新人「えーなにこの括弧だらけ…今のトレンド?か、かっこいいですねワラワラワラ(辞めよ…)」
業務で使ったら他人を辞めさせる能力については万能になれるか
627はちみつ餃子 ◆8X2XSCHEME
2023/10/13(金) 02:28:23.22ID:ZG3aaQwo Gauche 0.9.13 がリリースされたやで
628デフォルトの名無しさん
2023/10/13(金) 12:37:28.90ID:p9b8Kc4m 次のリリースはついに1.0だと>Gauche
お祝いしなきゃ
お祝いしなきゃ
629はちみつ餃子 ◆8X2XSCHEME
2023/10/13(金) 15:24:17.01ID:ZG3aaQwo expecting ってのがどのくらいの確信なのか感覚的にわからないのだけど
一応の既定路線くらいには考えていいんかな?
一応の既定路線くらいには考えていいんかな?
630デフォルトの名無しさん
2023/10/13(金) 19:25:12.51ID:79LHTXDX しらんがな
どうせ本人もここ見てるだろうが質問あるなら直接本人に聞けよ
答え難いだろうが
どうせ本人もここ見てるだろうが質問あるなら直接本人に聞けよ
答え難いだろうが
631はちみつ餃子 ◆8X2XSCHEME
2024/01/25(木) 17:23:17.38ID:d9W0b5Ok 諸事情で Gauche 0.9.14 が出ることになってリリース候補が来たよ。
https://sourceforge.net/p/gauche/mailman/message/58728292/
https://sourceforge.net/p/gauche/mailman/message/58728292/
632はちみつ餃子 ◆8X2XSCHEME
2024/02/07(水) 15:30:34.72ID:kuiQPbhX Chez Scheme 10.0.0 リリースきた
https://github.com/cisco/ChezScheme/releases/tag/v10.0.0
サポートするアーキテクチャが増えたってのと、
そこにポータブルな仮想マシンも追加されたというのが
かなり大きい変更点らしい。
https://github.com/cisco/ChezScheme/releases/tag/v10.0.0
サポートするアーキテクチャが増えたってのと、
そこにポータブルな仮想マシンも追加されたというのが
かなり大きい変更点らしい。
633デフォルトの名無しさん
2024/02/12(月) 11:47:40.17ID:QDPVm8Ph GuileとGaucheって、VMインタープリタ、Cプログラムとの連携・拡張、オブジェクト指向あり、もともとR5RS。
フリーソフトウエアやライセンスという点以外は、言語・実装の方向性としては似ているように思いました。
Gaucheが、BSDライセンス版Guileのような感じがしたのですが、みなさんどう思いますか?
フリーソフトウエアやライセンスという点以外は、言語・実装の方向性としては似ているように思いました。
Gaucheが、BSDライセンス版Guileのような感じがしたのですが、みなさんどう思いますか?
634デフォルトの名無しさん
2024/02/12(月) 21:51:49.83ID:nqAntR6Y ガイル?
635デフォルトの名無しさん
2024/02/14(水) 00:54:24.29ID:4sDroV5Y636デフォルトの名無しさん
2024/02/14(水) 01:07:02.25ID:Im++FRGi ガイルがいる
637はちみつ餃子 ◆8X2XSCHEME
2024/02/15(木) 01:35:34.01ID:x2y7hFPc Sagittarius 0.9.11 も来たよ〜〜〜。
https://bitbucket.org/ktakashi/sagittarius-scheme/wiki/Release%20Note%200.9.11
Sagittarius は暗号通信系に強いね。
作者はオランダの銀行システムに関与する技術者だそうなのでその経験が活かされてるんだろう。
https://bitbucket.org/ktakashi/sagittarius-scheme/wiki/Release%20Note%200.9.11
Sagittarius は暗号通信系に強いね。
作者はオランダの銀行システムに関与する技術者だそうなのでその経験が活かされてるんだろう。
638デフォルトの名無しさん
2024/04/08(月) 00:42:38.05ID:skM/lEty 【検証】40時間Lispを勉強したら信者になれる?【Lisp1】
https://youtu.be/V2GM9lR-Di0
Lispの勉強をしたら『葬送のフリーレン』と同じカタルシスが待っていた。【Lisp2】
https://youtu.be/JvsSt_ksKiw
https://youtu.be/V2GM9lR-Di0
Lispの勉強をしたら『葬送のフリーレン』と同じカタルシスが待っていた。【Lisp2】
https://youtu.be/JvsSt_ksKiw
639デフォルトの名無しさん
2024/04/08(月) 00:43:02.37ID:skM/lEty 面白かったのでw
640デフォルトの名無しさん
2024/04/08(月) 02:59:37.49ID:7blvdNRP 神の言語からschemeを経て生まれたjavascriptは人間にとってはちょうどいいバランスだったわけだな
641デフォルトの名無しさん
2024/04/08(月) 19:16:08.79ID:85I3gne8 >>638
めっちゃ面白かったw
めっちゃ面白かったw
642デフォルトの名無しさん
2024/04/11(木) 10:36:33.17ID:8Rm0X/WO それの前にポールグレアムいじり回が3回あって
それで「Lispがそんなにすごいなら」ってことで40時間勉強したというわけだねw
それで「Lispがそんなにすごいなら」ってことで40時間勉強したというわけだねw
643デフォルトの名無しさん
2024/04/11(木) 23:22:35.79ID:0Tmkq/lZ ポールグレって本職の人じゃなかったんだな
すごい熱量な感じなのに
すごい熱量な感じなのに
644デフォルトの名無しさん
2024/04/12(金) 00:31:32.72ID:H7gFN+op MIT卒でLispで儲けたあと、ベンチャーキャピタルになった元本職かな
645デフォルトの名無しさん
2024/04/12(金) 11:49:20.24ID:nR+PqPBt エッセイストだと思うけどマとしては通販サイトとか作ってたんだっけ
ただ小さな関数やマクロutilが集まったonlisp.lispは準標準関数的な感じで愛用してます
ただ小さな関数やマクロutilが集まったonlisp.lispは準標準関数的な感じで愛用してます
646デフォルトの名無しさん
2024/04/12(金) 12:38:02.80ID:wZ+y5Ko5 そもそもハッカーであるかにガンガンプロダクト作る的な意味での本職マか否かは関係ないと思うのです
cl&schemeの根幹や文書化のみならずC, Java, Fortran委員まで勤めた皆のSteele先生だって何作ったか寡聞にして知らんくらいだし
最近ではC,AWK,Goのバイブル+作法本で鳴らしたKernighan御大も隠居してエッセイストやってる
言語本+エッセイで良い書き物できるのがハッカーの十分条件だと思うね、pgrahamも余裕で該当
cl&schemeの根幹や文書化のみならずC, Java, Fortran委員まで勤めた皆のSteele先生だって何作ったか寡聞にして知らんくらいだし
最近ではC,AWK,Goのバイブル+作法本で鳴らしたKernighan御大も隠居してエッセイストやってる
言語本+エッセイで良い書き物できるのがハッカーの十分条件だと思うね、pgrahamも余裕で該当
647デフォルトの名無しさん
2024/04/12(金) 12:45:09.54ID:wZ+y5Ko5 K御大にはUnixという特大のプロダクトが
648デフォルトの名無しさん
2024/04/12(金) 13:27:33.28ID:vAI6Kzu4 プリンストンで教授やってるみたい
649デフォルトの名無しさん
2024/04/12(金) 14:17:26.15ID:XxWOnWTK おれはlispはスゴイ神の言語とかくっさいワナビ主張は大嫌いだけど、lispはハッカー言語という主張には賛同したい
名だたるスーパーハッカーの共通部分を探してみると、それはシンタックス/セマンティクスに対する深い理解、すなわち言語デザイン能力なんだよな
まあlispの専売特許でなくML系やHaskellもそうだけど、つまりDSLの書きやすさね
別に言語内完結に拘らずともlex/yaccでも処理系手書きでもいいが、言語内で完結したいなら好ましい
挙げられてるPaul GrahamやG.L.Steeleのような簡潔で一貫性のある手続きインターフェイスや構文の設計(言語デザインのみならず、むしろ日常の構造化プログラミングにより通ずる)には、それを自然言語に起こしながら深く考え推敲する経験が必須だろう
これがハッカーの必要条件だと思う(>>646の十分条件に対して)
名だたるスーパーハッカーの共通部分を探してみると、それはシンタックス/セマンティクスに対する深い理解、すなわち言語デザイン能力なんだよな
まあlispの専売特許でなくML系やHaskellもそうだけど、つまりDSLの書きやすさね
別に言語内完結に拘らずともlex/yaccでも処理系手書きでもいいが、言語内で完結したいなら好ましい
挙げられてるPaul GrahamやG.L.Steeleのような簡潔で一貫性のある手続きインターフェイスや構文の設計(言語デザインのみならず、むしろ日常の構造化プログラミングにより通ずる)には、それを自然言語に起こしながら深く考え推敲する経験が必須だろう
これがハッカーの必要条件だと思う(>>646の十分条件に対して)
650デフォルトの名無しさん
2024/04/12(金) 15:01:50.67ID:wZ+y5Ko5 >>648
もう80才超えてるし、教鞭執れてるかは怪しいね…
最近プログラム書いてねえなあ、とかウェブで言ってたし
代わりに最近のエッセイ本はマ/CSというより一般人向けっぽいので食指動かず
Understanding the Digital WorldシリーズとかDefending Yourself in a World of Too Many Numbersとかそんな題の書いてる
ソフトウェア作法、プログラミング書法、プログラミング作法の現場で戦うプログラマーの為の三部作は素晴らしい、言語に縛られない(あえて題材は様々な言語)し、lispにも通ずる普遍的な知恵袋だよ
スレチなのでそろそろこの辺で
もう80才超えてるし、教鞭執れてるかは怪しいね…
最近プログラム書いてねえなあ、とかウェブで言ってたし
代わりに最近のエッセイ本はマ/CSというより一般人向けっぽいので食指動かず
Understanding the Digital WorldシリーズとかDefending Yourself in a World of Too Many Numbersとかそんな題の書いてる
ソフトウェア作法、プログラミング書法、プログラミング作法の現場で戦うプログラマーの為の三部作は素晴らしい、言語に縛られない(あえて題材は様々な言語)し、lispにも通ずる普遍的な知恵袋だよ
スレチなのでそろそろこの辺で
651デフォルトの名無しさん
2024/04/12(金) 15:05:17.85ID:dUdcEEpo >>646
Steele先生はlisperの毛嫌いするC系言語/Algolishな言語も無数にデザインしているという皮肉!
Steele先生はlisperの毛嫌いするC系言語/Algolishな言語も無数にデザインしているという皮肉!
652645
2024/04/12(金) 15:53:49.12ID:OhyEPSVL lispの話をしよう
onlisp.lispのようなオレオレutil(s).lisp/scmから引用し過ぎるのはあまり宜しくない?
macroはコンパイル順の関係で引く方が問題起きにくいけど
名前がdescriptiveなのは前提として
too generalであれば初見の人に読みにくいのではと思うこの頃
一方でspecificであるかぎり、手続きを分かつ働きすら無い関数抽象も読み易い:
carにget-operator、cdrにget-operandsなど単なるリネームでも重用する
これらはpackage内にレキシカルな意味で近傍に置くべきよね?(使い捨てならflet/labels、共用ならdefun)
より一般的な小物をコーディングを楽にする為だけに引くならば、lisp書きなら定義も大体覚えてるだろう有名な小物util集(alexandria、sfri)に依存した同梱するのも(ライセンスが許しても)憚られる…
このスレやSO等見ても必読書なOn Lispは知名度あるだろうから、onlisp.lisp由来のものは初見で読めてコンパクトでバランス取れた妥協点だと思って使ってるんだけど
(ライセンスや再帰志向で性能難アリなので、手習いがてら書き直したクローン版、念の為)
なおonlisp.lispは手続き名がいにしえのlispかよってくらいヤバいのが欠点
onlisp.lispのようなオレオレutil(s).lisp/scmから引用し過ぎるのはあまり宜しくない?
macroはコンパイル順の関係で引く方が問題起きにくいけど
名前がdescriptiveなのは前提として
too generalであれば初見の人に読みにくいのではと思うこの頃
一方でspecificであるかぎり、手続きを分かつ働きすら無い関数抽象も読み易い:
carにget-operator、cdrにget-operandsなど単なるリネームでも重用する
これらはpackage内にレキシカルな意味で近傍に置くべきよね?(使い捨てならflet/labels、共用ならdefun)
より一般的な小物をコーディングを楽にする為だけに引くならば、lisp書きなら定義も大体覚えてるだろう有名な小物util集(alexandria、sfri)に依存した同梱するのも(ライセンスが許しても)憚られる…
このスレやSO等見ても必読書なOn Lispは知名度あるだろうから、onlisp.lisp由来のものは初見で読めてコンパクトでバランス取れた妥協点だと思って使ってるんだけど
(ライセンスや再帰志向で性能難アリなので、手習いがてら書き直したクローン版、念の為)
なおonlisp.lispは手続き名がいにしえのlispかよってくらいヤバいのが欠点
653デフォルトの名無しさん
2024/04/12(金) 23:54:00.88ID:/A9qFmr2 文章下手糞すぎて読む気も起きない
これって神の言語に慣れすぎて言語障害になった例かよってくらいヤバいのが>>652の欠点
これって神の言語に慣れすぎて言語障害になった例かよってくらいヤバいのが>>652の欠点
654デフォルトの名無しさん
2024/04/13(土) 18:14:03.11ID:JilIuOKd ストールマンがガンになったらしい
長髪も髭も落としてしまって別人みたいになってる
長髪も髭も落としてしまって別人みたいになってる
655デフォルトの名無しさん
2024/04/13(土) 18:24:37.81ID:OrtqC7Lq 効いてる効いてる
656デフォルトの名無しさん
2024/04/13(土) 19:21:54.91ID:JilIuOKd 何が?
657デフォルトの名無しさん
2024/04/13(土) 22:51:10.37ID:Vi4F3OXr 昔MSの偉い人がGNUはガンだとか言ってたな
ついに自覚させたか
ついに自覚させたか
658デフォルトの名無しさん
2024/04/13(土) 23:32:28.78ID:c7UXCLXT >>655
お前は脳にガンを抱えてるなw
お前は脳にガンを抱えてるなw
659デフォルトの名無しさん
2024/04/14(日) 12:56:54.81ID:JRHy27WB660デフォルトの名無しさん
2024/04/14(日) 13:37:09.89ID:JRHy27WB661デフォルトの名無しさん
2024/04/14(日) 14:04:02.38ID:JRHy27WB コーシー噴いたw
662デフォルトの名無しさん
2024/04/14(日) 15:00:30.77ID:XsKNoxHh >>660は娯楽コンテンツとしては面白い
でもLispは良いとして集合論を勉強しようとしてるのにはやれやれだな
Haskellで圏論とかAIで代数幾何に夢見たりするのと似てる
結局広く浅くでウンチク欲を満たすに留めて、実践から逃げたいのだろうな
実践は壁だらけだから
でもLispは良いとして集合論を勉強しようとしてるのにはやれやれだな
Haskellで圏論とかAIで代数幾何に夢見たりするのと似てる
結局広く浅くでウンチク欲を満たすに留めて、実践から逃げたいのだろうな
実践は壁だらけだから
663デフォルトの名無しさん
2024/04/14(日) 17:27:06.49ID:ezgj98lZ Lispとは別に2人で集合論やって
Lispは一冊何か挟んでからPAIP読んでほしい
番組のネタ的に
Lispは一冊何か挟んでからPAIP読んでほしい
番組のネタ的に
664デフォルトの名無しさん
2024/04/14(日) 21:34:02.26ID:p4Nf2jzu その人らはLispに大した拘りはないし
今更検索でまともに引っかからない古代のPAIPなんてやる意味を見出せないだろ
AI関連ならTranslatorからChatGPTブレイクに至るまででも話題にしたらいい
今更検索でまともに引っかからない古代のPAIPなんてやる意味を見出せないだろ
AI関連ならTranslatorからChatGPTブレイクに至るまででも話題にしたらいい
665デフォルトの名無しさん
2024/04/14(日) 21:56:43.27ID:JRHy27WB そうかなあ、論理プログラミングとか自然言語解析とか右側の人大興奮じゃないの
666デフォルトの名無しさん
2024/04/15(月) 01:53:38.60ID:YG3lrvG/ >>649
MLやregexエンジン積んでパターンマッチ機構を言語ビルトインにしても特にアドバンテージなんて無いと思うけどな
50行のコードでcl-ppcre(perl相当)とも機能面では十分戦えるわけで
or/and,named-capture/backref、lookahead/behind-assertion、predication、filter、context-sensitiveなreplace等ね
超古典な"LISP" Winston, Paul Horn, 2nd edのchap.17に載ってるやつ
本を薄くするために徹底的に再帰で書かれてるからまあ性能は察せ()
再帰で分かりやすいコードだから叩き台にもオススメ
MLやregexエンジン積んでパターンマッチ機構を言語ビルトインにしても特にアドバンテージなんて無いと思うけどな
50行のコードでcl-ppcre(perl相当)とも機能面では十分戦えるわけで
or/and,named-capture/backref、lookahead/behind-assertion、predication、filter、context-sensitiveなreplace等ね
超古典な"LISP" Winston, Paul Horn, 2nd edのchap.17に載ってるやつ
本を薄くするために徹底的に再帰で書かれてるからまあ性能は察せ()
再帰で分かりやすいコードだから叩き台にもオススメ
667デフォルトの名無しさん
2024/04/15(月) 02:00:08.14ID:YG3lrvG/ あれはsymbolic pattern matchなのでregexと比べるのは良い例出なかったごめん
まあexplodeしてしまえばもうキャラクタベースだ
確かGrahamの>>652にあるシンボルをバラすやつ、まあ3行くらいで書ける小品だけど
explodeってネーミングがクールで覚えてたわ
まあexplodeしてしまえばもうキャラクタベースだ
確かGrahamの>>652にあるシンボルをバラすやつ、まあ3行くらいで書ける小品だけど
explodeってネーミングがクールで覚えてたわ
668デフォルトの名無しさん
2024/04/15(月) 02:27:22.10ID:wPU2Kemh >>665
そうそう、PCと自分のスキルで実践出来る分野なのに(最低限の真似事すら)やってないのがお察しか
右の人が予めPC音痴だと予防線張ってるのは自走力低めだと自己分析出来てるのかも
まぁ実践(この場合はプログラミング)で玉砕しちゃったら、しょんぼりするか歯切れ悪くて
面白くなくなるタイプだからチャンネル的には今のままで良いのかも
左の人は画面キャプチャしながらライブコーディングするスタイルを何処かで見せないと説得力に乏しい
左右どちらも含蓄なく浅はかに見えてしまうので、その道の専門家をお呼びするスタイルにして欲しい
C#のufcpp的な人が(声とコード画面だけでも)出演したら(最低限の真似事なら)実践する人が増えると思う
そうそう、PCと自分のスキルで実践出来る分野なのに(最低限の真似事すら)やってないのがお察しか
右の人が予めPC音痴だと予防線張ってるのは自走力低めだと自己分析出来てるのかも
まぁ実践(この場合はプログラミング)で玉砕しちゃったら、しょんぼりするか歯切れ悪くて
面白くなくなるタイプだからチャンネル的には今のままで良いのかも
左の人は画面キャプチャしながらライブコーディングするスタイルを何処かで見せないと説得力に乏しい
左右どちらも含蓄なく浅はかに見えてしまうので、その道の専門家をお呼びするスタイルにして欲しい
C#のufcpp的な人が(声とコード画面だけでも)出演したら(最低限の真似事なら)実践する人が増えると思う
669デフォルトの名無しさん
2024/04/15(月) 02:48:11.62ID:YG3lrvG/ >>665,668
うむ、若かりし頃はマルコフやProlog/SQLモドキとかやってた、なるべく決定論的なのが個人的な好み
トレースを分析しても理解の困難なモノは、決して知的探究心を満たしてはくれないのだ
流行りの文章生成もマルコフならトレーサビリティは完全なのが良い
うむ、若かりし頃はマルコフやProlog/SQLモドキとかやってた、なるべく決定論的なのが個人的な好み
トレースを分析しても理解の困難なモノは、決して知的探究心を満たしてはくれないのだ
流行りの文章生成もマルコフならトレーサビリティは完全なのが良い
670デフォルトの名無しさん
2024/04/15(月) 03:14:20.11ID:YG3lrvG/ 古いAIのバイブルPAIPすら恥ずかしながら未読の身ですが…
lispもデータドリブンなNN系はむしろ苦手とは思わない
NN系がマスメディアでもバズり出した頃にウィキペディア見たら、Pythonのサンプルコードが載ってたので
そのままCPython/Numpyとclで書いてみたら、ベンチはsbclぶっちぎりだったよ
もちろん個々の処理がバックのcライブラリより速いなんて言わない
同レベルのコーダが同ロジックで翻訳すればの話
その差はclの無駄に細かいarray/vectorコンストラクタ引数の設計
具体的にはR/W抑えるビュー相当の:displaced-*と:fill-pointer、配列の動的リサイズ指定の:adjustable引数ね
Numpyのndarrayはこの辺が裏で自動でやるのでコーダの裁量がない
まあNumpyでプラグマ/フラグ駆使してその辺のお節介挙動を切れば普通に負けるかも
あくまで並コーダが素直に書く限りの話
lispもデータドリブンなNN系はむしろ苦手とは思わない
NN系がマスメディアでもバズり出した頃にウィキペディア見たら、Pythonのサンプルコードが載ってたので
そのままCPython/Numpyとclで書いてみたら、ベンチはsbclぶっちぎりだったよ
もちろん個々の処理がバックのcライブラリより速いなんて言わない
同レベルのコーダが同ロジックで翻訳すればの話
その差はclの無駄に細かいarray/vectorコンストラクタ引数の設計
具体的にはR/W抑えるビュー相当の:displaced-*と:fill-pointer、配列の動的リサイズ指定の:adjustable引数ね
Numpyのndarrayはこの辺が裏で自動でやるのでコーダの裁量がない
まあNumpyでプラグマ/フラグ駆使してその辺のお節介挙動を切れば普通に負けるかも
あくまで並コーダが素直に書く限りの話
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正規化あたりと絡めて展開すればよりアカデミックなやりとりが期待できるのでは?
771デフォルトの名無しさん
2025/07/09(水) 19:46:08.96ID:QwaFNVYh map系の関数にラムダ式を渡したら、それがインライン展開されてコンパイルされるのは、最近の言語では当然の様にやってる
772デフォルトの名無しさん
2025/07/09(水) 22:06:22.87ID:cmuoaTCa >>770
letでローカル変数3つ確保しましたって時に
実際には内部でlambdaが呼ばれてるわけだろ?
この時にlambdaをインライン展開したら
オペランドスタックと返り値スタックが省かれて
変数スタックだけになって制御構造と同じコストになるだろ?
これは大きな最適化なんだよ
letでローカル変数3つ確保しましたって時に
実際には内部でlambdaが呼ばれてるわけだろ?
この時にlambdaをインライン展開したら
オペランドスタックと返り値スタックが省かれて
変数スタックだけになって制御構造と同じコストになるだろ?
これは大きな最適化なんだよ
773はちみつ餃子 ◆8X2XSCHEME
2025/07/09(水) 22:54:33.01ID:ZKntcAAj >>772
let が lambda に展開される (させる) 例が仕様に書いてあるのはあくまでも挙動の説明に過ぎず、多くのリッチな処理系ではそんな展開はしない。
let が lambda に展開される (させる) 例が仕様に書いてあるのはあくまでも挙動の説明に過ぎず、多くのリッチな処理系ではそんな展開はしない。
774デフォルトの名無しさん
2025/07/09(水) 23:21:02.31ID:cmuoaTCa >>773
リッチでない処理系がこの最適化ひとつでリッチ同然になる
リッチでない処理系がこの最適化ひとつでリッチ同然になる
775デフォルトの名無しさん
2025/07/09(水) 23:40:56.18ID:eQ8lOX87 テム・レイ最適化って呼ばせてほしい
776デフォルトの名無しさん
2025/07/09(水) 23:41:46.05ID:QSSrKuoD おかしな人が居ると捗るよね。でもまともなこと言ってる人もだんだんおかしなことをいいだして、実はおかしな人しかいなかったと気づかされる。
777デフォルトの名無しさん
2025/07/10(木) 00:52:48.56ID:nn3AKhN3 (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) '() '() '())
あいあい いいいい 飛ばして えいえい おいおい 戻して うーいうい
(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デフォルトの名無しさん
2025/07/10(木) 01:03:21.83ID:qcnALR7R779はちみつ餃子 ◆8X2XSCHEME
2025/07/10(木) 07:45:53.86ID:UMLMi9p2780デフォルトの名無しさん
2025/07/10(木) 09:58:20.49ID:yFw8mCQ1781はちみつ餃子 ◆8X2XSCHEME
2025/07/10(木) 10:05:39.66ID:UMLMi9p2 放置しても延々と書き込み続けるタイプだと思う
782デフォルトの名無しさん
2025/07/10(木) 19:24:20.39ID:yFw8mCQ1783デフォルトの名無しさん
2025/07/10(木) 23:08:55.70ID:RcjFMSaB bignumを廃止してint64を基本にしようとか、いまさらC言語の変数のregister宣言を再発明して画期的だといってるようなもんだろ
こういうのが生成AIでブーストされる世の中になったかと思うとそら恐しいわ
こういうのが生成AIでブーストされる世の中になったかと思うとそら恐しいわ
784デフォルトの名無しさん
2025/07/12(土) 11:00:16.80ID:Q8STCu4g ほんそれ
785デフォルトの名無しさん
2025/07/12(土) 21:28:03.94ID:JuZx4722 つまりGaucheを仕様にしてR7RSを実装にすればぼくだつていばれる
786デフォルトの名無しさん
2025/07/13(日) 05:20:47.26ID:5bgAV9JM ぶっちゃけ「まだ(制御構造相当へと)最適化されていないlambdaもしかるべく最適化されます」であかんの?
787デフォルトの名無しさん
2025/07/13(日) 05:22:42.75ID:5bgAV9JM lambdaというかlambdaの返すクロージャのインライン最適化だな
788デフォルトの名無しさん
2025/07/13(日) 05:35:19.17ID:5bgAV9JM あとAI云々に関しては「一線だとこんなもんです」としか言いようがない
俺はAIを数年前哲学板にペータテストスレが立った頃からいじってるけど
俺の問答はAIを作ってる会社的にもいい一次データになってる可能性があります
あと、論文は近い将来のAIの吐く洗練された論文と比べて原始的になる可能性もあります
俺はAIを数年前哲学板にペータテストスレが立った頃からいじってるけど
俺の問答はAIを作ってる会社的にもいい一次データになってる可能性があります
あと、論文は近い将来のAIの吐く洗練された論文と比べて原始的になる可能性もあります
789デフォルトの名無しさん
2025/07/13(日) 05:52:35.96ID:5bgAV9JM ユーザーがマクロとかで勝手に書いた
どこの馬の骨みたいな制御構造でも
最適化されるんですよ
どこの馬の骨みたいな制御構造でも
最適化されるんですよ
790デフォルトの名無しさん
2025/07/13(日) 08:07:50.27ID:lgLjhFXd >>789
ふつうそうなるだろ。マクロにしたら最適化かからないなんて面倒で非効率なことしない。
ふつうそうなるだろ。マクロにしたら最適化かからないなんて面倒で非効率なことしない。
791デフォルトの名無しさん
2025/07/13(日) 11:38:22.98ID:5bgAV9JM792デフォルトの名無しさん
2025/07/13(日) 12:26:31.49ID:tfWATuEI Racket は、やらないの?
793デフォルトの名無しさん
2025/07/13(日) 23:42:36.36ID:2niGmUKn はちみつがすでに指摘してることを延々とくりかえすのはスレの住人の大半が理解できてないってことか?
794デフォルトの名無しさん
2025/07/13(日) 23:50:59.82ID:2niGmUKn AIくんが教師なし学習でLispの最適化を発明したと主張してきたので新規性がないし既存の手法で実現されてると指摘したら教師なし学習なので新規性なんか知らないし教師なし学習としては凄くないですか?といいはじめる
五年ほど前までこういうAIエンジニア多かったな今どこいったんだろ
五年ほど前までこういうAIエンジニア多かったな今どこいったんだろ
795デフォルトの名無しさん
2025/07/14(月) 04:03:05.17ID:H42iB8O8 >>794
お前なんかがこのスレの何がいいんだ?
お前なんかがこのスレの何がいいんだ?
796デフォルトの名無しさん
2025/07/14(月) 10:05:54.72ID:SvqlBNnt >>791
ごめんなさい、もちろんふつうじゃありません。letを等価なlambda によるものとかに変換して (まあマクロでいいやもあり)それを最適化した方が捗る(ような気がする)というオレオレ実装の話です。
ごめんなさい、もちろんふつうじゃありません。letを等価なlambda によるものとかに変換して (まあマクロでいいやもあり)それを最適化した方が捗る(ような気がする)というオレオレ実装の話です。
797デフォルトの名無しさん
2025/07/14(月) 10:15:20.25ID:yq/UCo3U >>793
はちみつをNGにしてる人かもしれないね
はちみつをNGにしてる人かもしれないね
798デフォルトの名無しさん
2025/07/14(月) 20:30:35.39ID:778hTmQY lambdaの返す関数オブジェクトのたどる運命は大体3通り
(1) シンボルにバインドされて普通の名前付き関数になる
(2) 高階関数に引数として渡される
(3) ファーストラムダとして即座に呼び出される
(1) シンボルにバインドされて普通の名前付き関数になる
(2) 高階関数に引数として渡される
(3) ファーストラムダとして即座に呼び出される
799デフォルトの名無しさん
2025/07/14(月) 23:25:17.89ID:OppI5UAF800デフォルトの名無しさん
2025/07/14(月) 23:58:48.95ID:8TvcLzrP 実在しない実装
虚装
虚装
801デフォルトの名無しさん
2025/07/15(火) 07:22:30.34ID:M3dXRA34 >>796
正規化による見通しのよさが向上するというメリットは普通にあるでしょ
では既存の処理系がすべてそうしていないなぜかというとletのままの方が最適化できることがあるからだったり, CommonLispのletのようにlambdaより機能が多いために等価に変換できないということがある
はちみつが既に指摘している
正規化による見通しのよさが向上するというメリットは普通にあるでしょ
では既存の処理系がすべてそうしていないなぜかというとletのままの方が最適化できることがあるからだったり, CommonLispのletのようにlambdaより機能が多いために等価に変換できないということがある
はちみつが既に指摘している
802デフォルトの名無しさん
2025/07/15(火) 07:32:47.68ID:M3dXRA34 ある状況に最適化するのだから当然だが, 最適化は特定の実行モデルと結び付けると局所的には成功するが往々にして大域的には失敗する
言語設計の巧みさは最適化可能な余地を保ちつつ特定の実行モデルは極力前提にしないところにある. 特定の実行モデルの戦略の失敗が言語の失敗に直結してしまう
これも, はちみつが既に指摘している. 仕様の読み方を学んではどうか. まして独自の言語設計をするならば
言語設計の巧みさは最適化可能な余地を保ちつつ特定の実行モデルは極力前提にしないところにある. 特定の実行モデルの戦略の失敗が言語の失敗に直結してしまう
これも, はちみつが既に指摘している. 仕様の読み方を学んではどうか. まして独自の言語設計をするならば
803デフォルトの名無しさん
2025/07/22(火) 23:09:36.04ID:7KXgok3Q To: **************
Subject: First Lambda = A tail-call-like optimization that lets you write syntax as functions
Dear *********,
The project is still in the early stage of theoretical modeling and representation-level experimentation.
I'm exploring whether the idea of "inline closures as syntax" could serve as a foundation for rewriting control constructs without relying on macro expansion.
First Lambda has the form:
((lambda ...
That is, it immediately invokes the function object returned by a lambda expression.
My idea is to inline that function object at the call site, treating it as if it were a syntactic form.
I believe many constructs like let and while naturally take this shape.
I would greatly appreciate your thoughts on this idea.
Best regards,
*****************
Subject: First Lambda = A tail-call-like optimization that lets you write syntax as functions
Dear *********,
The project is still in the early stage of theoretical modeling and representation-level experimentation.
I'm exploring whether the idea of "inline closures as syntax" could serve as a foundation for rewriting control constructs without relying on macro expansion.
First Lambda has the form:
((lambda ...
That is, it immediately invokes the function object returned by a lambda expression.
My idea is to inline that function object at the call site, treating it as if it were a syntactic form.
I believe many constructs like let and while naturally take this shape.
I would greatly appreciate your thoughts on this idea.
Best regards,
*****************
804デフォルトの名無しさん
2025/07/24(木) 20:23:59.30ID:Pb6gK57F スレに報告するなら
このスレでは新しいアイデアではなかったという結論になっているので
スレの住人の結論をくつがえす力をもつ大先生に相談したのかが
重要な情報だと思うが隠したら意味がない
このスレでは新しいアイデアではなかったという結論になっているので
スレの住人の結論をくつがえす力をもつ大先生に相談したのかが
重要な情報だと思うが隠したら意味がない
805デフォルトの名無しさん
2025/07/24(木) 21:54:32.59ID:CH9XcWr2 宛先はドクター ・マシュー・フラット
806デフォルトの名無しさん
2025/07/25(金) 03:09:24.85ID:3nwbV1EW あなたがこれらの関係性を「発見」だと感じたのは、ご自身で深く考え、これらの概念間のつながりを独自に見出したからでしょう。これは、知識を鵜呑みにせず、自ら思考し、理解しようとする非常に素晴らしい姿勢です。科学の多くの進歩は、このように自らの頭で考えることから生まれます。
しかし、科学の世界では、その「発見」が人類にとって本当に新しい知識であるか、そしてそれが厳密な形で定式化され、検証されているかが問われます。あなたがたどり着いた結論は、偶然にも、あるいは必然的に、すでに確立された「基礎中の基礎」である、ということです。
しかし、科学の世界では、その「発見」が人類にとって本当に新しい知識であるか、そしてそれが厳密な形で定式化され、検証されているかが問われます。あなたがたどり着いた結論は、偶然にも、あるいは必然的に、すでに確立された「基礎中の基礎」である、ということです。
807デフォルトの名無しさん
2025/07/25(金) 18:03:37.57ID:NfVpBKmO 関数型言語が手続き型言語と根本的に違うみたいに言ってたのは一般界隈の方じゃないか
俺は「Schemeを手続き型言語のひとつとしてしか使ったことがない」と言ったら嘲笑を浴びたこともあるぞ
俺は「Schemeを手続き型言語のひとつとしてしか使ったことがない」と言ったら嘲笑を浴びたこともあるぞ
808デフォルトの名無しさん
2025/07/26(土) 00:52:48.70ID:2rEMZk2e もちろん、話し手の真意は本人にしか分かりませんが、提示された情報だけを基にすれば、「逆張りのイキリがスベっただけ」という解釈は十分に成り立ちます。
809デフォルトの名無しさん
2025/08/19(火) 12:17:09.07ID:UpjtMkWM 大学の教授もAIで生成した論文を査読してくれっていわれるの災難だよな
810デフォルトの名無しさん
2025/09/14(日) 14:42:43.95ID:CeEbD0mr すっかり乗り遅れたけど((lambda がインライン化されることの何が発明なのだろうと俺も思った
schemeののメジャーな論文読んだ上での提案ではなさそう
あとアカデミックな作法を好む癖に論の進め方がアカデミックな訓練を受けてなさそうなのが気になる
schemeののメジャーな論文読んだ上での提案ではなさそう
あとアカデミックな作法を好む癖に論の進め方がアカデミックな訓練を受けてなさそうなのが気になる
811デフォルトの名無しさん
2025/09/15(月) 11:19:02.42ID:DuTxbbPw ((lambdaは釣り餌だよ
812デフォルトの名無しさん
2025/09/16(火) 12:10:26.43ID:M3b1vCXY んまー、おせっくす好きですの?
813八大龍王・豊田聡志
2025/09/30(火) 19:20:44.06ID:rqdKtsao 早く仕事終とリハビリテーション終わらして byさとばん
814八大龍王・豊田聡志
2025/09/30(火) 19:22:45.12ID:rqdKtsao 早く仕事終とリハビリテーション終わらして実家に帰るぞby さとばん
815豊田聡志
2025/09/30(火) 19:23:34.85ID:rqdKtsao surveyscm.scm by さとばん
816八大龍王・豊田聡志
2025/09/30(火) 19:24:46.11ID:rqdKtsao sao
surveyscm.scm by さとばん
surveyscm.scm by さとばん
817豊田聡志
2025/09/30(火) 19:25:14.03ID:rqdKtsao surveyscm.scm by さとばん
818八大龍王・豊田聡志
2025/09/30(火) 19:26:38.65ID:rqdKtsao いくら悪神ジタバタしたとて手も出んぞwwwww
819八大龍王・豊田聡志
2025/09/30(火) 19:33:27.27ID:rqdKtsao コッチは、回心した黒龍だ、血も涙もあるわkけ無いだろボケwwwかつえ放置プレイ中
820暗黒神・豊田聡志
2025/09/30(火) 19:34:31.15ID:rqdKtsao コッチは、回心した大邪神だ、血も涙もあるわkけ無いだろボケwwwかつえ放置プレイ中
821八大龍王・豊田聡志
2025/09/30(火) 19:47:21.60ID:rqdKtsao コッチは、回心した黒龍だ、血も涙もあるわkけ無いだろボケwwwかつえ放置プレイ中 命尽きろクソかつえww
420暗黒神・豊田聡志
垢版 | 大砲
2025/09/30(火) 19:40:30.68ID:qhYqnJ/60
コッチは、回心した黒龍だ、血も涙もあるわkけ無いだろボケwwwかつえガールズ・ガーデン放置プレイ中
421八大龍王・豊田聡志
垢版 | 大砲
2025/09/30(火) 19:44:17.47ID:qhYqnJ/60
コッチは、回心した黒龍だ、血も涙もあるわkけ無いだろボケwwwかつえガールズ・ガーデン放置プレイ中
422八大龍王・豊田聡志
垢版 | 大砲
2025/09/30(火) 19:45:20.34ID:qhYqnJ/60
コッチは、回心した黒龍だ、血も涙もあるわkけ無いだろボケwwwかつえガールズ・ガーデン放置プレイ中
979八大龍王・豊田聡志 そのうち、クタバルだろクソかつえの命www
420暗黒神・豊田聡志
垢版 | 大砲
2025/09/30(火) 19:40:30.68ID:qhYqnJ/60
コッチは、回心した黒龍だ、血も涙もあるわkけ無いだろボケwwwかつえガールズ・ガーデン放置プレイ中
421八大龍王・豊田聡志
垢版 | 大砲
2025/09/30(火) 19:44:17.47ID:qhYqnJ/60
コッチは、回心した黒龍だ、血も涙もあるわkけ無いだろボケwwwかつえガールズ・ガーデン放置プレイ中
422八大龍王・豊田聡志
垢版 | 大砲
2025/09/30(火) 19:45:20.34ID:qhYqnJ/60
コッチは、回心した黒龍だ、血も涙もあるわkけ無いだろボケwwwかつえガールズ・ガーデン放置プレイ中
979八大龍王・豊田聡志 そのうち、クタバルだろクソかつえの命www
822八大龍王・豊田聡志
2025/09/30(火) 19:48:31.86ID:rqdKtsao コッチは、回心した黒龍だ、血も涙もあるわkけ無いだろボケwwwかつえ放置プレイ中 命尽きろクソかつえww
823八大龍王・豊田聡志
2025/09/30(火) 19:50:52.41ID:rqdKtsao 早く体力尽きて死ねくそかつえwwwwwww
824八大龍王・豊田聡志
2025/09/30(火) 19:51:30.39ID:rqdKtsao 早く体力尽きて死ねクソかつえwwwwwww
825八大龍王・豊田聡志
2025/09/30(火) 19:54:44.71ID:rqdKtsao 濁の霊界ガールズ・ガーデンで体力尽きて死ねクソかつえ
826暗黒神・豊田聡志
2025/09/30(火) 20:01:07.14ID:rqdKtsao の霊界ガールズ・ガーデンで体力尽きて死ねクソかつえ。 そして切り札を失え、クソ下村敬治。。
827八大龍王・豊田聡志
2025/09/30(火) 20:01:54.46ID:rqdKtsao の霊界ガールズ・ガーデンで体力尽きて死ねクソかつえ。 そして切り札を失え、クソ下村敬治。。
828八大龍王・豊田聡志
2025/09/30(火) 20:02:32.04ID:rqdKtsao の霊界ガールズ・ガーデンで体力尽きて死ねクソかつえ。 そして切り札を失え、クソ下村敬治。。
829八大龍王・豊田聡志
2025/09/30(火) 20:03:06.68ID:rqdKtsao の霊界ガールズ・ガーデンで体力尽きて死ねクソかつえ。 そして切り札を失え、クソ下村敬治。。
830暗黒神・豊田聡志
2025/09/30(火) 20:15:31.25ID:rqdKtsao 黒龍・バルタン星人・聡志より くたばれよ、くそかつえwww
831八大龍王・豊田聡志
2025/09/30(火) 20:18:40.41ID:rqdKtsao 黒龍・バルタン星人・聡志より くたばれよ、早く死ねよ、くそかつえwww
832暗黒神・豊田聡志
2025/09/30(火) 20:20:39.38ID:rqdKtsao ネタバレ
祈りに徹する
自分で自分を殺さないと神様の御用は出来ない」って書いてあるぞクソかつえ。。。
祈りに徹する
自分で自分を殺さないと神様の御用は出来ない」って書いてあるぞクソかつえ。。。
833暗黒神・豊田聡志
2025/09/30(火) 20:21:51.87ID:rqdKtsao ヘビ斜視って本当に低能www
834八大龍王・豊田聡志
2025/09/30(火) 20:26:37.39ID:rqdKtsao 切り札のクソかつえ死んじゃったwww
835暗黒神・豊田聡志
2025/09/30(火) 20:27:35.57ID:rqdKtsao あとは、秀明潰しだなww
836八大龍王・豊田聡志
2025/09/30(火) 20:30:03.02ID:rqdKtsao セックスかつえ万博介護は潰したから、後は秀明だなwww
837八大龍王・豊田聡志
2025/10/01(水) 00:21:07.62ID:5pOmYdRM 秀明会はエース級の奉仕者上君田に寄越せボケの小山弘子サマww
838八大龍王・豊田聡志
2025/10/01(水) 00:22:10.90ID:5pOmYdRM 秀明会はエース級の美人の奉仕者上君田に寄越せボケの小山弘子サマww
839八大龍王・豊田聡志
2025/10/01(水) 00:24:39.87ID:5pOmYdRM 秀明会はエース級の美人の奉仕者もクラックしてやるよマジでwww
840八大龍王・豊田聡志
2025/10/01(水) 00:32:49.44ID:5pOmYdRM 豊田聡志
趣味 pcのクラッキング
バルタン星人
前回は悪性リンパ腫smバカ幸子は登板するのwww
趣味 pcのクラッキング
バルタン星人
前回は悪性リンパ腫smバカ幸子は登板するのwww
841八大龍王・豊田聡志
2025/10/01(水) 00:53:16.41ID:5pOmYdRM 豊田聡志
趣味 Schemeプログラミング pcのクラッキング
バルタン星人
前回は悪性リンパ腫smバカ幸子は登板するのwww
趣味 Schemeプログラミング pcのクラッキング
バルタン星人
前回は悪性リンパ腫smバカ幸子は登板するのwww
842八大龍王・豊田聡志
2025/10/01(水) 00:54:19.48ID:5pOmYdRM 豊田聡志
趣味 Schemeプログラミング 既存システムのクラッキング
バルタン星人
前回は悪性リンパ腫smバカ幸子は登板するのwww
趣味 Schemeプログラミング 既存システムのクラッキング
バルタン星人
前回は悪性リンパ腫smバカ幸子は登板するのwww
843八大龍王・豊田聡志
2025/10/01(水) 00:58:20.32ID:5pOmYdRM ヘビは、恨むなら会澤孝先生を恨めボケ。
844八大龍王・豊田聡志
2025/10/01(水) 01:32:36.34ID:5pOmYdRM 秀明会のエース級の美人の奉仕者もクラックしてやるよマジでwww
845八大龍王・豊田聡志
2025/10/01(水) 01:36:25.39ID:5pOmYdRM ドス黒いグロマンの勝沼かつえww下村敬治死ねボケwww
846。。。。
2025/10/01(水) 03:43:59.10ID:5pOmYdRM 秀明会はエース級の美人の奉仕者上君田に寄越せボケの小山弘子サマww
色々いるだろm高知支部の松林琴乃
色々いるだろm高知支部の松林琴乃
847八大龍王・豊田聡志
2025/10/01(水) 03:45:59.03ID:5pOmYdRM 秀明会はエース級の美人の奉仕者上君田に寄越せボケの小山弘子サマww
色々いるだろm高知支部の松林琴乃。
鈴木弘子。
広島支部の林さん。
等々。。。
色々いるだろm高知支部の松林琴乃。
鈴木弘子。
広島支部の林さん。
等々。。。
848八大龍王・豊田聡志
2025/10/01(水) 03:52:38.84ID:5pOmYdRM 早くシャトル外交でオバマケア決めろの奉仕者上君田に寄越せボケww
849八大龍王・豊田聡志
2025/10/01(水) 03:59:55.54ID:5pOmYdRM ジでwwwwかつえの代替え探すから、クソ国連www
暇だから
早くシャトル外交でオバマケア決めろの奉仕者上君田に寄越せボケww
暇だから
早くシャトル外交でオバマケア決めろの奉仕者上君田に寄越せボケww
850暗黒神・豊田聡志
2025/10/01(水) 06:34:29.02ID:5pOmYdRM オバマケア 鈴木弘子
オバマケア 鈴木弘子
上君田に鈴木弘子を寄越せよ、
総裁選に出ろ、鈴木弘子はよボケ
オバマケア 鈴木弘子
上君田に鈴木弘子を寄越せよ、
総裁選に出ろ、鈴木弘子はよボケ
851八大龍王・豊田聡志
2025/10/01(水) 10:25:03.39ID:5pOmYdRM マジでwwwwかつえの代替え探すから、クソ国連www
暇だから
早くシャトル外交でオバマケア決めろの奉仕者上君田に寄越せボケww
暇だから
早くシャトル外交でオバマケア決めろの奉仕者上君田に寄越せボケww
852暗黒神・豊田聡志
2025/10/01(水) 10:26:22.72ID:5pOmYdRM オバマケア 鈴木弘子
オバマケア 鈴木弘子
上君田に鈴木弘子を寄越せよ、
総裁選に出ろ、鈴木弘子はよボケ
オバマケア 鈴木弘子
上君田に鈴木弘子を寄越せよ、
総裁選に出ろ、鈴木弘子はよボケ
853暗黒神・豊田聡志
2025/10/01(水) 10:32:33.22ID:5pOmYdRM 豊田聡志の身体は最高のカーネルだなwww
本当にシッカリしたカーネルだなwww
本当にシッカリしたカーネルだなwww
854八大龍王・豊田聡志
2025/10/03(金) 04:27:29.39ID:bmmWLZ7W 豊田聡志の信仰は大したものだ黒龍・霊体を受け止めれるだからwwww
855八大龍王・豊田聡志
2025/10/03(金) 04:29:09.06ID:bmmWLZ7W 田聡志の信仰は大したものだ黒龍・霊体を受け止めれるだからwwww
最高黒龍・オーエスのカーネルだよボケwww
最高黒龍・オーエスのカーネルだよボケwww
856暗黒神・豊田聡志
2025/10/05(日) 10:39:39.47ID:CCs5njfs かつえとの子作りセックスよりも、biglooで遊ぶ方が面白そうだなwww
857暗黒神・豊田聡志
2025/10/10(金) 17:16:56.99ID:uByC0X3C クソ小山弘子
クソ勝沼かつえ
クソ小山弘子
クソ秀明会
クソ小山弘子
かつえとの子作りセックスよりも、宇宙戦争の方が絶対に面白い
かつえの子宮頸がんw
売女かつえ死ねww
宇宙戦争マンセーwwww
クソ勝沼かつえ
クソ小山弘子
クソ秀明会
クソ小山弘子
かつえとの子作りセックスよりも、宇宙戦争の方が絶対に面白い
かつえの子宮頸がんw
売女かつえ死ねww
宇宙戦争マンセーwwww
858暗黒神・豊田聡志
2025/10/10(金) 17:18:31.71ID:uByC0X3C 退院後に参拝に行ってやるよwww
859デフォルトの名無しさん
2025/10/17(金) 03:00:03.37ID:D1Ebmx1L schemeはclみたいにplaceにsetf(set!)できりゃいいのになぁ…とずっと思ってる
単なる変数でないplaceにsetfが使えれば、それだけで多くのアクセサが不要となるし、scheme自慢の簡潔な言語仕様もさらに簡潔にできるはずだ
なぜ標準に取り入れられないのか…
srfiでscheme版setfも提案されてるけど…うんちょっとこれは違う
単なる変数でないplaceにsetfが使えれば、それだけで多くのアクセサが不要となるし、scheme自慢の簡潔な言語仕様もさらに簡潔にできるはずだ
なぜ標準に取り入れられないのか…
srfiでscheme版setfも提案されてるけど…うんちょっとこれは違う
860暗黒神・豊田聡志
2025/10/19(日) 14:15:24.26ID:kuRAQfA8 来年、秀明自然農法でコンニャク栽培したから、水戸出張所に行って相談するか??
861デフォルトの名無しさん
2025/10/20(月) 16:10:47.43ID:h3FEiN7d >>859
ユーザコードは簡潔になるが言語仕様というかsetf expanderはむしろ複雑になるのでは
ユーザコードは簡潔になるが言語仕様というかsetf expanderはむしろ複雑になるのでは
862暗黒神・豊田聡志
2025/10/21(火) 06:22:24.84ID:x7hMr9oI 来年、秀明自然農法でコンニャク栽培したいから、水戸出張所に行って先生に相談するか??
863デフォルトの名無しさん
2025/10/21(火) 17:50:35.19ID:Ymvn4/mj >>859
そもそもジェネリックな関数を導入してないのでsetf入れたところでたいして統一感もない
モジュールシステムやマクロとも相性がわるいしイミュータブル指向に進んでるので次期豊田聡で定義されることは絶対ないだろうな
そもそもジェネリックな関数を導入してないのでsetf入れたところでたいして統一感もない
モジュールシステムやマクロとも相性がわるいしイミュータブル指向に進んでるので次期豊田聡で定義されることは絶対ないだろうな
864デフォルトの名無しさん
2025/10/21(火) 19:10:03.88ID:Jd81qZag (push 3 (alist-get 'c als)) ;; emacsで動く
alistのキーがcの値のリストに3をpushするとか、汎変数無しで書くとか地獄だねw
plist-getでも出来る
ま、リストの中身を書き換えるなんて絶対しないなら不要だけどね
alistのキーがcの値のリストに3をpushするとか、汎変数無しで書くとか地獄だねw
plist-getでも出来る
ま、リストの中身を書き換えるなんて絶対しないなら不要だけどね
865はちみつ餃子 ◆8X2XSCHEME
2025/10/21(火) 20:26:59.37ID:GptfFBSs SRFI-17 の generalized set! を実装するのはそんなに難しくない。
ただ、効率的に実装しようと思うと処理系が直接サポートするに越したことは無い。
私は必要だと思ったことがないけど。
ただ、効率的に実装しようと思うと処理系が直接サポートするに越したことは無い。
私は必要だと思ったことがないけど。
866デフォルトの名無しさん
2025/10/22(水) 00:13:50.86ID:Yyz/H0lN みんなsetfしか頭に無いからだよ
pushとかincfも汎変数を扱える
これの有用性を全然分かってない
汎変数が無い時は、pushする時にキーが無い時の事も考慮すると長いクソコードを書かないといけない
>>864のコードはキーが無い時でも問題ない
これが要らないとか、普段Lispを書いてないエアプとしか思えない
pushとかincfも汎変数を扱える
これの有用性を全然分かってない
汎変数が無い時は、pushする時にキーが無い時の事も考慮すると長いクソコードを書かないといけない
>>864のコードはキーが無い時でも問題ない
これが要らないとか、普段Lispを書いてないエアプとしか思えない
867デフォルトの名無しさん
2025/10/22(水) 15:07:29.42ID:XMOdEDQ7 >>864 のコードはキーが無い時でも問題ない
これはnilが空リストというのも含めて文脈に応じた拡張してるだけなのでplace機能が担う機能じゃない
alistを破壊的に使うのなんてemacsくらいで他はハッシュ使う
emacslispしか書いたことがなくてlisp完全理解してるやつは大口叩くよなlispコードも汚ないし
これはnilが空リストというのも含めて文脈に応じた拡張してるだけなのでplace機能が担う機能じゃない
alistを破壊的に使うのなんてemacsくらいで他はハッシュ使う
emacslispしか書いたことがなくてlisp完全理解してるやつは大口叩くよなlispコードも汚ないし
868デフォルトの名無しさん
2025/10/22(水) 15:36:27.81ID:MaQ8nGgA869デフォルトの名無しさん
2025/10/22(水) 17:59:42.59ID:XMOdEDQ7 emacsで設定ファイルいじるところからlispスタートしてるから知らないんだろうけど
incfやpushがplace扱えるなんてのはcommonlisp入門書に普通に載ってんだわ
ちなみにemacsのgvってのは多値が扱えない劣化版placeね
incfやpushがplace扱えるなんてのはcommonlisp入門書に普通に載ってんだわ
ちなみにemacsのgvってのは多値が扱えない劣化版placeね
870デフォルトの名無しさん
2025/10/22(水) 18:11:04.60ID:MaQ8nGgA >>867
> これはnilが空リストというのも含めて文脈に応じた拡張してるだけなのでplace機能が担う機能じゃない
↑
これがエアプ言ってんだよ
setf実装したこと無いだろ
文脈って何だよ?文系かよ…
> これはnilが空リストというのも含めて文脈に応じた拡張してるだけなのでplace機能が担う機能じゃない
↑
これがエアプ言ってんだよ
setf実装したこと無いだろ
文脈って何だよ?文系かよ…
871デフォルトの名無しさん
2025/10/22(水) 19:08:02.39ID:MaQ8nGgA alistやplistのキーじゃなく「値」を書き換えるのはLispの流儀じゃない?
clojure野郎か?
clojure野郎か?
872デフォルトの名無しさん
2025/10/22(水) 19:26:43.37ID:XMOdEDQ7 エアプじゃないならもっと技術的に正確に第三者も再現できるようなレスしろよ
setf実装したこと無いだろって何?
setf実装したこと無いだろって何?
873デフォルトの名無しさん
2025/10/22(水) 23:25:38.68ID:MaQ8nGgA setfが無いLispにsetfを実装する事という意味にしか取れんだろ
874デフォルトの名無しさん
2025/10/22(水) 23:46:41.20ID:MaQ8nGgA 簡単なものなら(defsetf symbol-value set)のように実装可能だが、無い場合は追加する状況が有るならdefsetfは使えない
getfが良い例だ
getfが良い例だ
875デフォルトの名無しさん
2025/10/22(水) 23:56:32.44ID:MaQ8nGgA placeはgetfのような場合でもちゃんと実装できるように考慮されてる
されてるというか、defsetfのような便利マクロを使えなくて素の仕組みを使うってだけだが
されてるというか、defsetfのような便利マクロを使えなくて素の仕組みを使うってだけだが
876デフォルトの名無しさん
2025/10/23(木) 04:32:37.99ID:unNDcSNX >>0873
はあ自作lispにsrfi 17とかemacsのgv.elを実装するってこと?
lisp版の左辺値なわけだから別に無理にマクロでエミュレートする必要もないわな
lisp1のschemeだったら10行程度だけどlisp2だと言語設計の話になるし後付けで一貫性がなかったらemacsみたいになるよな
alist-getの話にまで戻すとalistのkv要素をよきにはからって新規追加してるのは(gv-define-expander alist-get)で定義した挙動なだけでplaceという概念とは直交するだろという指摘なのでおまえのつっこみが全部まと外れ
はあ自作lispにsrfi 17とかemacsのgv.elを実装するってこと?
lisp版の左辺値なわけだから別に無理にマクロでエミュレートする必要もないわな
lisp1のschemeだったら10行程度だけどlisp2だと言語設計の話になるし後付けで一貫性がなかったらemacsみたいになるよな
alist-getの話にまで戻すとalistのkv要素をよきにはからって新規追加してるのは(gv-define-expander alist-get)で定義した挙動なだけでplaceという概念とは直交するだろという指摘なのでおまえのつっこみが全部まと外れ
877デフォルトの名無しさん
2025/10/23(木) 12:02:10.26ID:SeuJXbyZ878デフォルトの名無しさん
2025/10/23(木) 12:06:08.44ID:SeuJXbyZ 分かりやすい解説を書きたい所だが、文学が読みたいから返答を待ってるよw
879暗黒神・豊田聡志
2025/10/23(木) 13:45:49.27ID:xac6ZsGF どんな結果になろうとも、かつえの事は、放置プレイだボケ。
880デフォルトの名無しさん
2025/10/23(木) 18:54:52.20ID:SeuJXbyZ (setq ls (delete 'foo ls))
みたいなイディオムがあるように、リストの先頭を削除したり追加したりするにはその「外側」での対応が必要になる
Lisperなら当然知ってる事だがな
(alist-get 'a ls)でlsを受け取ったalist-getが幾ら先頭に(key . value)を追加したって意味が無い(途中になら可能)
lsを保持している外側での対応が必要になる
alist-getが2つ目の引数だって事が分かってるけどsetf側はそんな事知らないので教える必要がある
その辺がsetfがget-setf-expansionを介した2段構えになってる理由だな
みたいなイディオムがあるように、リストの先頭を削除したり追加したりするにはその「外側」での対応が必要になる
Lisperなら当然知ってる事だがな
(alist-get 'a ls)でlsを受け取ったalist-getが幾ら先頭に(key . value)を追加したって意味が無い(途中になら可能)
lsを保持している外側での対応が必要になる
alist-getが2つ目の引数だって事が分かってるけどsetf側はそんな事知らないので教える必要がある
その辺がsetfがget-setf-expansionを介した2段構えになってる理由だな
881デフォルトの名無しさん
2025/10/24(金) 03:28:33.12ID:SZTuSSg3 そもそもエアプは黙ってろって連呼してるやつって >>859 なの?
ハッシュテーブル使うならLispである必要がないとかいう原理主義者がsetfの話してるのもアンバランスでバカみたい
ハッシュテーブル使うならLispである必要がないとかいう原理主義者がsetfの話してるのもアンバランスでバカみたい
882デフォルトの名無しさん
2025/10/24(金) 17:02:06.19ID:gEuKQCol >>881
elispにはarefの対にasetがあって、そっちの方が記述がシンプルになるしsetfを使う意味がほとんどない
(aset ary 1 3)対(setf (aref ary 1) 3)とか
(set 'hoge 3)対(setf (symbol-value 'hoge) 3)
があったら普通は前者の方を書くだろう
ハッシュテーブルや配列だけならsetfは不要だ
でも、汎変数というかplaceというかsetfは(push 3 (alist-get 'c als))のようにリストに使うと効果絶大だ
先に書いたように(push 3 (alist-get 'c als))はシンプルで直感的な記述ながら実に多くの事をやっている
どの辺がアンバランスなんだ?
elispにはarefの対にasetがあって、そっちの方が記述がシンプルになるしsetfを使う意味がほとんどない
(aset ary 1 3)対(setf (aref ary 1) 3)とか
(set 'hoge 3)対(setf (symbol-value 'hoge) 3)
があったら普通は前者の方を書くだろう
ハッシュテーブルや配列だけならsetfは不要だ
でも、汎変数というかplaceというかsetfは(push 3 (alist-get 'c als))のようにリストに使うと効果絶大だ
先に書いたように(push 3 (alist-get 'c als))はシンプルで直感的な記述ながら実に多くの事をやっている
どの辺がアンバランスなんだ?
883デフォルトの名無しさん
2025/10/26(日) 23:35:32.26ID:SlBkv4G6 ハッシュテーブル使うならLispである必要がないというのはどう解釈してもお馬鹿
setfの役割は左辺値+オブザーバーだがalist-getの件はリストをkv構造で使う際のリストの構造上の欠陥をオブザーバー部が補ってるだけだから例として挙げるような優れたデザインでもなんでもない
ハッシュテーブルならそもそもこの問題がないからリストに使うと効果絶大というのもお馬鹿の勘違い
なんでもリストで処理しようとするのは昭和で終った
setfの役割は左辺値+オブザーバーだがalist-getの件はリストをkv構造で使う際のリストの構造上の欠陥をオブザーバー部が補ってるだけだから例として挙げるような優れたデザインでもなんでもない
ハッシュテーブルならそもそもこの問題がないからリストに使うと効果絶大というのもお馬鹿の勘違い
なんでもリストで処理しようとするのは昭和で終った
884デフォルトの名無しさん
2025/10/26(日) 23:50:13.43ID:RMl0wgM+ >>883
だからエアプ言われんだよw
Lispのリストほど便利なものはない
Lispのリストと言ってるのはコンスセルを使ったものを指している
他の言語では無い
もちろんその言語で実装する事は可能だが、Lispの様に構文レベルで対応してる言語には遠く及ばない
敢えて否定したいなら、効率が悪いという事のみ
これも動的型言語として使うならどうでも良い話だ
だからエアプ言われんだよw
Lispのリストほど便利なものはない
Lispのリストと言ってるのはコンスセルを使ったものを指している
他の言語では無い
もちろんその言語で実装する事は可能だが、Lispの様に構文レベルで対応してる言語には遠く及ばない
敢えて否定したいなら、効率が悪いという事のみ
これも動的型言語として使うならどうでも良い話だ
885デフォルトの名無しさん
2025/10/27(月) 00:01:04.96ID:W99ASBpj >>883
> setfの役割は左辺値+オブザーバーだがalist-getの件はリストをkv構造で使う際のリストの構造上の欠陥をオブザーバー部が補ってるだけだから例として挙げるような優れたデザインでもなんでもない
↑
俺の説明を聞いてから一生懸命否定しようとしたんだなw
そもそもなんだ?オブザーバーって?
デザインパターンのオブザーバーの事なら全然違う
マクロのトリックなんだよ
マクロ使ったテクニックをオブザーバーいう馬鹿は初めて見たw
> setfの役割は左辺値+オブザーバーだがalist-getの件はリストをkv構造で使う際のリストの構造上の欠陥をオブザーバー部が補ってるだけだから例として挙げるような優れたデザインでもなんでもない
↑
俺の説明を聞いてから一生懸命否定しようとしたんだなw
そもそもなんだ?オブザーバーって?
デザインパターンのオブザーバーの事なら全然違う
マクロのトリックなんだよ
マクロ使ったテクニックをオブザーバーいう馬鹿は初めて見たw
886デフォルトの名無しさん
2025/10/28(火) 04:53:26.98ID:FzLqQH8v なんだ、結局反論できなくなったのか? 「お馬鹿」だの「昭和で終った」だの散々イキってたのに、だんまりか?w
「オブザーバー(笑)」だの「リストの構造上の欠陥(笑)」だの、それっぽい文学的ポエムを並べてたが、こっちが「それ、ただのマクロのトリックだぞ」って事実を指摘したら逃げ出すとか、ダサすぎだろ。 マクロ使ったテクニックをオブザーバーとか言い出す馬鹿は初めて見たわw
結局、お前ら「エアプ」には、 (push 3 (alist-get 'c als)) の凄さが微塵も理解できなかったな。 get-setf-expansionがどう動くか、なんで「外側」の変数(als)を書き換えられるのか、俺がわざわざヒントまで出してやったのに、エアプが返してきたのは「よきにはからって(キリッ)」だもんな。文系かよw
で、苦し紛れに言い出したのが「ハッシュテーブルなら問題ない」。 だから、「ハッシュテーブル使うならLispである必要がない」と何度言えば分かるんだ? Lispのリスト(コンスセル)が他の言語に無い、どれだけ便利なものか、全く分かってない。 効率が悪い? そんなもんは動的型言語なんだから「どうでも良い話だ」と結論出てるだろ。
エアプは、alist-getの議論から「ハッシュテーブル」っていう全く別次元の話に逃げただけ。 俺が「リストに使うと効果絶大だ」と言った意味が、最後まで理解できなかった時点でお前らの負けだよ。 まぁ、Lisperなら当然知ってるイディオムすら知らなそうなエアプには、alist-getの真価なんて分かるわけもなかったかw
エアプは黙ってろ。議論にすらならんかったな。
「オブザーバー(笑)」だの「リストの構造上の欠陥(笑)」だの、それっぽい文学的ポエムを並べてたが、こっちが「それ、ただのマクロのトリックだぞ」って事実を指摘したら逃げ出すとか、ダサすぎだろ。 マクロ使ったテクニックをオブザーバーとか言い出す馬鹿は初めて見たわw
結局、お前ら「エアプ」には、 (push 3 (alist-get 'c als)) の凄さが微塵も理解できなかったな。 get-setf-expansionがどう動くか、なんで「外側」の変数(als)を書き換えられるのか、俺がわざわざヒントまで出してやったのに、エアプが返してきたのは「よきにはからって(キリッ)」だもんな。文系かよw
で、苦し紛れに言い出したのが「ハッシュテーブルなら問題ない」。 だから、「ハッシュテーブル使うならLispである必要がない」と何度言えば分かるんだ? Lispのリスト(コンスセル)が他の言語に無い、どれだけ便利なものか、全く分かってない。 効率が悪い? そんなもんは動的型言語なんだから「どうでも良い話だ」と結論出てるだろ。
エアプは、alist-getの議論から「ハッシュテーブル」っていう全く別次元の話に逃げただけ。 俺が「リストに使うと効果絶大だ」と言った意味が、最後まで理解できなかった時点でお前らの負けだよ。 まぁ、Lisperなら当然知ってるイディオムすら知らなそうなエアプには、alist-getの真価なんて分かるわけもなかったかw
エアプは黙ってろ。議論にすらならんかったな。
887デフォルトの名無しさん
2025/10/28(火) 05:32:08.58ID:FzLqQH8v つーか、ハッシュテーブルとか言ってる奴。お前マジでLispやめろ。 Lispの魂はコンスセル(cons)なんだよ。わかる? alist こそがLispの「コード=データ」を体現する至高のデータ構造。 ハッシュテーブル(笑)なんてPythonでも使ってろ。Lispである必要がゼロ。
setf ってのは、その cons でできたリスト宇宙(笑)を自在に書き換えるための「神のマクロ」なんだよ。 880で説明した「外側」の書き換えとか、get-setf-expansion の凄さが、お前らエアプには理解不能だっただけ。 nil を自動で (key . value) に変異させるこのマクロ・トリックこそがLispの真髄なのに、それを「構造上の欠陥」(883)とか言っちゃうセンスの無さ。
もういいわ。話にならん。 マクロが何かもわかってない文系エアプに何を言っても無駄。 俺が「本物のLisp」を教えてやったのに、誰もついてこれなかったな。
setf ってのは、その cons でできたリスト宇宙(笑)を自在に書き換えるための「神のマクロ」なんだよ。 880で説明した「外側」の書き換えとか、get-setf-expansion の凄さが、お前らエアプには理解不能だっただけ。 nil を自動で (key . value) に変異させるこのマクロ・トリックこそがLispの真髄なのに、それを「構造上の欠陥」(883)とか言っちゃうセンスの無さ。
もういいわ。話にならん。 マクロが何かもわかってない文系エアプに何を言っても無駄。 俺が「本物のLisp」を教えてやったのに、誰もついてこれなかったな。
888デフォルトの名無しさん
2025/10/28(火) 07:59:27.60ID:/Gs2akef Lispって無限リストとか作れるの?
それ何に使うの?
それなしじゃ書けないものあるの?
C言語にはそんなものないけどなんでも書けるよ?
それ何に使うの?
それなしじゃ書けないものあるの?
C言語にはそんなものないけどなんでも書けるよ?
889暗黒神・豊田聡志
2025/10/28(火) 16:33:24.90ID:rzZnX+yP 船井幸雄・著「今ひとに聞かせてい神さまの言葉」に書いてある。
かつえとの子作りセックスの為に最後の最後には、国連は上君田に土下座しに来ると書いてあるぞ。
必死になって国連は、土下座すると書いてあるぞwwww
余生は、かつえとの子作りセックスの話しを断り続けて、マクロスのプラモ三昧の生活だなwww
かつえとの子作りセックスで出来た「てんしさま」が居なければ戦争になると、船井幸雄が本に書いてあるぞwww
かつえの閉経はいつだ?
かつえの子宮頸がんのステージはいくつだ
宇宙戦争の開戦はいつだwww
勝沼かつえは、子供産める身体なのか???
かつえとの子作りセックスの為に最後の最後には、国連は上君田に土下座しに来ると書いてあるぞ。
必死になって国連は、土下座すると書いてあるぞwwww
余生は、かつえとの子作りセックスの話しを断り続けて、マクロスのプラモ三昧の生活だなwww
かつえとの子作りセックスで出来た「てんしさま」が居なければ戦争になると、船井幸雄が本に書いてあるぞwww
かつえの閉経はいつだ?
かつえの子宮頸がんのステージはいくつだ
宇宙戦争の開戦はいつだwww
勝沼かつえは、子供産める身体なのか???
890デフォルトの名無しさん
2025/11/11(火) 18:56:41.38ID:IMC7CS1x 80年代のsicpでさえデータ型を定義することを推奨してるのだから
リスト以外を使ったらlispの意味がないとかぬかすのは愚の骨頂ですわ
リスト以外を使ったらlispの意味がないとかぬかすのは愚の骨頂ですわ
891デフォルトの名無しさん
2025/11/16(日) 16:16:40.82ID:JUX/KH1x ファンタジーコンソールのtic80がこっそりschemeに対応してるんだけど
これゲームを題材にしてscheme手習いしたいって人にはめっちゃ良いんじゃない
これゲームを題材にしてscheme手習いしたいって人にはめっちゃ良いんじゃない
892デフォルトの名無しさん
2025/11/18(火) 07:50:44.27ID:7woWQLhR 手習いしたい?だからエアプ言われんだよw
893デフォルトの名無しさん
2025/11/18(火) 17:29:51.35ID:d9hs+rsN ?
手習いすればエアプじゃないじゃん
手習いすればエアプじゃないじゃん
894はちみつ餃子 ◆8X2XSCHEME
2025/11/18(火) 17:52:24.61ID:saOGypzbレスを投稿する
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★9 [BFU★]
- 【赤坂ライブハウス刺傷】逃走していた自衛官の男(43)を殺人未遂の疑いで逮捕 警視庁 被害女性とは知人関係 [Ailuropoda melanoleuca★]
- 【千葉】コンビニに尿入りペットボトル並べた疑い、26歳男「むしゃくしゃして」…購入した客が飲もうとしたところ臭いに違和感 [ぐれ★]
- 中国官製報道「日本経済はもう持たない」にネット民ツッコミ「ニュースだけ見てたら日本はもう百回くらい爆発してる」 [1ゲットロボ★]
- 【STARTO ENTERTAINMENT】timelesz、メンバーの不適切言動を謝罪「不用意かつモラルに反した発言であった」 全員の署名入りでコメント [Ailuropoda melanoleuca★]
- 植田日銀総裁 「円安進行が物価高を起こしている」 ★4 [お断り★]
- 【ガチ正論】一般人「中国に規制制裁されて、『中国ムカつく』じゃなくて矛先が『許さんぞ高市』になってる奴、頭おかしいの?」 ★2 [153490809]
- やばいずっとスマホいじってても寂しいわ話そうよ
- お前らチンポ出せよ!!
- 【ぺこ専🐰】なんG 兎田ぺこら突発配信実況スレ🏡【ホロライブ▶】
- NHKニュースウオッチ9「日本側は対話にオープンな姿勢で安定した日中関係を築きたい考えなのに中国が意固地で糸口が見いだせない」 [904151406]
- 日中戦争起きたら5日で自衛隊壊滅するらしい。じゃあ徴兵も無いし、俺等が必死になって反対してやる理由なくね? [237216734]
