タグ

ブックマーク / qnighy.hatenablog.com (3)

  • 有理数の付番 - 簡潔なQ

    概要 有理数の付番の計算しやすい定義を与えた。 はじめに 有理数 () は自然数 () と同じくらいの個数しかない(可算)というのはよく知られています。これは通常、以下のような理屈で納得されます。 のように付番することで、 は と同じくらいしかないことがわかる。 のように付番することで、 は と同じくらいしかないことがわかる。 は分子と分母の組で表せるので、 と同じかそれより少ないとわかる。 一方、自然数はそのまま有理数なので、 は と同じかそれより少ないとわかる。 したがって、 と は同じくらいしかない (この推論をCantor-Bernstein-Schröderの定理という) しかし以下のようにすると、具体的な付番を与えることができます: 了解1.1 は0以上の整数全てからなる集合を指すこととする。自然数という言葉も同様の意味で用いる。 また、 を1以上の整数全てからなる集合とする。

    tackman
    tackman 2022/04/12
  • Rustのパニック機構 - 簡潔なQ

    概要: Rustのパニック機構は異常終了の処理を安全に行うためにある。この動作を詳しくみていく。 パニックとは何か Rustには2つの異なる例外処理機構があります。 発生源 対処方法 例 パニック プログラミングエラー 原則として捕捉しない assert!() 境界外参照 Result 例外的な入力 必要に応じて捕捉 I/Oエラー (File::read) パースエラー (str::parse) パニックとResultの関係についてはTRPL第2版第9章、未定義動作とパニックの関係についてはRustonomiconのUnwindingの章などが参考になります。 パニックを想定した安全性 Rustではたとえパニック状態でも未定義動作だけは絶対に避ける必要があります。そのため以下の関数は不健全 (unsound)です。 use std::ptr; // この関数はRustではunsound (

    Rustのパニック機構 - 簡潔なQ
    tackman
    tackman 2018/10/28
  • 安定化間近!Rustのimpl Traitを今こそ理解する - 簡潔なQ

    概要: impl Trait が安定化間近である。これはトレイトオブジェクトと似た用途を持つが、静的ディスパッチされSizedのまま使えるため効率的である。 impl Trait が安定化間近 Rustでは新規の機能はまずnightlyバージョンに「不安定機能 (unstable feature)」として取り入れられます。そこでの実験を経て、プログラミング言語Rustに半恒久的に導入してもよいと合意されたものだけが「安定化 (stabilize)」され、betaやstableバージョンのコンパイラでも使用できるようになります。 さて、現在 「impl Trait」と呼ばれる機能の安定化のめどがたったというアナウンスがありました。この機能は2016年夏ごろに実装され、長い間待ち望まれてきた目玉機能のひとつでしたが、ここにきてようやっと、という感じです。そこで、 impl Trait について

    安定化間近!Rustのimpl Traitを今こそ理解する - 簡潔なQ
    tackman
    tackman 2018/01/30
  • 1