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

新しいGHC拡張、NoFieldSelectorsについて

今まで不満の多かったHaskellのレコードの扱いを改善するための一歩として、NoFieldSelectorsというGHC拡張の実装を進めている。 動機 Haskellにはレコードを定義するための構文がある。 data User = User { userId :: Int , userName :: Text } こう定義す…

動的配列の無難なHaskell実装

qiita.com C++、Rust、Pythonなど、他の言語では当たり前のように多用される動的配列だが、Haskell実装は(開発を始めた時点では)見当たらなかったので作ってみたお話*1。 動的配列とはミュータブルな配列の一種で、通常の配列操作だけでなく、末尾への要素の…

liszt: Append onlyでリーダーとライターが分離されたKVS

adventar.org 以前仕事で使おうとして没になったアイデアを改めて記事にまとめる。 動機 以前書いた記事で説明したものとほとんど一緒である。 fumieval.hatenablog.com プログラムのログをリアルタイムに監視する仕組みが欲しいが、その仕組みがダウンして…

自動printfデバッグ

関数をデバッグするために、引数と戻り値をそれぞれ表示するというのを誰しもやったことがあると思う。今回はそれを自動化するからくりをHaskellで実装してみる。 目標となるのは、関数が与えられたとき、その引数と結果をターミナルに出力する関数に変換す…