00:14:54
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 00:09:12 アカハナの投稿
akahana@fla.red
このアカウントは、notestockで公開設定になっていません。
00:14:56
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 00:09:36 アカハナの投稿
akahana@fla.red
このアカウントは、notestockで公開設定になっていません。
00:14:57
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 00:11:40 コロコロコロ助の投稿
naota344@social.mikutter.hachune.net
このアカウントは、notestockで公開設定になっていません。
00:15:05
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 00:12:57 コロコロコロ助の投稿
naota344@social.mikutter.hachune.net
このアカウントは、notestockで公開設定になっていません。
00:15:12
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 00:13:29 コロコロコロ助の投稿
naota344@social.mikutter.hachune.net
このアカウントは、notestockで公開設定になっていません。
00:15:15
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 00:14:15 コロコロコロ助の投稿
naota344@social.mikutter.hachune.net
このアカウントは、notestockで公開設定になっていません。
00:22:04
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
00:22:04
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 00:21:18 Giraffe Beerの投稿
giraffe_beer@mstdn.maud.io
このアカウントは、notestockで公開設定になっていません。
00:22:05
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
00:22:30
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
あれのせいで鉄鉱石を採掘した瞬間に鉄にして運搬してしまうメソッドに迷いが生じるんだよなぁ
00:22:46
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
00:22:55
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
基本的に鉱床のすぐそばで鉄板・銅板に加工してから鉄道輸送しているのでコンクリ床だけは別のラインを確保しなければならない
00:27:29
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
加工前を要求されて微妙に困るシリーズとしては他に線路がありますね(石レンガではなく石を要求するため)
00:27:54
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 00:26:34 '; DELETE FROM users; --の投稿
boronology@social.penguinability.net
このアカウントは、notestockで公開設定になっていません。
00:31:32
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
00:32:24
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
05:48:59
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
サイクルが一定で睡眠時間を確保できていればみんな生活習慣マトモ組です。
05:49:56
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
ワイは生活周期は安定しているが恒常的に寝不足なので何もかも駄目
06:05:42
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
Fine Lagusaz (@fine_l@ukadon.shillest.net)
06:06:26
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 06:03:58 しようの投稿
hiwan@heislandmine.work
このアカウントは、notestockで公開設定になっていません。
06:06:57
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
創作上の NL でケツ使う場合にもいちいち洗う描写してないこと多いし、それは単にどれだけ神経質になるか文化圏の問題でしかなさそう (?)
06:07:50
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
よーするに「BL だから穴を追加した」じゃなくて「読者や作者にそういうことを気にする人々が多いから穴が追加された」じゃない? という (めちゃくちゃどうでもいい)
06:41:28
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
19:20:32
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
ニコ生アプリ、インストールしたら初手からこれで完全に終わり
19:20:35
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
この好みタグ、普段見てる動画のタグが出てくるので、仕組みとしてはエロサイト見てたらエロ広告出てくるみたいなもんなので、つまり…
19:21:27
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 18:49:39 久遠ミチヨシ/ミチミチ原稿再開🔞🎨🍔の投稿
quon_michi@pawoo.net
このアカウントは、notestockで公開設定になっていません。
19:21:29
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
19:21:30
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 19:13:48 Giraffe Beerの投稿
giraffe_beer@mstdn.maud.io
このアカウントは、notestockで公開設定になっていません。
19:21:31
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 19:13:53 埼玉ギャル(仮)の投稿
sota_n@social.mikutter.hachune.net
このアカウントは、notestockで公開設定になっていません。
19:23:33
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
19:30:44
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 19:30:37 Giraffe Beerの投稿
giraffe_beer@mstdn.maud.io
このアカウントは、notestockで公開設定になっていません。
19:52:05
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 19:30:09 🖕の投稿
mimorinka@fedibird.com
このアカウントは、notestockで公開設定になっていません。
20:50:45
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 20:43:56 もちゃ(あと-14.14Kg)の投稿
mot@mastodon.motcha.tech
このアカウントは、notestockで公開設定になっていません。
20:50:53
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 20:45:38 無宛@零月のラウラ良かった……の投稿
LwVe9@mstdn.poyo.me
このアカウントは、notestockで公開設定になっていません。
20:51:25
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
20:52:23
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
そもそも比較演算子も boolean を返す演算子なんだから、
「v が true と等しいことを確認する」を v == true と書くなら、それは結局「v == true という演算の結果が true と等しいことを確認する」ことでもあるんだから (v == true) == true と書かなければ筋が通らないし、以下略
20:53:01
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
(((v == true) == true) == true) と書かないのに v == true と書くのは一貫性がないでしょう
20:53:59
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
a == b を「事実の表明」か何かだと勘違いしているのかもしれないが、そんなものはない。ただの比較演算子です
20:54:24
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
まあ数学の文脈を引き摺っているのだとしたら多少は同情するけど、いや論理学というものがあってね……
20:55:13
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
逆に中学高校までの数学で「a が 2 と等しいかどうか」の『かどうか』を表現する記法が存在しないので、その影響でというのはあるかもね
20:55:45
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
20:57:09
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 20:42:45 酸性雨の投稿
acid_rain@amefur.asia
このアカウントは、notestockで公開設定になっていません。
20:57:13
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
20:57:43
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
間違いではないので減点はしないけど == true はコメント付けるかなぁ
20:57:59
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 20:53:08 酸性雨の投稿
acid_rain@amefur.asia
このアカウントは、notestockで公開設定になっていません。
20:58:01
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
ヨーダ記法のおたくは true == booleanvar をやるかもしれない
20:58:09
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
20:58:46
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
20:58:56
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
あまりコーディング規約がきちんとしているところで仕事をする機会が無いが、trueの比較でif(bool)はやるけど、falseのときはif(!bool)じゃなくてif(bool == false)と書くようにしている。なんか見落としそうで。!使えと言われたら使うけども。
20:59:10
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
if(!strcmp(s, t)) とかもなかなか治安が悪い
20:59:21
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 20:47:10 酸性雨の投稿
acid_rain@amefur.asia
このアカウントは、notestockで公開設定になっていません。
21:02:06
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
@tacumi そもそも Haskell だと括弧によるブロックよりもオフサイドルールを使うし、もっといえば guard とかでどうにかするケースの方が多そう
21:02:19
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
[[ ... ]] と (( ... )) は中身がゼロか非ゼロかで真の扱いが逆になってるとかね
21:02:57
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:03:32
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
🖕 ← これはですね、下が点で上が棒、すなわち「!」記号を表現したものであり、 C 言語などの論理否定演算子にちなんで否定の意味を持っています #適当
21:03:53
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:06:06
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
Cがクソなのは今更なので今更Cがクソな話をしてもしょうがない……
21:06:29
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
if(!!stream) の話します? (pre C++11)
21:07:15
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
C++11 からは contextual conversion で operator bool() が (たとい explicit であろうと) 呼ばれるようになったので無事 if(stream) で済むようになった。めでたし (?)
21:07:21
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
クソの話をするなら===falseの話をしますが、しなくていい場ですね?
21:07:22
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 21:06:54 しらか
の投稿
crakaC@don.crakac.com
このアカウントは、notestockで公開設定になっていません。
21:07:27
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:07:36
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:09:22
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 21:07:24 しらか
の投稿
crakaC@don.crakac.com
このアカウントは、notestockで公開設定になっていません。
21:09:24
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:11:21
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
nullable な String s に対して s.equals(t) みたいなことをすると危険なんじゃ、みたいなとんでもない罠
21:11:32
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:11:51
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:12:17
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
根本的に「暗黙に nullable」という型システムがもう破滅への序章でしかない
21:13:13
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
近年の話だと、 Java の Optional<T> を null が入れられるやつが一番好きかな
21:13:31
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
たとえばビットパターン混ぜ混ぜする時とかは「PatternA | PatternB」みたいに書きたいけど、条件とかの時は「条件A | 条件B & 条件C」よりも「条件A or 条件B and 条件C」みたいに予約語方式の方が目に入りやすくて見間違えにくいじゃん?><
21:13:56
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
その条件はテキストで書かれるので、メタな意味を持つ and や or や not はテキストで書くより記号で書いてほしいですね。というわけで and / or / not キーワードきらい。
21:14:28
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
日本語崩壊してた、「Optional<T> の値として null が使える」
21:15:53
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
Optional<String> a = null;
Optional<String> b = Optional.empty();
Optional<String> c = Optional.of("hello"); // ←これ合ってたっけ?
21:16:21
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
もう Java の String 生成で new String〜 的なのが必要かどうかなんて覚えてないよ (たぶん mutate しないなら不要)
21:16:34
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
だからさっきから書いてるように、| とか ! とか記号小さすぎて見間違いとか見落としの危険高いじゃん!?><;
21:16:57
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
条件が並んでいて | に見落しも何もないと思う。条件が2つ以上並んでいるなら必ず接続があるんだから。
21:17:10
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
! が見落しやすいというのはわかるよ。でも not は嫌い。
21:19:09
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
わかりやすくするために超極端に言うと、(!illiliilllilli | iilliillili)よりも (not illiliilllilli or iilliillili)のほうが見やすいじゃん!?><;
21:19:11
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
そんなクソコードが許されるなら
and_ and nad _or or and_and and or_ or
は読みづらいじゃん……その論法はクソすぎる
21:19:50
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
ちなみにこれはそもそも成立してないです (成立していないことを看破するのさえコスト高い)
21:20:08
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 21:19:09 もちゃ(あと-14.14Kg)の投稿
mot@mastodon.motcha.tech
このアカウントは、notestockで公開設定になっていません。
21:20:10
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
はちゃめちゃに長い operator とかでなければ人類は必ず見間違いや見落しをするので開発環境やコンパイラが適切な指示や指摘をしてくれるならなんだっていい
21:20:33
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
まあ正直これなんだけど、シンタックスハイラトなしの極限環境をたまに使うものぐさオタクなので気にしてしまう
21:21:10
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
そぎぎ
「i が 3 以下」ってセックスっぽく見えないか?
21:21:26
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:21:45
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:23:39
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
ifでnotの有無の間違いによるミスってコンパイラが検出できないバグの率高くない?><;
21:23:49
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
そもそもそんなに気になるなら boolean 避けた方がいいんだよなぁ
21:24:52
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
あるいは is_foo() と is_not_foo() を用意する手もあるだろうし、あるいは enum class Foo { Present, Absent } のようにする手もあるだろうし、やりようはいくらでもある。ただ API デザインをする人が思想を持っているか次第
21:25:11
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
まあ誤りがあるにせよテストで検知できないようでは駄目じゃん? というお気持ちがあります
21:25:37
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
条件の意図せぬ反転なんて assert 挟みまくってユニットテストちゃんと書けばそれなりの割合で検知できそうだし (根拠なし)
21:26:05
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
というか assert 挟みまくって意図せぬブランチに進んでいるのに気付くのはデバッグ以前の段階でコーディング作業の一部なので
21:26:19
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
開発環境やコンパイラ、と含みを持たせたのは、当然テストを書くだとかなんとかもっと色々やるのがラクな環境があることの含みであって、syntax checker さえあればという話ではない
21:29:54
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
「読みづらくても(コンパイラやテスト環境がしっかりしてれば)何とかなる!」って、それ「読みづらいコードでもコンパイラやテスト環境がしっかりしてれば問題ないので読みづらいコードを書いてもよい」って主張と何が違うのか?><;
21:30:10
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
その「読みづらい」は「視認性が良くない」と「意図を読み取りづらい」が混同されていて、区別するべきだと思いますね
21:30:48
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
どうでもいいけど { ... } はわかりづらいから BEGIN ... END にしたがる人の話を思い出したわ
21:31:00
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
# define BEGIN {
# define END }
21:32:02
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
Cプログラミング診断室/Pascalが好き/Pascal?
21:32:31
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
よくみると
# define END ;}
になってて、気が利いているのかいないのか……
21:32:58
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
そこまではしないけど、Pascal好きとしては色つきのエディタならばbegin endの方が見やすく感じてる><;
21:33:28
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
これって結局「括弧がクソデカく見えてくれ」とかの話であって、「{ はブロック開始であるという意味が読み取りづらいからクソコードの温床になる!」みたいな理屈にはならないじゃん、という気持ち
21:34:55
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
たとえばこれが case-esac だったり い if-fi だったり、または for-endfor だったり if-endif だったりといった追加情報がある方が { ... } よりいいじゃん、という理屈であれば私も同意するけど、 begin-end って幅と占有面積以外何も違わないじゃん。そういうのは議論の対象外。
21:35:15
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:36:25
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
幅と占有面積以外にも「識別子っぽいかそうでないか」も違いますね (個人的にはここが重要だけど)
21:37:16
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 21:35:40 もちゃ(あと-14.14Kg)の投稿
mot@mastodon.motcha.tech
このアカウントは、notestockで公開設定になっていません。
21:37:17
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 21:37:05 もちゃ(あと-14.14Kg)の投稿
mot@mastodon.motcha.tech
このアカウントは、notestockで公開設定になっていません。
21:37:19
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:38:52
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:39:10
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 21:37:54 ꙮ itochan ꙮの投稿
itochan@misskey.io
このアカウントは、notestockで公開設定になっていません。
21:41:26
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
}//なんとか
だと、ズレてても検出できないんですよね。
while(cond1) {
while(cond2) {
foo();
}//while
if(cond3) {
bar();
}//if
}//while
が
while(cond) {
while(cond2) {
/* このあたりでごっそりコードを消したが、うっかり消しすぎた */
bar();
}//if
}//while
になっていても、コンパイルが通ってしまう。
で、ブロックの中身がデカかったらミスマッチに気付けない。
21:46:50
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
UFO演算子を聞いたときは、ふざけてんのかって思った。
21:46:59
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 21:46:06 埼玉ギャル(仮)の投稿
sota_n@social.mikutter.hachune.net
このアカウントは、notestockで公開設定になっていません。
21:47:01
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 21:46:35 埼玉ギャル(仮)の投稿
sota_n@social.mikutter.hachune.net
このアカウントは、notestockで公開設定になっていません。
21:47:03
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 21:46:40 もちゃ(あと-14.14Kg)の投稿
mot@mastodon.motcha.tech
このアカウントは、notestockで公開設定になっていません。
21:47:23
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:47:39
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
知らん operator や keyword、APL に勝るものはないのでもうなんでもいいです
21:48:56
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:49:24
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
Haskell の not equal が /= なのを誰も挙げてなくて、界隈の偏りを感じる
21:49:57
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
あと Scheme の eq? / eqv? / equal? も
21:50:20
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:50:59
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:51:41
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:52:41
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 21:51:07 埼玉ギャル(仮)の投稿
sota_n@social.mikutter.hachune.net
このアカウントは、notestockで公開設定になっていません。
21:52:41
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:52:42
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:52:43
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
APL の not equal はちゃんと /= でも =/= でもなくて ≠ ですからね!!!
21:52:51
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
HSP のモジュロ演算子が \ な話とかしますか?
21:52:53
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:53:35
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
Prolog のつもりで言ったけど系統的に Earlang も受け継いでるのか
21:53:57
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
21:54:18
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
理屈の上での美しさと正しさを考えたいならまず Haskell をやるべき
22:03:33
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
22:03:42
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
22:04:21
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
Ordering::cmp() が Ordering を返す。 Ordering は Greater, Equal, Less の3つの値のいずれかをとる。
素朴。
22:04:39
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
22:05:31
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
ちゃんと型検査される、『「どっちがでかいの?ていうか同じ?」型』><
22:07:08
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
@orange_in_space 「a<=>b の結果が OrderIs.LessThanRight であるとき以下略」と「Ord::cmp(&a, &b) の結果が Ordering::Less であるとき以下略」のどこが本質的に違うのかわからないんですが。
<=> 演算子がないと満足できないって話ですか?
22:07:16
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
@lo48576 ぜんぜん違うじゃん?><; それで言う所のOrd型(?)を返す演算子があったら便利だよね!>< って話を書いてるのに><
22:07:20
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
22:08:01
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
22:09:13
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
22:11:40
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
そういえば C++ の ordering も strong と weak があって云々などあった気がするけど、今どうなってんだ?
22:12:05
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
22:12:27
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
だから、それが「a.cmp(b)」でなく「a <=> b」のような形でないといけないという強い信念は何なんだ? という話をしてます
22:12:49
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
ちゃんと比較演算の結果は「デカい」「同じ」「小さい」の3値の専用型で返ってくるわけですよ
22:12:51
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
宇宙船演算子の話が出てたからその話をしたんじゃん!?><
22:14:03
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
宇宙船演算子の本質は「(boolean ではなく) 3値を返す、情報量の多い比較である」ところであって、宇宙線の形でも演算子であることでもないでしょう
22:15:11
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
特に、比較結果専用の型が返ってくるという点で安全性というか「設計の正しさ」は十分に実現されているといえるはずなのでは?
22:15:23
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
22:16:08
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
22:16:32
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
ちゃんと型検査される、『「どっちがでかいの?ていうか同じ?」型』><
22:16:50
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
それは「ThreeWayComparison.Compare(a, b)」と「a <=> b」を比べるから落差が大きいのであって、言語仕様の問題では?
22:18:41
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
たとえば Rust ではさっきの例 (a.cmp(&b)) はフル修飾すると
<std::string::String as std::cmp::Ord>::cmp(&a, &b)
になるわけですが、言語仕様と標準ライブラリ設計がうまくできているのでこれを
a.cmp(&b)
と書けるわけです。ここから敢えて (a.partial_cmp(&b) の存在を無視してまで) a <=> b を導入しないと片手落ちだと主張するほどの強い信念って何なんですか?
22:19:06
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
だから、短く書けたら便利だから宇宙船演算子欲しい(けども整数型で帰ってくるなんてキモイ仕様は絶対ヤダ)って言ってるんじゃん!?><
22:19:20
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
つまり C# ではそういう演算子が欲しい、というだけで言語一般の話はしてなかったわけですか
22:19:39
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
短く書けて整数で返ってこない比較の例を出したのに満足されていないので
22:20:39
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
あと結局 NaN <=> NaN では何が返ってくるべきだと思ってるのだろう (これは素朴な疑問)
22:22:16
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
「比較や順序にも複数の概念がある」という前提で考えたとき、
1. その中の特定のひとつだけに演算子を与える
2. すべてを統合して、オペランドの型次第で比較結果の型も変化する
3. 演算子を割り当てない
のいずれかを選択することになるよね。
C++20 は 2 (のはず) で、 Rust は 3 なんだけど
22:23:23
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
Standard library header <compare> - cppreference.com
https://en.cppreference.com/w/cpp/header/compare
C++ の ordering のあれこれを知っていたら、「three way comparison は Greater / Eq / Less を返す!」みたいな簡単な発想では足りないというのはわかりそうなものだけど……
Standard library header - cppreference.com
22:24:23
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
std::strong_ordering - cppreference.com
std::weak_ordering - cppreference.com
std::partial_ordering - cppreference.com
22:24:37
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
22:24:48
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
元ネタつったって <=> を実装している言語なんて沢山あるって話ですよ
22:25:24
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
PHP か何かの話をしているなら、そもそもそんな静的型付きでさえない言語を論って一体なにを言いたいのというレベルだし
22:28:26
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
オレンジ語っぽさをがんばってなくすなら
「宇宙船演算子って簡潔に書けて便利そう。でも、型がゆるふわで整数型で返すような実装はごめんだなぁ」
って言うことを最初に書いた><
そしたら「Rustはハイカラなので順序はちゃんと型で返す!!!」って話が返ってきて「そういう話をしてるんじゃないんだけど?><;」ってなった><
22:29:40
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
私が言いたいのは、「『でも、型がゆるふわで整数型で返すような実装はごめんだなぁ』は動的型付き言語について言ってるならナンセンスだし、静的型付き言語相手に言ってるならマトモな言語は皆そうなってるし、誰を批判してるんだ?」ということです。
雑に言えば藁人形っぽい。
22:30:20
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
型が雑な言語に「型がキッチリしてればいいのになぁ」って、それ単なる嫌味だし何ひとつとして得るものがない非建設的な話ですよね
22:30:46
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
型がマトモな言語で三方比較が -1 / 0 / 1 を返す例を知らないので
22:31:12
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
もしかして strcmp の話してました? (そんなことはないと勝手に思ってたけど)
22:32:22
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
22:33:10
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
そもそも批判の意図が一切なかったという話ならサーセン……
22:34:32
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
まさかこれから比較で -1 を返すような演算子を新規導入する静的型付き言語とか常識的になさそうなので、わざわざ言うようなことでもなくね? との理解から批判だと思い込んでたけど
22:38:14
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
%E5%AE%87%E5%AE%99%E8%88%B9%E6%BC%94%E7%AE%97%E5%AD%90
22:38:17
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
少なくともwikipedia日本語版の記事の例示だと型がゆるふわな環境以外での宇宙船演算子の実装事例が書いて無いけど、型がきっちりな宇宙船演算子導入事例って具体的にどんなのがあるの?><
22:38:19
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
22:39:13
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
はい、「<=>」を実装している沢山ある言語のなかでも静的型付きなのは C++ だけでしたね
22:39:27
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
<=> を勝手に脳内で「三方比較」と読み替えていました
22:40:41
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
22:40:53
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
らりお・ザ・何らかの🈗然㊌ソムリエ (@lo48576@mastodon.cardina1.red)
22:42:47
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
まあ言いたいことはわかりました、 C# (.NET) では現状存在する三方比較では短く書くことができないので <=> みたいな形で演算子がどうしてもほしい、なるほどそうですね
22:42:56
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
じゃあ最初から「そんな心配しなくてもC++では宇宙船演算子が型をきっちりとした実装で導入されるからそんな心配しなくても大丈夫だよ!」で50分の謎のやり取りしないで済んだじゃん?><
22:43:23
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
や、だってまさか言いたいことの本題が「C# の三方比較クソ長ったらしすぎ」だったとは思いませんよ
22:43:37
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
もっと本質的な言語設計の話をしているものだとばかり思っていました
22:45:15
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
まああと前の文脈を掘り起こすなら、「a <=> b」と「a.cmp(b)」のどちらが読解しやすい? みたいなアレのお気持ちもある (べつに私は慣れだと思うので心底どうでもいいんだけど、 {} と begin-end だったり and/or と &/| を気にする人はそういうの気にしそうだなとは思った)
22:45:32
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 22:44:25 '; DELETE FROM users; --の投稿
boronology@social.penguinability.net
このアカウントは、notestockで公開設定になっていません。
22:45:34
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 22:45:07 '; DELETE FROM users; --の投稿
boronology@social.penguinability.net
このアカウントは、notestockで公開設定になっていません。
22:46:17
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
C# の switch 知らんけど見たところ C の switch とおおよそ似たようなものだと考えると、「switch が式ではない制御構文である限り楽にはなれない」くらいが答えという気がする
22:46:40
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
まあこの言説は暗黙に「ブロックを式にする方法があるべし」も含んでいるけど
22:47:17
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
C# はそこに関してはなぜか型がゆるふわだけど、別に長くないよ?>< むしろオレンジの書き方の方が冗長><
22:48:10
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
22:48:32
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
えぇ……そんなことある? Java の仕様を引き継いでるとかそういう系か?
22:49:31
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
22:50:11
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 22:50:01 '; DELETE FROM users; --の投稿
boronology@social.penguinability.net
このアカウントは、notestockで公開設定になっていません。
22:50:21
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
22:51:45
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
C# 、2000年発の言語なのにどうしても新しめな印象を持ってしまうけど、コア部分の言語仕様が Java のあれこれを引き継いでいて、そもそも2000年って結構昔……みたいなアレ
22:52:45
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
22:52:59
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
22:53:06
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
バージョン覚えてないからランタイムで言うけど.NET FW <= 2.0までに産まれたやつと4.5 <=あたりで産まれたやつの差がデカすぎるだろ…
22:53:45
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
22:55:11
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
オレンジのさっきのgistでの本題として言いたい事はそのおかしさで、なおかつ、ちゃんと型安全にするのであれば宇宙船演算子を導入すると便利そうって言いたかった><
あと、この事例がまさにそうだけど、こういう場合には静的か動的かって話ではなく型安全とか強い弱いの文脈の話であって動的でゆるふわだけど強い型付けとか色々あるわけであって、静的/動的ではあんまり書かないほうがいいんでは感><
22:55:57
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
そもそも静的型付き言語は型をしっかりつけろという前提があると仮定していたので、静的型付きなのにガバい言語とかいまどき新しく用意するか? と思っていたという話です。
古代言語の系譜なら C みたいにガバいのも仕方ないとなるけど
22:57:01
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
@yumetodo 意味が明確化されるとか、メソッド生やせるとか
(まで書いたところで C++ の enum にはメソッドを生やせないことを思い出してしまった……)
22:59:48
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
@yumetodo や、でも
class Ordering {
int v;
constexpr Ordering(int n):v{n} {}
public:
operator int() { return v; }
static constexpr Ordering greater = Ordering{n};
// ...
};
みたいな感じで擬似的に enum っぽくして整数への型変換も許してメソッド (たとえば .reverse()) を生やせるようにするみたいな手はあった気がするんですよね。
23:00:21
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
ジェネリックであることとゆるふわであることは全然違う……
23:00:39
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
23:01:11
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
@yumetodo あ、でもこれだと switch での網羅性検査ができないんですね……もうだめだ
23:04:46
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
@yumetodo 比較にも種類があるというのは完全に同意で、その結果として比較種類次第で結果型もまた変わってくるはずなので、整数だとその辺り曖昧にならないか……? みたいな気持ちがちょっとあります (たとえば NaN と NaN を比較して unordered だというのは整数でどう表現するんだ? という)
23:05:07
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
そもそも型がゆるふわかどうか面って、どこがどのようにゆるふわかで例えばオレンジが大好きな(だけど実用はしたことが無い)Adaの思想であれば「整数型とかそのまま使うのマジ!? ちゃんと名前ついた型作れよ」みたいな発想だし、あれかも><
23:05:09
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
で、強い弱いも型安全も文化圏によってかなり指すものが違ったりするので、オレンジは「ゆるふわ」ってゆるふわな書き方をしてた><;
23:06:20
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
そもそも雑でいいやという思想だと動的型付けになりがちなので (スクリプト言語の大半もそうだし)、そのあたりのコアの思想が明確でない中途半端というか一貫しない言語はそもそも考慮する価値をあまり感じないですね……
23:07:23
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
23:08:47
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
Rust は代数的データ型のパターンマッチがあって C++ はそうではないという文法が表れているという認識。
C++ だとswitch(ord) { case optional.value(greater): ... } みたいなこと書けないから
23:09:02
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
23:09:22
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
そもそも言語の設計の話をするならその辺りは教養の範囲内ではの気持ちがなくもないので……
23:10:05
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
特定の相手を想定するならそこに合わせようとは思うけど
23:11:44
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
Go が代数的データ型を導入してないの本当に謎なんだよな、いや謎もなにも言語としての表現力や抽象のしやすさよりも多数のユーザに書かせるときのコードの複雑さのアラインとかを考えているとか、そういう産業的な理由なのだろうけど
23:11:54
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
でも、お約束の
1 + "hoge"
がエラーになるかどうかみたいなのもどう型付けするかの話であって動的静的の話とは直接関係ないって、そこ理解してない人が多い話ではあるかも><
23:12:53
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
そういう (言ってみればエッジケース的でもある) 話、結局「自然なセマンティクス」があるよねという話になるので、最低限意味論という概念を認識できていないとどうしようもないし、この話をするたびにいちいち意味論について書くほど暇でもないというのがある
23:13:59
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
23:15:02
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
C++ のエラーメッセージは先頭から読むこと。お兄さんとの約束だぞ
23:15:36
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
人間の三大欲求であるところのパターンマッチのある言語でプログラムを書きたい欲
23:16:39
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
C++のエラーメッセージを先頭から読んでたら人生が終わるか標準化委員になっちゃう
23:17:02
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 23:16:52 '; DELETE FROM users; --の投稿
boronology@social.penguinability.net
このアカウントは、notestockで公開設定になっていません。
23:17:15
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
23:17:36
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
自然でないセマンティクスの好例としては Malbolge などが挙げられる
23:28:12
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
昔、代数的データ型がどう代数的なのかとてもよく語っているブヨグがあったんだけど、たぶん消えてしまった
23:29:00
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
以後そのような web 記事を他で見たことがないので、なんとなれば私が書く必要が……みたいな気持ちがちょっとある (いやまあ探せば沢山あるんだろうけど)
23:29:12
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
23:30:00
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
こういう話をするたびに「なぜ Go は……」とか思ってしまうのでマジで健康に悪い、 Go に関するすべての知識を脳から一掃して健康になりたい
23:32:34
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
育ちが悪いので、 Rust を書いててブロックが式になるけど手続き型っぽいのなどを見て最初に浮かんだ感想は「これ Ruby で見たやつだ、いいじゃん」でした (Scheme ではなかった)
23:33:25
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
ポヨグヤミン入門が論理回路からの Verilog からの C だったので、どうしても手続き型視点がなぁ
23:38:22
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
なんでVerilogから入ったのにPascal系の風習に慣れなかったのか謎><;
23:38:37
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
CPU を設計するときと CPU を駆動するプログラムを設計するときは脳の使う領域が違うので……
23:39:33
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
論理回路の設計なんてリアクティブプログラミングの典型例みたいなところがある (適当) けど、それは日頃コードを書くとき CPU の声を聞きたくなるというのとは別のレイヤーの話なので
23:40:00
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
(言語意味論の定義で利用される抽象機械の) CPU の声
23:40:49
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
あと言語について語るとき大抵は syntax の話なんて興味なくて semantics の方しか見てないので
23:41:07
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
シェルスクリプトで case - esac なのが { ... } じゃなくて不満だとか、そういうことは思わないし
23:41:16
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
23:41:38
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
2021-12-08 23:40:27 しらか
の投稿
crakaC@don.crakac.com
このアカウントは、notestockで公開設定になっていません。
23:43:22
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
for (int x = 0; x < col; x++) {
for (int y = 0; y < row; y++) {
arr[y][x] = foo(x, y);
}
}
こうですか
23:45:02
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
これからの人生であと何回「共変な配列型」と打つことになるのか…… (クズ)
23:52:34
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
共変な配列問題、何が正しい(≠実用的)な解決策なのかあんまり分かってない。読むときは共変、書くときは反変としてインターフェースを分ければいいんか?
23:52:49
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
実際厄介な問題ではある、どうするのがいいんでしょうね
23:53:24
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
Rust の AsRef<T> と AsMut<T> みたいなのはひとつのやり方だと思うけど、 AsMut<T> の前提として AsRef<T> の実装が求められているのであまり継承がどうという方向で適当かは……
23:53:39
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
23:53:47
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
23:54:06
らりお・ザ・何らかの🈗然㊌ソムリエ
@lo48576@mastodon.cardina1.red
配列が複雑なデータ構造なのにmutableなのが悪いような気がしてきた。mutabilityは悪