タグ

haskellに関するsbg3のブックマーク (30)

  • Haskellの入門から中級者になるまでの指針 - Qiita

    プログラミング言語の学習は一般に大変である。 最初にどのようなことをすればいいのか、どのをよむべきなのか等疑問は尽きない。マイナーな言語で情報が少なければなおさらである。 この記事では諸事情でHaskellに入門することになった方にむけて、どのように勉強していくか、参考にすべきや記事を紹介する。 より良い指針にするためにも、指摘、感想等はコメントや私のTwitterアカウント(@Lugendre)に投稿して頂けるとありがたい。 入門〜初心者 環境構築 まずどんなプログラミング言語においても、プログラミングをする環境が必要である。Haskellにおいては Stackと呼ばれるツールをインストールすることによって、コンパイラ(GHC)、モジュールのインストール、ビルドなど自動でやってくれるようになるので、とりあえず脳死でStackをインストールしておけば良い。 以下の@igrepさんの記事

    Haskellの入門から中級者になるまでの指針 - Qiita
  • Haskellによる関数プログラミングの思考法 - asciidwango

    関数プログラミングの考え方・思考法を学ぶ! 関数プログラミングが最高の技法である理由は、関数プログラムを数学的に考察できる点にある。書を読むことで、関数プログラミングの質を身に着け、Haskellの真の能力を理解できるだろう。 Richard Bird 著 山下伸夫 訳 定価:3,024円(体2,800円) 発売日:2017年2月28日 形態:B5変型版(336ページ) ISBN:978-4-04-893053-6 Amazonで購入する サポート/追加情報 ◆関数プログラミングの思考法を伝える教科書! 書では、「関数と関数適用を使ってプログラムを構成する」「数学で用いる 単純な記法で問題を簡潔明快に記述する」「単純な数学を基盤とし等式論証を用いてプログラムの性質に関して証明やプログラム運算する(意味を変えることなくプログラムを変換する)」ことで、意図どおり正しく合理的な時間で動作

    Haskellによる関数プログラミングの思考法 - asciidwango
  • Amazon.co.jp: Parallel and Concurrent Programming in Haskell: Marlow, Simon: 本

    Amazon.co.jp: Parallel and Concurrent Programming in Haskell: Marlow, Simon: 本
  • Stricter Haskell - www.kotha.netの裏

    なにこれ Haskellは素敵な言語だと思うが、デフォルトが遅延評価であることに起因する欠点のせいで魅力を50%くらい損なっているように見える。具体的にはサンク構築/評価のオーバーヘッドとメモリリークで、特にメモリリークの実害は大きい。ならば必要な所以外で評価を遅延させないコーディングをすれば、うっかりメモリリークを作ってしまう確率を減らせるに違いないというのがこの記事の主旨。 既に発生してしまったメモリリークに対処するのは別の問題で、有効な方法も全然違うだろう。 原則 特にそうしない必要のない限り、サンクを作ったらすぐ壊す。つまり、 let x = f y と書く代わりに、 let !x = f y と書き、 return (f x) と書く代わりに return $! f x と書く。 評価の責任 基的に、サンクを作った者がそれを壊す責任を負うことにする。つまり、関数引数は呼び出し側

    Stricter Haskell - www.kotha.netの裏
    sbg3
    sbg3 2014/02/22
  • Real World Haskell の古いところ - あどけない話

    Real World Haskell の内容が古くなってきたので、どこが古いかとか、それに変わる新しいものは何とか、まとめたいと思う。 Real World Haskell―実戦で学ぶ関数型言語プログラミング 作者: Bryan O'Sullivan,John Goerzen,Don Stewart,山下伸夫,伊東勝利,株式会社タイムインターメディア出版社/メーカー: オライリージャパン発売日: 2009/10/26メディア: 大型購入: 8人 クリック: 245回この商品を含むブログ (76件) を見る 1章 始めましょう 今でも通用する。 2章 型と関数 今でも通用する。 3章 型を定義し、関数を単純化する 今でも通用する。 4章 関数プログラミング ghc に --make オプションはもう不要。 5章 ライブラリを書く 5.14節では、"runghc Setup build" の

    Real World Haskell の古いところ - あどけない話
  • 書評: Parallel and Concurrent Programming in Haskell - あどけない話

    Parallel and Concurrent Programming in Haskell: Techniques for Multicore and Multithreaded Programming 作者:Marlow, SimonO'Reilly MediaAmazon このには、その名が示すように Haskell (正確には GHC(Glasgow Haskell Compiler))が提供する並列(parallel)/並行(concurrent)プログラミング技術がまとめられている。著者は、GHC の主要開発メンバーである Simon Marlow 氏である。 彼は、長年、並列/並行の研究に携わっており、並列ガーベジコレクションを持つ GHC RTS (Runtime System) やいくつかの並列/並行ライブラリを実装している。そのため、並列/並行プログラミングには、驚く

    書評: Parallel and Concurrent Programming in Haskell - あどけない話
  • Haskell ポインタープログラミング - あどけない話

    早いもので、今年も12月25日となりました。メリークリスマス! うちのちびっ子怪獣たちも、サンタさんに書いた手紙通り、レゴをもらってご満悦のようです。 そして今日は、Haskell Advent Calendar 2013 の最終日でもあります。 Haskellらしい? 「純粋なコードで構成するのが Haskell らしいプログラムであり、IOはHaskellらしくない」という発言をよく耳にします。 確かに、命令プログラミングの世界から関数プログラミングの世界にやってきたとしたら、 不変データを使った永続データプログラミング 部品プログラミング 純粋なコードに対する性質テスト などには、衝撃を受けることでしょう。 でも、純粋なコードは、Haskell の世界の半分でしかありません。そこは、コンパイラーという保護者に守られた未成年の世界です。Simon Peyton Jones さんの言葉を

    Haskell ポインタープログラミング - あどけない話
    sbg3
    sbg3 2013/12/26
  • 社内Haskellチュートリアルのススメ | GREE Engineering

    こんにちは。インフラストラクチャ部の竹辺(@beketa)です。 このエントリはGREE Advent Calendar 2013 12日目の記事です。 1. グリーでのHaskellプログラマ採用 Haskellを導入する企業が増えているようです。最近国内のメディアで紹介された事例だけでも Tsuru Capital様: http://itpro.nikkeibp.co.jp/article/Watcher/20131003/508622/ NTTデータ様: http://itpro.nikkeibp.co.jp/article/NEWS/20131126/520642/ の複数があり、すっかり実用的なプログラミングとして定着した感があります。 弊社でも2012年の中ごろから複数のプロジェクトでHaskellを使い始めており、昨年からは一部の商用サービスでもHaskellで開発したミド

    社内Haskellチュートリアルのススメ | GREE Engineering
  • Haskell使ってみた | GREE Engineering

    こんにちは。インフラストラクチャ部の池原です。 このエントリはGREE Advent Calendar 2013 13日目の記事です。 グリーではミドルウェアの開発にHaskellを用いています。日は、C/C++Javaの経験はあるがHaskellは初めてだった私が、Haskellをミドルウェア開発に導入した際に戸惑った事をいくつかご紹介します。 私がHaskellを使い始めたのは1年半ほど前です。最初はOCamlに興味を持っていたのですが、すでに社内で利用者がいたこともあり、諸般の事情からHaskellを選択することにしました。 Haskellに対する私の第一印象はこのような感じでしょうか。 型システムが強力なので、つまらないバグでサービスを止める事態を避けられる。 他の関数型言語と比べて読みやすい(カッコをあまりつかわなくてもよい)。 Posix関連のライブラリが充実しており、シ

    Haskell使ってみた | GREE Engineering
  • Haskell For Kids! Introduction

    In a couple weeks, I’ll be posting a blog entry once a week called “Haskell for Kids”.  This is an introduction to what that’s all about. What Is It, and Why? I have the excellent chance this school year to teach Haskell to a group of children aged 12 to 13 years old!  I’m very excited about it.  I’m teaching the class as part of the Little School on Vermijo, which is a neighborhood school taught

    Haskell For Kids! Introduction
  • Haskellによるライブコーディングを配信『Haskell Live』 | 100SHIKI

    マニアックだが、プログラミングがらみは紹介せざるを得ませんな・・・。 というわけでHaskell LiveではHaskellのライブコーディングを配信しているようだ。 まだ第一回が始まったばかりだが、15分ほどをかけてチェスのエンジンを開発する様子を見せてくれる。 YouTubeの動画ではあるが、ちと文字が小さいのでフルスクリーン&最高画質で見ることをおすすめする。 またソース自体はGithubにあるのであわせて見るといいだろう。 こうしたライブコーディングのサイトはもっと増えるといいですな。

    Haskellによるライブコーディングを配信『Haskell Live』 | 100SHIKI
    sbg3
    sbg3 2012/08/01
  • HakyllとpandocとMighttpdでサイトを作った話 - 純粋関数空間

    このページについて ページのフッタに書いてあるので、お気付きの方もいらっしゃるかと思いますが、 このページは Hakyllと Pandocと Mighttpdにて運用されています。 完全なソースコードを https://github.com/tanakh/tanakh.jp から参照できます。 HakyllとはHaskellによる静的ページ生成ツールで、 Jekyllにインスパイアされて作られたものだそうです。 JekyllがRubyによって書かれ、Rubyによってページの構造を記述するのに対して、 HakyllはHaskellによって書かれ、Haskellによってページの構造を記述します。 Pandocとはいろいろなドキュメントフォーマットのコンバータです。 Haskellで書かれています。さすがにもうHTMLを手で書きたくはない、 かついろいろなブログの独自のフォーマットなんて覚えてい

  • Pandoc - index

    If you need to convert files from one markup format into another, pandoc is your swiss-army knife. Pandoc can convert between the following formats: (← = conversion from; → = conversion to; ↔︎ = conversion from and to) Lightweight markup formats ↔︎ Markdown (including CommonMark and GitHub-flavored Markdown) ↔︎ reStructuredText → AsciiDoc ↔︎ Emacs Org-Mode ↔︎ Emacs Muse ↔︎ Textile → Markua ← txt2t

  • Hoogle(the Haskell API Search Engine)

    Welcome to Hoogle Links Haskell.org Hackage GHC Manual Libraries Hoogle is a Haskell API search engine, which allows you to search the Haskell libraries on Stackage by either function name, or by approximate type signature. Example searches: map (a -> b) -> [a] -> [b] Ord a => [a] -> [a] Data.Set.insert +bytestring concat Enter your own search at the top of the page. The Hoogle manual contains mor

  • エラー処理を書いてはいけない

    エラー処理を書いてはいけない田中英行 tanaka.hideyuki@gmail.com 2011/12/08 @PFIセミナー 自己紹介田中英行 (@tanakh, http://tanakh.jp) PFI社でプログラマやってますJubatuspficommon検索エンジンのコアエンジンHaskell愛好家msgpack / rpc / idlpeggy (パーザジェネレータ & QQ w/ AQ)Shu-thing (シューティングゲーム) / (Monadius メンテナ)今気になるパッケージは monad-controlLearn you a Haskell 鋭意翻訳中 (春頃発売予定) エラー処理を書いてはいけない日の概要エラー処理を抽象化しようというお話です 現在のエラー処理の抱える問題どのように解決するのか実際の例エラーは処理しなければならない エラー処理を書いてはいけな

  • Haskellの講義に関するQ&A - あどけない話

    岡山大学で、関数プログラミングの講義を一コマ担当しました。資料は、函数プログラミングの集いで使った関数プログラミングの道しるべを流用しました。ちゃんと用意しなくて、講義を受けた学生には申し訳ないです。 講義内容に関して質問を頂きました。同じような疑問を持つ人も多いと思いますので、担当教官の許可を得てここに公開します。 永続データプログラミングの意義は分かったが,破壊しないと効率が悪いのではないですか.配列のような構造が世の中には多い気がします.メモリは足りなくなりませんか. 基的に永続と呼ばれているデータは、共有の効率が高く、しかも不要になった部分はすぐに GC に回収されます。また、GHC の GC はすごく優秀であることが知られています。 Haskell では、下位のレイヤーではデータを破壊できて、たとえば固定長のバッファーを使い回すといったことも可能です。ただ、それは普通のプログラ

    Haskellの講義に関するQ&A - あどけない話
  • InfoQ: いま日本で、関数プログラミングが熱い 「函数プログラミングの集い」レポート

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    InfoQ: いま日本で、関数プログラミングが熱い 「函数プログラミングの集い」レポート
  • Haskellの文法(分岐編) - あどけない話

    僕が Haskell を学び始めた頃、Haskell の文法はすんなりとは頭に入ってきませんでした。もともと僕はプログラミング言語の学習能力が低いので、僕だけかもしれませんが、「はじめからこう言ってもらえれば分かったのにぃ」ということを書きます。 はじめの一歩 分岐は case で書きます。以下に Maybe a に対する例を書きます。 case mx of Just x -> ... Nothing -> ... 念のため、Maybe a の定義も見てみましょう。 data Maybe a = Nothing | Just a 列挙されているデータ構成子を case に列挙できることが分かるでしょう。このように、case でマッチできるのは、データ構成子で表現されたパターンになります。 ワイルドカード たとえば、以下のような型を定義したとします。 data Foo = A | B | C

    Haskellの文法(分岐編) - あどけない話
    sbg3
    sbg3 2011/08/30
  • Haskell から見た node.js - あどけない話

    誤訳 以前、「サーバサイドJavaScriptのNode.js、最初はCやHaskellを検討し失敗。開発者ライアン・ダール氏へのインタビュー」という記事が twitter で話題になっていました。 ―― なぜJavaScriptを選んだのでしょう? ダール氏 実は最初は違いました。最初はC、Lua、Haskellなどで失敗していました。そんなときV8(Chromeが採用しているJavaScriptエンジン)に気がついて、やろうとしていることに対してJavaScriptが完璧な言語だと突然ひらめいたのです。 ただでさえ、Haskell は遅いと誤解されているのに、このような悪意さえ感じらえる訳だと、さらに誤解が深まりそうです。原文にはこう書かれています。 Dahl: Originally I didn’t. I had several failed private projects doi

    Haskell から見た node.js - あどけない話
  • Haskellの開発ツール (2011年版) - あどけない話

    Haskell開発に関係するツールをとりとめもなく列挙してみます。 エディタ/IDE 僕は、Emacs と haskell-mode と ghc-mod を組み合わせて使っています。haskell-mode は、行頭揃えの機能がしょぼいので、作り直したいと思っています。 IDE のバックエンドとしては、scionがありますが、使ったことがないので説明できません。(僕は ghc-mod で十分だと思っているので。) Leksah とか yi とかも聞きますが、使ったことがないので知りません。(いや、yi はちょっと使ったことがありますけど。) 興味のある人は自分で調べて下さい。 マニュアル 関数のマニュアルが読みたくなったら、GHCについてくるモジュールの一覧とhackageDBから探して下さい。ghc-mod を使っていれば、一発でブラウザに表示できます。 探すのが面倒なら、google

    Haskellの開発ツール (2011年版) - あどけない話
    sbg3
    sbg3 2011/05/30