HaskellのウェブアプリケーションフレームワークYesodの入門書! 『Haskellで作るWebアプリケーション 遠回りして学ぶYesod入門』発行 技術書典シリーズ、8月の新刊
HaskellのウェブアプリケーションフレームワークYesodの入門書! 『Haskellで作るWebアプリケーション 遠回りして学ぶYesod入門』発行 技術書典シリーズ、8月の新刊
Lensにほとんど触れたことのない人にはこちらの記事がオススメです:Lensで行こう! - Just $ A sandbox Haskellでもオブジェクト指向をしましょう! Haskellは直接オブジェクト指向的な機能を提供してはいませんが、我らがLensの力を借りることでオブジェクト指向的な設計を意識したコーディングが可能です。 今回利用するのは主に以下のモジュールです。 Control.Lens.Lens Control.Lens.Getter Control.Lens.Setter Control.Lens.TH Lensのおさらい Lensを使ったことのある人にはおなじみだと思いますので、特に解説はしません。 type Lens s t a b = forall f. Functor f => (a -> f b) -> s -> f t -- Lens型(GetterやSett
HaskellにおけるIOモナド(IO a型)とSTモナド(ST s a型)について整理してみました。 IOの定義から知るST IOモナドの考え方についての原論文に相当する「Lazy Functional State Threads」においては、IOの定義は newtype IO a = ST RealWorld aのようにST型を直接使用して定義されるものとして説明されています。ただ、「IO inside」によれば、GHCのライブラリ実装においてIO aの定義は newtype IO a = IO (State# RealWorld -> (# State# RealWorld, a #))だそうで直接STを使ってはいません。後者のは正格タプル非ボックス化タプルを使ってます(知らん!)。 まあ、Haskell仕様ではIO aと関数仕様が定義されているだけで=の右側は実装依存というわけなの
intro Haskell 勉強中なんですが、なんか仕様やらばかりやってるのも飽きてきたので、 Web アプリを作ってみようと思い、噂の Yesod を試してみました。 とりあえず、環境作りとチュートリアルまで。 環境づくりはいろいろハマった。。 YBlog - Haskell web programming インストール とりあえず Haskell Platform から。 Download Haskell Mac なのでインストーラで入れました。 結構サイズが大きいですね。 インストールすると、$HOME/.cabal/bin にパスが通り Haskell 用パッケージ管理システムである cabal が使えるようになります。 $ cabal updateyesod を入れる方法が quickstart と tutorial で2つ出てきた。 $ cabal install yesod-
Xcodeのインストール Haskell処理系をインストールする前にXcodeが必要なのでAppStoreからXcodeをインストール。 軽量版のCommand Line Tools for Xcodeでも構わないみたいですが、まぁXcodeはあって困らないので一式入れておきました。 現時点の最新版はXcode 5.0.2でした。 「Xcode」をMac App Storeで インストールした後、一度Xcodeを起動してライセンス条項に同意しておきます。 Haskell Platformのインストール GHCコンパイラ単体でインストールするよりも、周辺ツール類もまとめて一式入れてくれるHaskell Platformを入れた方が便利なようなので、こちらを入れる。 Haskell Platformのインストーラを以下からダウンロード Haskell Platform for Mac OS
We have permission to import material from the Haskell arrows page. See the talk page for details. Arrows, like monads, express computations that happen within a context. However, they are a more general abstraction than monads, and thus allow for contexts beyond what the Monad class makes possible. The essential difference between the abstractions can be summed up thus: Just as we think of a mona
After working on a few projects where used C# and Domain Driven Design (DDD), I realized that there are some nice benefits about applying the ideas behind DDD in a software project. I started to wonder if we could apply the ideas from DDD in Haskell. This post explores a very simple Haskell application (for demonstration purposes) to see how the ideas of DDD fit in with Haskell. Another question I
IntelliJにHaskellプラグインはあるのですが残念ながらIDEA11までしかサポートされていないので最新のIntelliJでは動きません。 ですが最近、開発サイトのソースにIDEA12とGHC7.4.2対応のコードが入ったので近々リリースされるかもしれません! それまで待てないので勝手ビルドを作りました。 勝手ビルドはr283をベースに以下を変更しています。 ビルドファイルの微修正 Mac版はJava7でまともに動かないためJava6のAPIに修正 また動作確認した環境は次の通りです。 Mac OS X 10.8.3 Intellij IDEA 12.1.2 Haskell Platform 2012.4.0.0 インストール方法と使い方は開発サイトのWikiが参考になりました。 2013/12/12 追記 r289をベースにIDEA12用とIDEA13用をバイナリを追加しました
日本語でArrowの説明があまり見付からなかったので、Haskell/Understanding arrows - Wikibooks, open books for an open worldを読んで理解したつもりのメモ。オリジナルの図を見ながらだと分かりやすいかも。誤り・間違いなど、乞うご指摘。 b->cな関数をArrowなるからくり箱に入れると、 (Arrow a) => a b c こんな型になる。型パラメタが、引数のbと返値のcのふたつ。 Monadは、値をからくり箱に入れたもの。からくり箱は基本的に(ヘンな)値。 Arrowは、関数をからくり箱に入れたもの。からくり箱は基本的に(ヘンな)関数。 arr :: (b -> c) -> a b c Monadでは、値をからくり箱に入れる関数returnがある。 Arrowでは、関数をからくり箱に入れる関数arrがある。 (>>>)
※これはHaskell Advent Calendar 2012の12/12分の記事です。 こんにちわ、Perlのプログラマの@hirataraです。関数型言語はまともに使ったことがないので、命令型言語の話を書きます。 Haskellでのふつうの"関数" Haskellは純粋関数型言語なので、例えば、add1 :: Int -> Intのような型の関数で副作用を発生することはできません。ここでいう副作用とは、ログを出力したりネットワークにアクセスしたりといったoutputだけではなく、ファイルを読み込んだり環境変数を参照するといったinputも含みます。add1は数学の関数と同じように振る舞います。もっときつい言い方をすれば、add1は単なる辞書(Dictionary or Map or HashTable, etc.)のように、キーに対して決まった値を返すような働きしかしません。(ただし
独習 Scalaz これまでいくつのプログラミング言語が羊の衣を着た Lisp に喩えられただろうか? Java は馴染み親しんだ C++ のような文法に GC を持ち込んだ。それまで他にも GC を載せた言語はあったけども、現実的に C++ の代替となりうる言語に GC が載ったことは 1996年には画期的に思われた。やがて時は経ち、人々は自分でメモリ管理をしないことに慣れていった。JavaScript と Ruby の両言語もその第一級関数 (first-class function) やブロック構文を持つことから羊の衣を着た Lisp と呼ばれたことがある。S式の同図像性がマクロに適することから Lisp系の言語はまだ面白いと思う。 近年の言語はもう少し新しい関数型言語から概念を借りるようになってきた。型推論やパターンマッチングは ML にさかのぼることができると思う。時が経てば、人
Haskellのクラス Haskellにクラスという概念があるのだけど、いまいちつかめなかたので調べてみた。 まだ知識が浅いので間違いがあるかもしれないが、現段階の理解をここにメモしておこうと思う。 自分でクラスを作る Haskellでいうクラスとは、「引数の型によって動作を変えるような関数」を集めたものらしい。 -------------------------------------------------------------------- -- クラス定義 -------------------------------------------------------------------- class Hoge a where foo :: a -> String -- fooは何かを受け取ってStringとして返す これはひとつしか関数を持っていないHogeというクラスである
来年も作りたい!ふきのとう料理を満喫した 2024年春の記録 春は自炊が楽しい季節 1年の中で最も自炊が楽しい季節は春だと思う。スーパーの棚にやわらかな色合いの野菜が並ぶと自然とこころが弾む。 中でもときめくのは山菜だ。早いと2月下旬ごろから並び始めるそれは、タラの芽、ふきのとうと続き、桜の頃にはうるい、ウド、こ…
Haskell Advent Calendar 2011 への参加記事です。ふだん emacs でコードを書いているプログラマが Haskell を使ってみようと思ったときに、10 分でそれなりの環境構築するための、便利な手順書となることを目指して書きました。~/.emacs や ~/.emacs.d/init.el などの設定ファイルは、dot.emacs と表記しています。 Haskell の環境構築 Haskell 自体の環境構築の説明はこの記事の範囲外ですが、前提ですので、信頼できそうな説明へのリンクを載せておきます。 トラビスさんの『Haskell Platform インストール Linux編』 shelarcy さんの『Haskell Platform インストール Mac編』 tanakh さんの『Haskell Platform インストール Windows編』 ただし、私
■ [Haskell] The Typeclassopediaを訳しました The Monad.ReaderのIssue 13に掲載されたThe Typeclassopediaという記事が、Functor, Monad, Monoid, Applicative, Foldable, Traversable, Arrowといったような型クラスについて良くまとまっていて、そのあたりを知りたい時の取っ掛かりになりそうだったので翻訳してみました。 作者のBrent Yorgeyさんからも許可がいただけたので公開します。翻訳に慣れていないので変な日本語(特に専門用語の日本語訳はかなり怪しい)があったり、そもそも間違っていたりするかもしれませんので、何か見つけたらコメントを頂けると助かります。 ■ [Haskell] The Typeclassopedia by Brent Yorgey <first
I've used both Haskell and Scala for some time now. They are both excellent and beautifully designed functional programming languages and I thought it would be interesting to put together a little comparison of the two, and what parts I like and dislike in each one. To be honest I've spent much more time developing in Scala than Haskell, so if any Haskellers feel unfairly treated please write a co
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く