タグ

haskellに関するunaristのブックマーク (83)

  • 2017年に「すごいHaskellたのしく学ぼう」を読む - Qiita

    はじめに この記事は「Haskell (その4) Advent Calendar 2017」の13日目の記事になりました。 書籍「すごいHaskellたのしく学ぼう」は2012年に発売され、現在も販売されているHaskell入門にぴったりの良書です。しかし、内容が2012年当時のままで止まってしまっています。 そこでこの記事では(もう年末ですが)2017年現在「すごいHaskellたのしく学ぼう」を読むにあたって注意すべき点を章ごとにまとめて紹介します。 イントロダクション イントロダクションの「Haskellの世界に飛び込むのに必要なもの」ではHaskell Platformをインストールするように紹介されています。しかし、現在ではStackを利用するのが一般的です。 Linux系OSではリポジトリにある「stack」や「haskell-stack」などのパッケージを導入することで使える

    2017年に「すごいHaskellたのしく学ぼう」を読む - Qiita
  • 資金力のないWeb系ベンチャーがHaskellを採用したらどうなったか - Qiita

    はじめに 僕の業は酪農で、ヤギのさくらちゃんをお世話するのが仕事ですが、それだけではっていけないのが世の中の悲しさなので、副業フリーランスITコンサル(兼プログラマ)や株式会社UZUZっていう会社のひきこもり系最高技術責任者としてHaskellやElmを業務で使っています。 あと、個人的な趣味で株式会社ARoWっていう社員数2名のちっちゃいWeb系の会社を実験的に経営していて、そこでもメインにHaskellを使っています。 Haskellを実際に小規模な会社やフリーランスで使っている人って、実は世の中にほとんどいないみたいです。 そこで、実際のところ「Haskellって資金力のない会社や個人が業務で使えるのん?」っていう疑問に対して率直にお答えします。 日Haskell界の現状 まず、Haskell界隈の日における現状についてお話します。 知ってる方も多いと思いますが、日でH

    資金力のないWeb系ベンチャーがHaskellを採用したらどうなったか - Qiita
  • HerokuにHaskellのアプリを公開する - Qiita

    2020年にはもっと便利な方法があるのでこちらの記事を参照してください HerokuにHaskellで作ったWebサービスを公開する簡単な方法 - Qiita Haskell on Herokuを使ってHerokuにHaskellのアプリを公開する方法を残しておきます。Haskell on Heroku は Halcyonを利用したHerokubuildpack です。 Haskellのアプリは依存ライブラリのビルドに時間がかかってしまい、Herokuへデプロイする時は15分制限に簡単に引っかかってしまうので工夫が必要です。Halcyonは別のサーバー(Amazon S3)に環境を保存しておくことでインクリメンタルビルドを可能にしてくれます。 始めに新しくHerokuのアプリを作り buildpack を設定しておきます。 $ heroku create -b https://gith

    HerokuにHaskellのアプリを公開する - Qiita
  • 継続モナドによるリソース管理 - Qiita

    継続モナドって何に使うんだ問題に対する一つの例。 リソース管理の問題 プログラミングをやっていると必ずまとわり付いてくるのがリソース管理の問題です。ここで指すリソースというのは、ファイルのハンドルだとか、ソケットだとか、排他処理のためのロックだとか、グラフィックのハンドルだとかそういう話で、GCのない言語だとメモリの管理もこれに含まれるでしょうか。 言うまでもなく、リソースを確保した後はしかるべきタイミングで確実に解放してやる必要があります。しかし往々にして、現実のプログラムではリソースの解放漏れが発生してしまいます。単に解放するコードを書き忘れると言うのが一番単純でしょうもない理由ですが、それでも、C言語のようにリソース解放のための特別な仕組みを持たない言語では、これを徹底するのも結構骨の折れることだったりします。それはともかく、もう少し高尚な悩みとしては、例外との組み合わせで発生する解

    継続モナドによるリソース管理 - Qiita
  • Haskellのビルドツール"stack"の紹介 - Qiita

    Stackとは? つい先日のことですが、Stackage界隈からstackというツールがリリースされました。リリースされたとはいえ、開発され始めたのがちょっと前のことですし、現在も盛んに機能が追加されているので、絶賛開発中であるとかそういったほうがいいかもしれません。 まだ開発の始まったばかりのツールなのに、なぜこんな紹介記事を書こうと思ったのかというと、このツールがHaskellの開発において極めて有用になることが確定的に明らかであって、すでに荒削りながらも、大変便利に使えているからなのです。そしてここで紹介することで、多くの読者の方に興味を持ってもらって、それで開発がさらに盛り上がっていくと嬉しいなあと、そう思った次第であります。 なお、stackの開発が始まる少し前に、stackage-cliを始めとするいくつかのツールがリリースされましたが、今後開発はstackに一化されるような

    Haskellのビルドツール"stack"の紹介 - Qiita
  • プログラミングHaskellのfoldr, foldlの説明が秀逸だった件 - あと味

    今年はHaskellを勉強しています。 土日などを利用して、すごいHを3〜4週間かけて読み終えました。時間かかった分、記憶の密度が低くて、まだ理解度は低いです。 新しい概念を学ぶ時は、同じテーマのを何冊か読んで、当に読みたかったを再度読み直すというのが自分の学習の方法として定着しているので、今は、プログラミングHaskellを読み進めています。 すでに「ふつうのHaskellプログラミング」は読み終えていましたが、改めて読むと、当に普通のプログラミングに感じたので、すごいHがかなり刺激的で、よくできたなんだと思います。読み直す時が楽しみであります。 題 さて、「プログラミングHaskell」の話に戻りますが、foldrとfoldlの説明の箇所が秀逸だと思ったので内容を紹介してみます。*1 fold関数は、他の言語でreduceとかinjectとか呼ばれている関数ですね。個

    プログラミングHaskellのfoldr, foldlの説明が秀逸だった件 - あと味
  • cabal sandbox + LTS Haskell - Qiita

    (2015-08-27 追記) この記事は無視して stack コマンドを使いましょう Haskellでプログラムを楽しむときに外部のライブラリを利用したくなることがある。cabal install コマンドを使えば ~/.cabal/ 以下に外部ライブラリをインストールして利用することができる。 外部ライブラリは他ライブラリの特定のバージョンに依存していることが多い。依存関係が衝突した場合、ライブラリ群を同時にインストールできないことがある。たとえばライブラリAがライブラリXのバージョン1に、ライブラリBがライブラリXのバージョン2に依存する場合には、AとBを同時に ~/.cabal/ にインストールすることはできない。 ひとつのプロジェクトから A と B に依存することはないが、ひとつのプロジェクトでは A に依存し、もうひとつのプロジェクトで B に依存したいことはあるので困る。こ

    cabal sandbox + LTS Haskell - Qiita
  • Haskellの単体テスト最前線 kazu-yamamoto/unit-test-example · GitHub

    #Haskellの単体テスト最前線 [To English] これはHaskell Advent Calendar 2012の5日目の記事です。 Haskellで作成したパッケージに対して、単体テストを書くための最新情報をお届けします。以下の記事では、Haskell Platform 2014.2.0.0 以降を使うことを前提とします。 ##要約 要点は4つです。 利用者に見せたい振る舞いは、doctest で書く 利用者に見せたくない振る舞いは、hspec で書く テストを自動化するフレームワークとしては Cabal を使う doctest でも hspec でも、純粋なコードに対しては、できるだけ QuickCheck などの性質テストを書く この記事で一番伝えたいのは、3) です。例題としては、Base64 という符号化を取り上げます。Base64 は知っていると仮定して話を進めます

    Haskellの単体テスト最前線 kazu-yamamoto/unit-test-example · GitHub
    unarist
    unarist 2015/04/11
    随時更新されてるからではあるのだけど、2012年のアドベントカレンダーが2014年のパッケージを前提としてるのじわじわくる。
  • GitHub - tanakh/generic-pretty: Pretty Printing for Generic data

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - tanakh/generic-pretty: Pretty Printing for Generic data
  • プログラマであるあなたが圏論を学んで得られる事、得られない事 - Creatable a => a -> IO b

    「Haskellと数学とちょびっと音楽」なんていうシャレオツなサブタイをブログに付けてるのは誰ですか? 俺だよー! 大体、Haskell関連のコミュニティに顔を出していると、 数学科出ましたーとか、物理専攻ですー、とか、そーいう人がわりと多いのですが、 僕は「勉強なんて出来ないんジャー・レッド」だったので、サブタイトルに「数学」なんて入れつつも、 数学の話はほとんど出来なかったりとか出来たりとか・・・結局Haskellの記事しか書いてないですね、はい。 ただ、どちらかというと、Haskellでも処理系どうのとか、パフォーマンス云々とか、 そういう話より型システムでどうやって抽象化するかーみたいな、そういう話のほうがおもしれーとか思ったりしたので、 気づいたら圏論なんかはガジガジしてまして、多少の自己流の知識があったりとかなかったりとかしてるのです。 純粋関数型やらHaskellやらがメジャ

    プログラマであるあなたが圏論を学んで得られる事、得られない事 - Creatable a => a -> IO b
  • Haskellでプレゼン資料を作ってみよう!! - Creatable a => a -> IO b

    gdgdと文章を読みたくない人のためにとっとと題済ませます。 ちゅーんさんがHaskell上でプレゼン用のスライドを生成するための言語内DSLを公開しました。 Hackage : http://hackage.haskell.org/package/takahashi サンプル兼ドキュメント:http://tokiwoousaka.github.io/takahashi/contents/20150213takahashi.html (ソースコード) Github:https://github.com/tokiwoousaka/takahashi 以上のURLを元によろしくやって頂ければ幸いです。 開発に至った経緯とか はいども、こころぴょんぴょんちゅーんさんです。 皆さん、プレゼンしてますか? プレゼンは大事ですよー、婚活と同じくらいには大事です。 というわけで、 イマドキのプレゼンテ

    Haskellでプレゼン資料を作ってみよう!! - Creatable a => a -> IO b
  • Haskell/Yesod を Stackage でインストールする - Qiita

    Haskell の web アプリケーションフレームワークである Yesod を、Stackage レポジトリからインストールする方法についてのメモです。理解不足から間違いもあるかも知れませんので、ご指摘ください。 Hackage レポジトリについて Hackage (Hackage: Introduction) は、Haskell で書かれたライブラリのパッケージのレポジトリであり、Ruby で言うと RubyGems (RubyGems.org | your community gem host) のようなものです。それらのパッケージは、Cabal-Install ツールでパッケージをローカルへフェッチし、インストールすることができます。 Cabal-Install について Cabal-Install (Cabal-Install - HaskellWiki) は、Haskell の

    Haskell/Yesod を Stackage でインストールする - Qiita
  • Stackage Server

    Stable Haskell package sets A distribution of compatible Haskell packages from Hackage that build together Stackage is a community project: how to add packages to Stackage stack makes using Stackage easy Latest releases per GHC version Stackage Nightly 2024-07-22 (ghc-9.8.2), a day ago LTS 22.30 for ghc-9.6.6, published 2 days ago LTS 22.27 for ghc-9.6.5, published 4 weeks ago LTS 22.20 for ghc-9.

  • Ekmett勉強会発表資料

    Sum and Product Types -�The Fruit Salad & Fruit Snack Example - From F# to Ha...

    Ekmett勉強会発表資料
  • Haskell/カリー=ハワード同型 - Wikibooks

    カリー=ハワード同型(Curry-Howard isomorphism)は数学の一見無関係に思えるふたつの領域、型理論と構造論理を結びつける実に驚くべき関係である。 導入[編集] これよりカリー=ハワード同型は単に C-H と表記する。C-H が示しているのは、定理の質を反映するような型を構築し、それからその型を持つ値を見つけさえすれば、どんな数学的定理をも証明することができる、ということだ。これは最初は極めて不思議に思える。型と定理にどんな関係があるというのだろうか?しかしながら、以下に述べるように、このふたつは非常に近しい関係にあるのである。はじめる前に簡単に注意しておくが、導入の章では error や undefinedのような 表示的意味論 が ⊥ である式の存在は無視する。これらはとても重要な役割を果たすのだが、これらについては後ほど別に考えることにする。また、unsafeCo

  • Haskellでコマンドラインアプリケーションを作る時の基本的な情報とTips - fujimuradaisuke's blog

    Haskellでコマンドラインアプリケーション(以下CLI)を作る時の基的な情報とTipsをまとめてみました。 Haskellは雰囲気で読める、しかしCLIはあまり作ったことが無い、って人が想定読者です。 この記事はHaskell Advent Calendar 2014の16日目のエントリです。 とりあえず何のサンプルコードも無く話を進めるのも雰囲気が伝わらないかなと思って、Gitリポジトリにあるファイルの中身を標準出力に出力するプログラムをls-moreという名前で作ってみました。 module Main where import Control.Monad import Data.Monoid import qualified Data.Version import Options.Applicative import Paths_ls_more (version) import

    Haskellでコマンドラインアプリケーションを作る時の基本的な情報とTips - fujimuradaisuke's blog
  • HaskellJP WikiをHerokuに上げるまで :: Igreque -> Info

    HaskellJP WikiをHerokuに上げるまで by Yuji Yamamoto on December 20, 2014 この記事は、 Haskell Advent Calendar 2014の12月20日の記事です。 業務連絡:HaskellJP WikiはHerokuにお引っ越ししました。 きっかけはHaskellJPのGoogle グループに、ある日突然現れた投稿でした。 すいません、、、http://wiki.haskell.jp/ をシャットダウンしようと思います それまでHaskellJP Wikiの管理をされていたmasterqこと岡部さんが、 HaskellよりもATSという言語に惹かれるようになったのをきっかけに、 HaskellJP Wikiの管理をやめることになってしまったのです1。 スタートHaskell 2の記録など、私にとっても思い出深いコンテンツが含

    unarist
    unarist 2015/02/01
    "dynoを起動するたびに元のリポジトリからgit pullし、Wikiが更新されるたびに元のリポジトリにgit pushする"
  • Haskellのlensの使い方 (基本) - みゆっきのにっき

    ekmett先生のlensに関して Lens'は便利に使えはするけど、Prism,Iso,Traversal,Foldみたいなのは触ったことがなかったので調べた。 Lensの利用 1 import Control.Lens して 1 2 3 4 5 6 >>> ("hello",("world","!!!")) ^. _2 . _1 "world" >>> ("hello",("world","!!!")) & _2 . _1 .~ 42 ("hello",(42,"!!!")) >>> ("hello",("world","!!!")) & _2 . _1 %~ map toUpper ("hello",("WORLD","!!!")) みたいに使う。優先順位は以下のようになっている: 1 2 3 >>> ("hello",("world","!!!")) ^. (_2 . _1) >>

    Haskellのlensの使い方 (基本) - みゆっきのにっき
  • 定理証明系 Haskell

    この記事は Haskell Advent Calendar 2013 および Theorem Prover Advent Calendar 2013 二十日目の記事であり、更にTCUGの新刊「Coqによる定理証明」の販促記事でもある。 型システム再考 Haskell は静的型付き言語だ。それだけでなく、強力な型推論や表現力の高い型システムを備えている。 型とは何だろうか。 こうした質問に対してよくある答えは、「値の種類を区別するためのタグ」になるだろうか。Int型は整数だし、Bool型は真偽値で、[Int]型は整数値リストを表す型だ。なるほど、値の種類を区別するものに見える。 しかし、この答えは間違ってはいないが、もっと相応しい云い方が出来るだろう。それは、「型は不変条件である」というものだ1。この言明は別に私固有の見方というわけではなく、ある程度の型レベルプログラミングをやった事のある人

    定理証明系 Haskell
  • こわくない Idris (1) - Ryusei’s Notes (a.k.a. M59のブログ)

    はじめに Idrisという、Haskellに似ていて、依存型 dependent type を持っている言語がある。依存型を持った言語なんて他にもあるのだけれども、Idrisは general purpose を謳っている。わざわざ汎用って謳っているあたり、依存型ってのはもっと色々に使えるものなんだぞって主張があるように思う。 そんなIdrisなんだけど、日語による文献はとても少ない。今のところ、Idrisをやろうって人はまず英語のチュートリアル読まなきゃいけない。僕はIdris初心者でまだIdrisらしいプログラミングがどんなものか分からないのだけれども、日語による学習ノートを残しておこうと思う。もしかしたらデタラメ書いてるかもしれないので、はてブかTwitter @mandel59で教えて下さい。 Idris Idris チュートリアル (英文) Programming in Id

    こわくない Idris (1) - Ryusei’s Notes (a.k.a. M59のブログ)