I’m happy to announce that text-2.0 with UTF-8 underlying representation has been finally released: https://hackage.haskell.org/package/text-2.0. The release is identical to rc2, circulated earlier. Changelog: https://hackage.haskell.org/package/text-2.0/changelog Please give it a try. Here is a cabal.project template: https://gist.github.com/Bodigrim/9834568f075be36a1c65e7aaba6a15db This work wou
Tweet この記事はHaskell Advent Calendar 2021の25日目の記事です。 Haskellのよく言われる問題点の一つとして、文字列型が下記のようによく使われるものだけで5種類もある、という点があります: String StrictなText LazyなText StrictなByteString LazyなByteString (上記の頻繁に使われるもの以外にも、もっとあります) それぞれ確かに使いどころが違うので、アプリケーションで使用する場合は場面に応じて使い分ければいいのですが、文字列を使ったライブラリーを開発する場合はなかなか悩ましいものがあります。内部で依存しているライブラリーが使用しているものがあれば、それをそのまま使うのが簡単で確実ですが、そうでない場合も多いでしょう。そこで本稿では文字列型を抽象化して扱いたい場合の手段として、mono-traver
はじめにの前に これはHaskell Advent Calendar 2021の23日目の記事です。長くなってしまったのと、時間がなくて説明が雑になっているところが多々あるかと。C言語で書かれたライブラリをHaskellから使うときに「ここどうやったらいいかな」というのを自力で解決してきた、いくつかの手法を、ひとつのライブラリをHaskellから使っていくというストーリーのなかで解説してみました。今後また手を入れて洗練させていきたいと思っています。 はじめに ふだんHaskellで楽していたとしても、もっと楽しいことをやろうとしたら、多くの場合にC言語のライブラリを使うことになる。Cの関数を使うことは楽しくスリリングな作業になる。柵のない屋上でローラースケートを楽しむようなものだ。使い捨てのコードであれば、FFIで取り込んだ関数をそのまま使えばいい。そうではなく、すこし腰をすえて取り組むコ
この記事は Haskell Advent Calendar 2021 の22日目の記事です。 次のような3つの行列の積を考えてみましょう。 ABC = \begin{pmatrix} a_{00} & a_{01} & a_{02} \\ a_{10} & a_{11} & a_{12} \\ a_{20} & a_{21} & a_{22} \\ a_{30} & a_{31} & a_{32} \\ \end{pmatrix} \begin{pmatrix} b_{00} & b_{01} \\ b_{10} & b_{11} \\ b_{20} & b_{21} \\ \end{pmatrix} \begin{pmatrix} c_{00} & c_{01} & c_{02} & c_{03} & c_{04} \\ c_{10} & c_{11} & c_{12} & c_{13}
While Haskell quic version 0.0.1 or earlier supports the x86_64 architecture only, version 0.0.2 or later will supports non-x86_64 architectures. cryptonite When I started implementing the quic library in Haskell, I used cryptonite as crypto engine. Since cryptonite takes the functional style where all results are generated newly without side-effects, it is safe to use it among multiple threads. I
訳者まえがき Haskellには初心者殺しの関所が幾つもありますが、その一つに 簡単な四則演算すら型が合わずコンパイルできない があります。 この問題を解決するためにアチコチの本やサイトを読みましたが、結局一番分かりやすかったのはwiki.haskell.orgの記事でした。 自分のために翻訳したものを公開します(最後に独自に数値型の階層と変換関数の一覧もまとめています)。 日本語版公開にあたってはHaskellWiki:Copyrightsを参照し、問題ないとの判断をしていますが、万が一権利侵害等がありましたら、ご指摘ください。許諾等の処理が完了するまで公開を中止します。 本文 以下はConverting numbersの日本語訳です。 Haskellにおける数値型間の変換は明示的に行う必要があります。 これは他の多くの伝統的言語(CやJavaなど)で暗黙にキャストが行われるのとは異なり
はじめに 本記事は Haskell Advent Calendar 2021 17日目の記事です。 想定読者: Haskell による TUI プログラミング、ゲームプログラミングに興味がある方 本記事のゴール: TUI で動作するゲームの作り方および流れを理解する 使用ライブラリのバージョン: brick-0.62, vty-5.33 ソースコード: https://github.com/matonix/panepon brick と vty 今回使用する主要なライブラリは brick と vty です。 vty は様々なターミナルで動作する TUI (テキストユーザインタフェース) ライブラリ ncurses のラッパーで、ターミナルを介した入力(キー・マウスイベント等)や出力(ターミナルへの描画やテキストへの着色等)に関する API を提供します。 追記: 「vtyはncursesの
目的 Haskellのパッケージに含まれるあるシンボルをパッケージに外に見せたくない場合に、 逆に見せたいシンボルを列挙して対応していませんか? 今回紹介する方法はGHC Source Pluginを使ってシンボルをパッケージ外に出さない方法を紹介します。 動機の確認 シンボルをパッケージ外に出さない方法を紹介する前になぜそのようなことをやりたいのか確認しておきます。 C++の関数をHaskellで呼び出せるようにinline-c-cppでラッパを作りたい場合に基本的には外に見えるようにしたいが inline_c_ffi_適当な番号というinline-c-cppの内部関数が生成されました。 inline-c-cppのtemplate haskellに渡すデータは次のようなファイルなのですが、
We’re running Haskell in production. We’ve told that story before. We are also running Haskell in production on Kubernetes, but we never talked about that. It was a long journey and it wasn’t all roses, so we’re going to share what we went through. TL;DRConfigure Haskell RTS settings: Match -N⟨x⟩ to your limits.cpuMatch -M⟨size⟩ to your limits.memoryYou can set them between +RTS ... -RTS arguments
これは、Haskell Advent Calendar 2021 の8日目の記事です。 Haskellのコンパイラとして事実上一択となったGHCには、「軽量スレッド」が実装されています。軽量スレッドは、ネイティブスレッドよりも軽量なスレッドで、他の言語では「グリーンスレッド」とも呼ばれています。Haskellerが並行プログラミングをするときは、軽量スレッドを息を吸うかのように使います。 複数の軽量スレッドの入出力を束ねるのが、IOマネージャです。IOマネージャも単なる軽量スレッドであり、OSから入出力のイベントを受け取り、それぞれの軽量スレッドにイベントを通知します。 軽量スレッド(っぽい)機能を提供する他の言語では、GHCのIOマネージャを参考にしているようです。僕はIOマネージャの開発に深く関わっています。この記事ではIOマネージャの歴史をまとめるとともに、主にmacOSでの実装に関
この記事は、CAMPHOR- Advent Calendar 2021 の7日目の記事です。 「アルゴ式」というプログラミングを学んで実践できる非常に良質なWebサービスがあります。 アルゴリズムについて解説された教科書だけでなく、実際にプログラミングを書いて提出してオンラインでジャッジしてくれるシステムを備えた練習問題も用意されているのが特徴です。さらにこのオンラインジャッジシステムは多くのプログラミング言語に対応しており、その中にはHaskellも含まれています。 今回はこのアルゴ式を読むにあたって練習問題をHaskellで解くために必要になりそうな知識についてまとめました。アルゴ式は現在ベータ版なので将来的な変更で変わってしまうものもあるかもしれませんが、2021年12月現在の練習問題を全てHaskellで解いた上で必要になったものをまとめているので参考にしていただけると幸いです。
Haskell Advent Calendar 2021, 7 日目の記事です。 はじめに - stack script はいいぞ Haskell を触り始めてだいぶ経ちますが、ようやく完全に理解した(分かってない)ので何かにつけて Haskell を使いたくなります。 しかしそうほいほいネタが出てくる程に発想が豊かなわけではありません。まさに「Twitterを巡回していてわかったHaskell初心者が躓きやすいポイント8つ」のうちの一つにはまってしまいそうになっていました。 そんな時、ちょっとしたスクリプトを Haskell で書いてみることに私は活路を見出しました。普段つい Bash や Python で書いちゃっているようなものを Haskell で書いちゃうわけです。そして Haskell ではそれが出来ます。stack script という便利なコマンドがあるのです。 ただ本記事
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く