朝日ネット 技術者ブログ

朝日ネットのエンジニアによるリレーブログ。今、自分が一番気になるテーマで書きます。

Haskell

Haskellのつまづきやすいポイントを解説 ~モナドと effect system ~

こんにちは、開発部のjiweenです。 本記事では、Haskellについて誤解しやすい・つまづきやすいポイントである、Haskellにおける手続き型プログラミングについて紹介します。手続き型言語を書いたことはあるがHaskellを書いたことがない人を対象にしています…

Algorithm Design with Haskellでアルゴリズムを学ぶ

はじめに 開発部のcbmkageです。 仕事でプログラムを書いていると、どうしたら期待通りに、かつ高速に動作するアルゴリズムが実装できるか、考えることがあります。 本記事では、アルゴリズムについて新たな視点を与えてくれる本「Algorithm Design with Has…

Haskellerのための量子プログラミングと線形依存型

2013年に量子コンピューティングのための関数型プログラミング言語Quipperが発表されました(Quipper: A Scalable Quantum Programming Language - arXiv、以下Quipperレポート)。QuipperはHaskell言語内のDSLとして作成された言語で、もともとは IARPA Quant…

GHC 9.2 で導入されたQuick Look型推論アルゴリズムについて

初めまして、朝日ネット開発部の hogeyama です。 今回は Haskell の中級的なトピックとして、 GHC 9.2 で導入された Quick Look 型推論アルゴリズムを取り上げようと思います。 概要 Haskell のデファクトスタンダードなコンパイラである GHC では通常の多…

Haskellと余代数(Coalgebra)

ここではHaskellの中級者向けのトピックを簡単に取り上げたいと思います。 今回は余代数(Coalgebra)についてです。Haskellを書いていると『余(なんとか)』という言葉をみかけることがあります。これは英語の接頭辞 Co- の訳で、ここでは代数(Algebra)の双…

Haskellで図を作成してみましょう (その3)

開発部のgedokuです。 HaskellをeDSLのホスト言語として使うことの魅力を、作図を通じて伝えるシリーズの第二弾です。 第一弾はこちら。 第二弾はこちら。 前書き 図結合入門 今回使う図結合の仕方 目標に近づける ノード二つを配置 ノードの塗りつぶし(寄り…

Haskellで図を作成してみましょう (その2)

開発部のgedokuです。 HaskellをeDSLのホスト言語として使うことの魅力を、作図を通じて伝えるシリーズの第二弾です。 第一弾はこちら。

Haskellの型と直観論理

開発部のxgotoです。Haskellの初級・中級者向けのトピックを取り上げたいと思います。 今回は型(Type)についてです。型はHaskellの入門書でも必ず最初のほうに説明されるもので、手元の本によれば、

Haskellで図を作成してみましょう (その1)

開発部のgedokuです。 今回は図を作成するための, HaskellのeDSLを紹介したいと思います。 ついでに、eDSLの特徴、ホスト言語の機能が使えるメリットを見せてみたいと思います。 シリーズの第一弾です。