タグ

2023年5月31日のブックマーク (3件)

  • 畳み込みの視点から見たforall(every)とexists(some): 空集合に対するforallは常にtrueになる - Lambdaカクテル

    こういうツイートが話題になっていた。 「配列のすべての要素が条件を満たすならtrueを返す」関数を定義するとき、空の配列を渡したらfalseを返すかtrueを返すかが、良いプログラマかどうかの一つの境目だ— ふみ (DJ Monad) (@fumieval) 2023年5月29日 つまりScalaで言うと次のようなコードが何になるか、というものである。 val xs = Seq.empty[Int] xs.forall(_ == 42) 結論から言うと、このような関数は常にtrueを返す。 なぜだろう?その理由をこれから説明する。 ちなみに他に以下のような意見があった: 仕様による 例外を投げるべき いずれもまぁありえなくはないが、やめておいたほうが良いと思う。もし仮にfalseを返すような仕様があった場合、それは数学から乖離しているのでいずれ仕様内部で矛盾する可能性が高いし*1、最終的に

    畳み込みの視点から見たforall(every)とexists(some): 空集合に対するforallは常にtrueになる - Lambdaカクテル
    mollifier
    mollifier 2023/05/31
    仕様によるというのは答えになってないよね。その仕様をどうするのが望ましいか、合理的なのかを決めようという話なのだから。でtrueにするのが妥当だと思う
  • .NET TIPS [ASP.NET]SQL Serverモードのセッション管理で情報を永続化するには? - Webフォーム - @IT

    「TIPS:[ASP.NET]セッション情報をSQL Server上で管理するには?」では、SQL Serverを利用して、IISサーバ・プロセスからセッション管理を分離する方法について紹介した。セッション管理をASP.NETアプリケーションから分離することで、メモリ負荷の軽減などの効果を得ることができる。 しかし、前述のTIPSで紹介した方法では、セッションを管理するSQL Serverが何らかの事情で再起動したときにセッション情報を維持することができない。これは、セッション情報を保持するtempdbデータベースが、SQL Server再起動のタイミングで必ず初期化されるためだ。そのため、たとえ障害に対する耐久性を向上する目的で、SQL Serverをクラスタ構成にしていたとしても、フェイルオーバーによってセッション状態は破棄されてしまうことになる。これでは、せっかくセッション管理のプロ

    mollifier
    mollifier 2023/05/31
  • .NET TIPS [ASP.NET]セッション情報をSQL Server上で管理するには? - Webフォーム - @IT

    別稿「TIPS:[ASP.NET]セッション情報を外部プロセスで管理するには?」では、ASP.NET State Service(以下、「State Service」)を利用して、IISサーバ・プロセスからセッション管理を分離する方法について紹介した。セッション管理をASP.NETアプリケーションから分離することで、メモリ負荷の分散などの効果を得ることができる。 しかし、State Serviceを使用した場合でも、標準的なインプロセス・モードと同様、メモリ上でセッション・データを管理していることに変わりはない。つまり、DataSetオブジェクトのような大量のデータをセッション情報として管理しようとした場合には、State Serviceサーバに大量のメモリが必要となる可能性が出てくる。 このような場合に備えて、ASP.NETが標準で提供しているのが、SQL Server(MSDEも可)に

    mollifier
    mollifier 2023/05/31