Lisp Scheme Part41at TECH
Lisp Scheme Part41 - 暇つぶし2ch880:デフォルトの名無しさん
25/10/22 23:56:32.44 MaQ8nGgA.net
placeはgetfのような場合でもちゃんと実装できるように考慮されてる
されてるというか、defsetfのような便利マクロを使えなくて素の仕組みを使うってだけだが

881:デフォルトの名無しさん
25/10/23 04:32:37.99 unNDcSNX.net
>>0873
はあ自作lispにsrfi 17とかemacsのgv.elを実装するってこと?
lisp版の左辺値なわけだから別に無理にマクロでエミュレートする必要もないわな
lisp1のschemeだったら10行程度だけどlisp2だと言語設計の話になるし後付けで一貫性がなかったらemacsみたいになるよな

alist-getの話にまで戻すとalistのkv要素をよきにはからって新規追加してるのは(gv-define-expander alist-get)で定義した挙動なだけでplaceという概念とは直交するだろという指摘なのでおまえのつっこみが全部まと外れ

882:デフォルトの名無しさん
25/10/23 12:02:10.26 SeuJXbyZ.net
>>881
> よきにはからって
また文学が出ちゃったw
文系はそんなんで誤魔化せると思ってんだな
新規追加する事の意味が分かってないから「よきにはからって」とか言わざるを得ないんだよ

883:デフォルトの名無しさん
25/10/23 12:06:08.44 SeuJXbyZ.net
分かりやすい解説を書きたい所だが、文学が読みたいから返答を待ってるよw

884:暗黒神・豊田聡志
25/10/23 13:45:49.27 xac6ZsGF.net
どんな結果になろうとも、かつえの事は、放置プレイだボケ。

885:デフォルトの名無しさん
25/10/23 18:54:52.20 SeuJXbyZ.net
(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段構えになってる理由だな

886:デフォルトの名無しさん
25/10/24 03:28:33.12 SZTuSSg3.net
そもそもエアプは黙ってろって連呼してるやつって >>864 なの?
ハッシュテーブル使うならLispである必要がないとかいう原理主義者がsetfの話してるのもアンバランスでバカみたい

887:デフォルトの名無しさん
25/10/24 17:02:06.19 gEuKQCol.net
>>886
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))はシンプルで直感的な記述ながら実に多くの事をやっている
どの辺がアンバランスなんだ?

888:デフォルトの名無しさん
25/10/26 23:35:32.26 SlBkv4G6.net
ハッシュテーブル使うならLispである必要がないというのはどう解釈してもお馬鹿
setfの役割は左辺値+オブザーバーだがalist-getの件はリストをkv構造で使う際のリストの構造上の欠陥をオブザーバー部が補ってるだけだから例として挙げるような優れたデザインでもなんでもない
ハッシュテーブルならそもそもこの問題がないからリストに使うと効果絶大というのもお馬鹿の勘違い
なんでもリストで処理しようとするのは昭和で終った

889:デフォルトの名無しさん
25/10/26 23:50:13.43 RMl0wgM+.net
>>888
だからエアプ言われんだよw
Lispのリストほど便利なものはない
Lispのリストと言ってるのはコンスセルを使ったものを指している
他の言語では無い
もちろんその言語で実装する事は可能だが、Lispの様に構文レベルで対応してる言語には遠く及ばない
敢えて否定したいなら、効率が悪いという事のみ
これも動的型言語として使うならどうでも良い話だ

890:デフォルトの名無しさん
25/10/27 00:01:04.96 W99ASBpj.net
>>888
> setfの役割は左辺値+オブザーバーだがalist-getの件はリストをkv構造で使う際のリストの構造上の欠陥をオブザーバー部が補ってるだけだから例として挙げるような優れたデザインでもなんでもない

俺の説明を聞いてから一生懸命否定しようとしたんだなw
そもそもなんだ?オブザーバーって?
デザインパターンのオブザーバーの事なら全然違う
マクロのトリックなんだよ
マクロ使ったテクニックをオブザーバーいう馬鹿は初めて見たw

891:デフォルトの名無しさん
25/10/28 04:53:26.98 FzLqQH8v.net
なんだ、結局反論できなくなったのか? 「お馬鹿」だの「昭和で終った」だの散々イキってたのに、だんまりか?w

「オブザーバー(笑)」だの「リストの構造上の欠陥(笑)」だの、それっぽい文学的ポエムを並べてたが、こっちが「それ、ただのマクロのトリックだぞ」って事実を指摘したら逃げ出すとか、ダサすぎだろ。 マクロ使ったテクニックをオブザーバーとか言い出す馬鹿は初めて見たわw

結局、お前ら「エアプ」には、 (push 3 (alist-get 'c als)) の凄さが微塵も理解できなかったな。 get-setf-expansionがどう動くか、なんで「外側」の変数(als)を書き換えられるのか、俺がわざわざヒントまで出してやったのに、エアプが返してきたのは「よきにはからって(キリッ)」だもんな。文系かよw

で、苦し紛れに言い出したのが「ハッシュテーブルなら問題ない」。 だから、「ハッシュテーブル使うならLispである必要がない」と何度言えば分かるんだ? Lispのリスト(コンスセル)が他の言語に無い、どれだけ便利なものか、全く分かってない。 効率が悪い? そんなもんは動的型言語なんだから「どうでも良い話だ」と結論出てるだろ。

エアプは、alist-getの議論から「ハッシュテーブル」っていう全く別次元の話に逃げただけ。 俺が「リストに使うと効果絶大だ」と言った意味が、最後まで理解できなかった時点でお前らの負けだよ。 まぁ、Lisperなら当然知ってるイディオムすら知らなそうなエアプには、alist-getの真価なんて分かるわけもなかったかw

エアプは黙ってろ。議論にすらならんかったな。

892:デフォルトの名無しさん
25/10/28 05:32:08.58 FzLqQH8v.net
つーか、ハッシュテーブルとか言ってる奴。お前マジでLispやめろ。 Lispの魂はコンスセル(cons)なんだよ。わかる? alist こそがLispの「コード=データ」を体現する至高のデータ構造。 ハッシュテーブル(笑)なんてPythonでも使ってろ。Lispである必要がゼロ。
setf ってのは、その cons でできたリスト宇宙(笑)を自在に書き換えるための「神のマクロ」なんだよ。 880で説明した「外側」の書き換えとか、get-setf-expansion の凄さが、お前らエアプには理解不能だっただけ。 nil を自動で (key . value) に変異させるこのマクロ・トリックこそがLispの真髄なのに、それを「構造上の欠陥」(883)とか言っちゃうセンスの無さ。
もういいわ。話にならん。 マクロが何かもわかってない文系エアプに何を言っても無駄。 俺が「本物のLisp」を教えてやったのに、誰もついてこれなかったな。

893:デフォルトの名無しさん
25/10/28 07:59:27.60 /Gs2akef.net
Lispって無限リストとか作れるの?
それ何に使うの?
それなしじゃ書けないものあるの?
C言語にはそんなものないけどなんでも書けるよ?

894:暗黒神・豊田聡志
25/10/28 16:33:24.90 rzZnX+yP.net
船井幸雄・著「今ひとに聞かせてい神さまの言葉」に書いてある。

かつえとの子作りセックスの為に最後の最後には、国連は上君田に土下座しに来ると書いてあるぞ。

必死になって国連は、土下座すると書いてあるぞwwww

余生は、かつえとの子作りセックスの話しを断り続けて、マクロスのプラモ三昧の生活だなwww

かつえとの子作りセックスで出来た「てんしさま」が居なければ戦争になると、船井幸雄が本に書いてあるぞwww
かつえの閉経はいつだ?
かつえの子宮頸がんのステージはいくつだ
宇宙戦争の開戦はいつだwww

勝沼かつえは、子供産める身体なのか???

895:デフォルトの名無しさん
25/11/11 18:56:41.38 IMC7CS1x.net
80年代のsicpでさえデータ型を定義することを推奨してるのだから
リスト以外を使ったらlispの意味がないとかぬかすのは愚の骨頂ですわ

896:デフォルトの名無しさん
25/11/16 16:16:40.82 JUX/KH1x.net
ファンタジーコンソールのtic80がこっそりschemeに対応してるんだけど
これゲームを題材にしてscheme手習いしたいって人にはめっちゃ良いんじゃない

897:デフォルトの名無しさん
25/11/18 07:50:44.27 7woWQLhR.net
手習いしたい?だからエアプ言われんだよw

898:デフォルトの名無しさん
25/11/18 17:29:51.35 d9hs+rsN.net

手習いすればエアプじゃないじゃん

899:はちみつ餃子
25/11/18 17:52:24.61 saOGypzb.net
>>898
「手習い」じゃなく「したい」に反応したのだと思うぞ。
したいのにまだやってないのはなんで?というのがエアプという言葉になっているんだろう。

900:デフォルトの名無しさん
25/12/08 20:39:51.81 Ud6bTytL.net
運び屋


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch