タグ

Haskellに関するyukimemiのブックマーク (4)

  • gmork.in

    Contact the domain owner here gmork.in 2024 著作権. 不許複製 プライバシーポリシー

    gmork.in
  • Haskell でのデバッグ手法あれこれ | 雑記帳

    プログラムにバグはつきものです。強力な型システムを備えている Haskell でもそれは同じです。この記事では、 Haskell プログラムのデバッグ手法をいくつか挙げてみます。 なお、使用している GHC は 8.2.2 です。より新しいバージョンで追加されるであろうより便利な機能は、この記事の対象外です。 【2018年2月8日 更新:-fexternal-interpreter, Control.Exception.assert, debug パッケージについて追記】 【2018年5月25日 更新:プロジェクトごとにPreludeを持っていると便利という話を追加】 心構え:処理を分割せよ Haskell は純粋な言語です。IOが絡まない関数であれば、同じ引数に対しては同じ結果が返ってくることが期待されます。 よって、処理を細かく(純粋な)関数に分割し、それぞれ GHCi で動作を確かめ

  • 素晴らしき HLint を使いこなす

    Posted on January 29, 2018 authored by Shinya Yamaguchi はじめに HLint は haskell-src-exts を使って実装されている静的解析ツールです。 HLint を使えば github などを使って PR ベースで開発する場合のコードレビューでこんな事を言わなくて済みます。 fromJust とかの部分関数は使わないで! maybe 関数って知ってる? この言語拡張って当に使ってるの? undefined まだ残ってるじゃん! 嬉しいことに Travis CI や CircleCI などで一度設定するだけなので導入もお手軽です! また、最近知ったのですが、プロジェクト内で使って欲しくない関数なども HLint によって検出可能です。 さらに、独学で Haskell の学習を進めている人は HLint が素晴らしい教師役とな

  • stackとdockerでHaskellプログラムを静的リンクする - iLog

    はじめに こんにちは、ishiy(@ishiy1993)です。 今日はstackを使ってdockerコンテナの中でHaskellプログラムを静的リンクでコンパイルする方法を説明します。 こんなことをしようと思った背景を書いておきます。まず僕は現在dockerやrktの活用に興味があります。そして先日こちらの記事でAlpine linuxを知りました。Alpine linuxは非常に軽いOSで公式のdockerイメージでたったの5MBです。ちなみにUbuntu 14.04のdockerイメージは190MBくらいあります。なのでAlpineをベースにすることで軽量なdockerイメージを作れます。しかし、Alpineはbusyboxとmusl libcをベースにしておりglibcなどがデフォルトではありません。stackで普通にビルドすると動的リンクされたアプリが作成され、そのアプリはglib

    yukimemi
    yukimemi 2017/02/07
    stackコマンドでdocker使ってbuild出来るのか。すごい
  • 1