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

postgresql-pure を開発しました

この記事は Haskell Advent Calendar 2019 の6日目の記事です。 hackage.haskell.org postgresql-pure は Haskell の PostgreSQL ドライバー(クライアントライブラリー)で次のような目標で開発しました。 マルチコア環境でのパフォーマンス向上 暗黙のロッ…

FFI で Haskell から Rust を利用する

Rust で作ったライブラリーを静的リンクして Haskell(GHC)から使う例と説明を書いた。 github.com

GHC 環境構築 概観 と PowerShell

Haskell の開発環境を構築する方法は何通りかあり、新しいツールが出ると「今はこれだ」とほめるブログも公開されますがそれが初学者を混乱させることがよくあります。 本記事ではビルドツールのインストールにしぼり、開発支援、例えば ghc-mod・haskell-id…

C ドライブ依存を減らす

いろいろなソフトウェアがデフォルトで何でも C ドライブを使う。 C ドライブが手狭になってきたのでいくらかのデータを別ドライブに移行する方法をメモしておく。 Stack Stack(Haskell)のリソースはユーザー環境変数 STACK_ROOT の指すディレクトリーに保…

Zenza Bronica S 系用接写リング

Zenza Bronica S 系用接写リングの説明書(をスキャンしたものをプリントしたもの)を入手したので文字データに起こした。 docs.google.com この接写リングは4個(C-A C-B C-C C-D)で1組になっています 使用できるレンズも 40 mm~200 mm までと巾広く 標準…

最近の自分の Haskell 開発環境(Windows)

id:syocy のブログを見たので Windows で自分がどうしているかをメモしておく。 syocy.hatenablog.com Stack 最近は ghcup があるがシェルスクリプト製で自分は PowerShell ユーザーなので stack を使っている。(ghcup はなんで Haskell 製じゃないんだ1?…

関数のメモ化

ブログに書いてみるとよく分からなくなってきました Haskell-jp で回答をもらいました。 @lotz84_ さんの記事や GHC のプロファイルに出てくる CAF がよく分かってなかったのをまとめる。 qiita.com fact のメモ化 lotz さんの記事の階乗 fact 関数を題材に…

技術書典 5 ふりかえり

え?6?いやいや 5 ですよ? techbookfest.org 池袋 慣れ親しんだ秋葉原の地を飛び出して池袋にやってきました。 めちゃくちゃ広くてびっくりです。秋葉原通運会館からアキバスクエアにやってきたときも思いましたが、同じ感想がもう一度。 ガラス張りじゃな…

Servant と Relational Record でウェブアプリケーション開発

Servant とは Servant は型レベルプログラミングによって、ウェブアプリとしてのインターフェースと実装との差異を防ぐことのできるウェブアプリフレームワークです。 haskell-servant.readthedocs.io 日本語記事としては lotz さんのこちらが分かりやすいの…

Haskell Windows Ctrl-C 動作確認

コード コードは前回記事と同じです(再掲)。 Git リポジトリーはこちら。 import Control.Concurrent import Control.Monad import System.Exit import System.IO import System.Win32.Console.CtrlHandler main :: IO () main = do tid <- myThreadId let…

Haskell で Ctrl-C を制御する(Windows)

Ctrl-C 等の割り込みの扱い方です。 tl;dr System.Win32.Console.CtrlHandler を使います。 Ctrl-C が押されたらクロージングの処理を伴って終了するプログラムを書いてみます。 import Control.Concurrent import Control.Monad import System.Exit import …