2021-01-01から1年間の記事一覧

最近見かけたHaskell library: acc

acc: Sequence optimized for monoidal construction and folding accはリストデータ構造Accを提供するライブラリ。Accの特徴はappendやprependが速い、ということ。ベンチマークによるとDListやSeqより速いとのこと。とにかくデータをリスト状に突っ込むよ…

最近見かけたHaskell library: forma

forma: Parse and validate forms in JSON format formaはWebアプリケーションにおけるform validator。formの送信内容はJSON形式で送信されることを想定している。

最近見かけたHaskell library: valida

valida: Simple applicative validation for product types, batteries included! validaはproduct type (レコードデータ型)に対するvalidation処理を書くためのライブラリ。validation処理はValidator型で表現される。 data Validator e inp a e: エラーを…

最近見かけたHaskell library: slugger

slugger: Clean URI slugs for Haskell sluggerは任意の文字列をURL-friendlyな文字列にそれっぽく変換するライブラリ。例えば import qualified Data.String.Slugger as SluggerString SluggerString.toSlug "Hey there, world!" -- "hey-there-world" Slug…

最近見かけたHaskell library: retry

retry: Retry combinators for monadic actions that may fail retryは任意のIOアクションをバックオフつきで再試行(リトライ)する仕組みを提供するライブラリ。RetryPolicy型(Monoidになっている)でどういった戦略でリトライをするかを設定し、retrying関数…

最近見かけたHaskell library: ttc

ttc: Textual Type Classes ttc(Textual Type Classes)は、Haskellの問題点として名高い「文字列型多すぎ問題」に対処するためのパッケージ。各種文字列型の間の相互変換のほか、Show/Read typeclassを各種文字列型にgenericに拡張したRender/Parse typeclas…

最近見かけたHaskell library: connections

connections: Orders, Galois connections, and lattices. connectionsはガロア接続 (Golois connections)を表現するライブラリ。ガロア接続の正確な定義はライブラリのドキュメントを参照されたいが、ある規則を満たす半順序集合間の2つの写像の組、らしい…

最近見かけたHaskell library: versions

versions: Types and parsers for software version numbers. versionsは様々なソフトウェアバージョン番号のデータ構造、パーサ、フォーマッタ(pretty printer)を提供するライブラリ。バージョン番号の形式としてはSemVerやHaskell PVPをサポートしているが…

最近見つけたHaskell library: fuzzyfind

fuzzyfind: Fuzzy text matching fuzzyfindは文字列のあいまい探索ライブラリ。基本的に、クエリ文字列がターゲット文字列に含まれるかどうか、含まれるとしたらどこかを探し出す。その際、クエリ文字列がバラバラにターゲット文字列に含まれる場合もマッチ…

最近見かけたHaskell library: clash-prelude

clash-prelude: CAES Language for Synchronous Hardware - Prelude library clash-preludeはハードウェア記述言語Clashのメインライブラリ。Clashは要するに、HaskellからVHDLなどのハードウェア記述言語プログラムを生成するコンパイラらしい。そんなもの…

GitHub ActionsでHaskellプロジェクトのstack/cabal混在CI

これまで自分が公開しているHaskellのライブラリのCIはTravis CIを使っていたが、GitHub Actionsに移行することにした。一番大きな理由は、haskell/actions/setupを使うと最新のghcとcabalを使ったビルドが比較的簡単に実現できるから。 これを機に、手元の…

最近見かけたHaskell library: invert

invert: Automatically generate a function's inverse invertは与えられた関数の逆関数を自動生成するライブラリ。もちろんどんな関数にも適用できるわけではないので使う際には注意が必要。対象の関数が単射(injective)か、全射(surjective)か、全単射(bij…

最近見かけたHaskell library: salve, witch

Taylor Fausak(@tfausak)さんによる2つ。 salve: Semantic version numbers and constraints. salveはsemantic version numberを表現するデータ構造及びそれらに関する処理(パーサ、フォーマッタなど)を提供するライブラリ。npmの表記によるversion constrai…

最近見かけたHaskellツール: ghc-vis

ghc-vis: Live visualization of data structures in GHCi The ghc-vis User Guide ghc-visはGHCiのプラグイン(?)で、指定した式がどのようなデータ構造になっているかをGUIで可視化する。どこにサンクがあったり、データ構造がどう相互参照しているかを見る…

最近見かけたHaskellプログラム: vgrep

vgrep: A pager for grep GitHub - fmthoma/vgrep: A pager for grep vgrepはgrep向けのpagerプログラム。grepコマンドでマッチした箇所をインタラクティブに閲覧して、マッチしたファイルのマッチした行でさらにpagerを開くことができる。 grepの結果をパイ…

cabal-install "v2" ビルド メモ

しばらく前からstackばかり使っていたのでCabalにはとんと疎くなってきたが、cabal-installの"v2"系のビルドはかなり使いやすくなっているとのことで、使い方をチェックしてみた。 stackの代わりにcabalを使うメリットとしては、以下が挙げられると思う。 st…

最近見かけたHaskell library: conferer

conferer: Configuration management library Conferer · Configure your Haskell programs Haskell applicationの設定データ(configuration)をロードするためのフレームワーク。コマンドラインオプション、環境変数、設定ファイルなど異なる情報源(source)…

最近見かけたHaskell library: webgear-server

webgear-server: Composable, type-safe library to build HTTP API servers WebGearはWeb (HTTP) API serverを作るためのライブラリ。server-sideのHandlerを組み立てて、Wai applicationを作る。 ドキュメント: WebGear リリースブログ: Haskell Explained…