タグ

ブックマーク / haskell.e-bigmoon.com (3)

  • Megaparsec tutorial from IH book (翻訳)

    Posted on July 14, 2019 translated by Wataru Yamada authored by Mark Karpov Last Updated October 11, 2020 Great original post: Megaparsec tutorial from IH book この Megaparsec のチュートリアルは、元々は Intermediate Haskell というの1つの章のために書かれました。 ここ一年でが進展していないため、 他の著者は私がスタンドアロンのチュートリアルとしてテキストを公表し、 人々が少なくとも私たちの仕事のこの部分から恩恵を受けることができるようにする ことに同意しました。 ParsecT と Parsec モナド 文字 とバイナリストリーム モナディック構文とアプリカティブ構文 Eof による入力の強制消

  • stack でアプリケーションのバックトレースを取得する (デバッグ)

    はじめに Haskell のデバッグ手法については、以下の記事がとても詳しく参考になります。素晴らしい記事です。 Haskell でのデバッグ手法あれこれ 今回はHaskellアプリケーションをデバックする際に、バックトレースのとても簡単な取得方法があったのでご紹介したいと思います。 まとめると以下の2行です。 $ stack build --profile $ stack exec -- <exe_name> +RTS -xc バックトレースの取得方法 まず、バックトレースを取得するために GHC.Stack で定義されている HasCallStack をクラス制約として追加します。

    masterq
    masterq 2019/02/03
    "stack exec -- <exe> +RTS -xc" でバックトレースが取れるようになったらしい。便利そう。一方で--profileでビルドするということは結局ログ取りながら実行することになるので遅いはず。
  • LiquidHaskell のインストールと学習方法

    Posted on March 3, 2018 authored by Shinya Yamaguchi Last Updated May 2, 2020 はじめに LiquidHaskell を半年ほど勉強した結果、色々と出来ることが増えて楽しくなってきました。 現状、日語で詳しく説明しているブログ記事等はほとんどありません。 とても面白いツールだと思いますので、色々と紹介していけたらと思います。 今回は LiquidHaskell の導入方法について簡単に説明したいと思います。 LiquidHaskell とは? LiquidHaskell は GHC の型よりも、さらに厳密な 篩型 (Refinement Type) の型検査器です。 既存のコードを変更 (さらには実行すら) することなく利用できるため、既存のプロジェクトの一部にだけ導入することも可能です。 また、つい最近も GA

    masterq
    masterq 2018/05/20
    "既に div の篩型が定義されている" あー、実装と仕様に乖離があってどちらが正しいのかわからなくなる闇が見えました。。。ATSと同じじゃないか。。。
  • 1