Web アプリで小さなデータベース プールを使用しています。そして、この特定の機能:
withPool pool = bracket (takeConn pool) (putConn pool)
適用可能なスタイルで書き直すことができます:
withPool = bracket <$> takeConn <*> putConn
おそらく、それは読みやすく、はるかにエレガントです。当然、そのように書きたいと思います。しかし、データベース接続プールは高速であると想定されており、このスタイルでは不要なオーバーヘッドが発生するのではないかと心配しています。
だから私の質問は、Haskell で applicative functor を使用するとどのくらいのオーバーヘッドが発生するか (ある場合) です。ベンチマークはありますか?