新しいものを表示

免許無いから実際どうかアレだけど、風景とか地図とか覚えるの得意だからある程度の範囲ならカーナビ要らない><(でも歳とって(?)無意識ではだんだん覚えられなくなってきた><;)

今月の鉄道ファン(5月号)、弘南鉄道と津軽鉄道のキ100の記事が4ページある><

音楽全く記憶無いというかコーナー自体記憶に無い・・・><

orange さんがブースト

"東武博物館のテーマ" を YouTube で見る youtu.be/xYmhRzoC6xE
この曲、東武博物館の"東武の電車"というビデオコーナー(画像参照)で流れてるんだけど正式名称が分からないししかもオリジナル楽曲らしい上にソフト化もされてないらしくて綺麗な音源で聞いてみたい

ていうか、オレンジは型推論も嫌ってるし、もっと言うとAdaみたいに「単純な型をそのまま使うな!!! 型を作れ!!! 型チェック!!!」って発想好きだけど、Ada使った事無いから実際にはそうしてない><;

オレンジはこの前こんなの書いた><;
mstdn.nere9.help/@orange_in_sp
では実行時にしかエラーでないので
mstdn.nere9.help/@orange_in_sp
明示的な型変換の宣言で契約プログラミングでどうにかする方式><;

orange さんがブースト

strong typedef する場合、「開発者の視点ではある型は制約を満たす値しか持てない」ことを保証しますが、その制約チェックは実行時に(コンストラクタ内などで暗黙に)行われるケースが多いです

オレンジがこの前「どうにかC# で、部分範囲型っぽいこと出来ないのかな?><;」って書いたコードにそっくりっぽさが・・・><

これっぽい?><
本の虫: C++1yに提案されている不透明エイリアス(opaque alias) cpplover.blogspot.jp/2013/09/c

orange さんがブースト

或いは C++ や Rust では strong typedef (opaque typedef) という技法があり、これを使うことで実質的にそういった型は定義可能です

orange さんがブースト
orange さんがブースト

それ極めると refinement data type (篩型)になると思うんですが、型推論で SMT ソルバなどが必要になるので……

部分範囲型なら、nullが入らないどころか例えば2~42までの整数を表す型とか、曜日列挙型の部分範囲型として平日型を作るとかできるけど、それって入ってきちゃ駄目な値を型の段階で排除してるという面ではnull非許容な型と同じだよね・・・?><

裏返して考えると、AdaとかPascalでの部分範囲型が、他の言語にほとんど採用されないのって逆にわけがわからなくなるかも・・・><(範囲を決めた型を作る事で型チェックでどうにかする仕組みって、null非許容の型でどうにかしようって発想と似てるどころかさらに先をいってる発想だと思うんだけど><)

rust-lang-ja.github.io/the-rus
まだ読みかけだけど、確かに便利そう><;
あと、"小休止:アンラップは悪ではない" の所の "パニックがプログラムのバグの兆候となるとき。" の記述が、
オレンジが書いた "むしろエラーの更なる先延ばしにしてるコードになるんじゃないのかなって気が><" に相当する場面?><

"// `haystack`(干し草の山)からUnicode文字 `n"(以下略)の所のコード、型がわかりにくい・・・><

orange さんがブースト

.? みたいな演算子は、フィールド参照にしか使えなくてロジックを繋げられないので、そこで if が必要になってしまうのがしょーもないという

orange さんがブースト

null か否かの確認は、続くロジックと合成可能な形で与えることで自然に記述できる、という話もあって、 Rust でのコンビネータはそれを支援しますし、あるいは Haskell の >>= なども (Maybe や Either については)そういう使い方になるかと

これの最初の例、Adaとかだと「部分範囲型を使え!! ていうか型作れ!!!」ってなるやつだ・・・><; -- rust-lang-ja.github.io/the-rus

古いものを表示
:realtek:

思考の /dev/null