セカイノカタチ

世界のカタチを探求するブログ。関数型言語に興味があり、HaskellやScalaを勉強中。最近はカメラの話題も多め

Haskell

「第2期 第4回 H本読書会 in 秋葉原」を終えて

第2期 第4回 H本読書会 in 秋葉原 - H本読書会(Haskell本読書会) | Doorkeeper はい。第4回を無事開催することが出来ました。 今回は、年をまたぎ、新年初開催となったのですが、20名ぐらい(数えてない^^;)の方に参加していただき、非常にありがたいです。 …

プログラムを純粋に書けって言われたけど、どこまで純粋に書けばいいの?

今、関数型言語の流行により、プログラムを純粋に書くことが求められています*1。 そういわれて、「わかった、副作用のないプログラムを書くぞ!」と勇んで書き始めるとすぐにわかりますが、これがなかなか簡単なものではありません。 純粋な関数を定義する…

「関数プログラミング 珠玉のアルゴリズムデザイン」をScalaで実装してみる 第3章 その2

さて、前回の続きです。 「関数プログラミング 珠玉のアルゴリズムデザイン」をScalaで実装してみる 第3章 その1 - セカイノカタチ この章では、f (x,y) == z を満たす(x,y)を全て挙げる関数の設計について話題にしています。 一つの解き方として、鞍型探…

「関数プログラミング 珠玉のアルゴリズムデザイン」をScalaで実装してみる 第3章 その1

前回: 「関数プログラミング 珠玉のアルゴリズムデザイン」をScalaで実装してみる 第2章 - セカイノカタチ 関数プログラミング 珠玉のアルゴリズムデザイン作者: Richard bird,山下伸夫出版社/メーカー: オーム社発売日: 2014/11/12メディア: 単行本(ソフ…

Stateモナドがわかればモナドがわかる

この記事は、Haskell Advent Calendar 2014 23日目の記事です。 僕自身が、駆け出しHaskellerなのであまり難しいことは書けません。きっと中級以降の人には常識的な話題で「何を今更・・・何周遅れだよ(´・ω・`)」みたいな微妙な話ですが、お付き合いくださ…

「関数プログラミング 珠玉のアルゴリズムデザイン」をScalaで実装してみる 第2章

先日、 Scala Advent Calendar 2014 - Qiita で「関数プログラミング 珠玉のアルゴリズムデザイン」の第1章をScalaで実装してみましたが。味をしめて第2章もやってみたいと思います。 関数プログラミング 珠玉のアルゴリズムデザイン作者: Richard bird,山…

「関数プログラミング 珠玉のアルゴリズムデザイン」をScalaで実装してみる

Scala Advent Calendar 2014 - Qiita14日目の記事です。 昨日の記事は、 @gakuzzzz さんの play2-auth で OpenID とか Twitter OAuth とか OAuth2.0 とか でした。 さて、今日のネタです。。。 関数プログラミング 珠玉のアルゴリズムデザイン作者: Richard …

「第2期 第3回 H本読書会 in 秋葉原」を終えて

第2期 第3回 H本読書会 in 秋葉原 - H本読書会(Haskell本読書会) | Doorkeeper 第3回も無事終えることが出来ました。 内容については、id:shigemk2 さんが書いて下さってるので、こちらを参照ください(おい)。 第2期 第3回 H本読書会 in 秋葉原 第3章 #readh…

「第2期 第2回 H本読書会 in 秋葉原」でIntegralが気になった

前回のH本読書会*1にて、Integralという型クラスの説明があったのですが(P33)、上手く解説できなかったので調べてみた。 とりあえず、型の定義を。 Prelude> :i Integral class (Real a, Enum a) => Integral a where quot :: a -> a -> a rem :: a -> a -> …

「第2期 第2回 H本読書会 in 秋葉原」無事終えて

第2期 第2回 H本読書会 in 秋葉原 http://readhbon.doorkeeper.jp/events/17544## どんなかんじだったか?今回も、無事開催することができました。降りしきる雨の中、ご参加いただいた方々、お疲れ様でした。(__)2回目ですが、初めて来られる方も結構いて、…

「第2期 第1回 H本読書会 in 秋葉原」無事終えて

第2期 第1回 H本読書会 in 秋葉原 http://readhbon.doorkeeper.jp/events/16706参加者の皆様、お疲れ様でした。第2回以降もよろしくお願い致します。(_._) どんな感じだったか まず、自己紹介をぐるりと一周しました。いろんなバックボーンの方が集まってい…

Haskellの勉強会を再開することに

第2期 第1回 H本読書会 in 秋葉原オフィスが引っ越しして、落ち着いてきたので再び、H本を読む会を開こうと思った。前回、第一期は「ふつうのH本(ふつうのHaskell)」を読んだんだけど、絶版本にもかかわらず、そこそこ人が集まって、みんなでワイワイH本を読…

ソフトウェア開発とは、現実世界の複雑さをプログラムコードの難しさに置き換える作業だ

こんな記事に触発されて。富士通、業務プログラム開発支援ツール「Interdevelop Designer」を販売開始:ITpro Active・・・未だにこんな事やってるのか。正直、驚きと失望と倦怠感と怒りと哀れみと嘲笑がないまぜに押し寄せて、(・_・)こんな顔になりました。S…

Haskellを始めるにあたって読むべき3冊の本

Haskell advent calendar 2013 23日目の記事です。諸兄方のエントリーと比べて、非常にレヴェルの低い話になると思いますが、背伸びしてもしょうがないので身の丈にあった、話をしたいと思います。関数型プログラミング言語の関心が高まっているので、これか…

モナドを理解しにくい理由2

さて、前回書いた記事の反響が大きかったので、気を良くしているid:qtamakiです。まず、お詫びなのですが、前回の記事に大きな嘘があります。 前回の記事、そもそもモナドの説明じゃありません。 本当は、「IOモナドのしくみ」の解説でした。テヘ ボコッ ・・・…

モナドが解らない人へ、図解で絶対わかるモナドのしくみ

前置き みなさん、モナドって、わかりにくいですよね。 なので、図解することで解りやすく説明できるんじゃないかと、何回かモナドの図解を試みてきたのですが、むしろ複雑さが強調されてしまい残念な感じになってしまいました。過去の図解 モナドってなんだ…

implicit parameterを用いたFunctor型クラスをOptionで使う

さて、前回まででimplicit parameterを使ってHaskellの型クラス的なものを実装する方法は理解できた。Haskellの型クラスとScalaのimplicit parameterの対応について2しかし、最後にハットリクンのトホホ落ちよろしく、コンパイルエラーが出て解説を終了して…

Haskellの型クラスとScalaのimplicit parameterの対応について2

前回の続き。Haskellの型クラスとScalaのimplicit parameterの対応について 既存の型クラスに新たなインスタンスを追加する 前回の記事で、最終的に僕の中でimplicit parameterがスッキリとした形で記述出来たので大変満足している。| ´ - ω - ` |しかし、Ha…

Haskellの型クラスとScalaのimplicit parameterの対応について

Scalaには、「implicit parameter」という機能があります。これは、メソッドに対して暗黙的にパラメーターを付与するものです。この機能自体の説明は割愛します。暗黙的に知っているものとして以下の記事を書きます。で、この機能、どうやらHaskellの型クラ…

孤独のHaskellを読んで

孤独のHaskellこんな記事が目にとまり、例題("AABBCCC"を"A2B2C3"にする関数を書こう)がおもしろそうだったので、自分なりに実装を考えてみた。元記事では、トップダウンアプローチを採っているが、僕はそもそも解法を考えてから、実装する方法を採ってみた…

モナドの分解ふたたび

懲りずにモナドを分解していきます。以前にモナドを図解してみたんだけど、同じノリで今度は普通にソースコードベースで分解していきたい。前回の教本は「プログラミングHaskell」だったけど、今回は「すごいHaskell楽しく学ぼう!」から。早速、P335を見て…

Haskellのidっておもしろい

Haskellの記事です。Applicativeを勉強していて、このブログを読んだ。Applicative勉強中 2008年の記事なんで、何周周回遅れだよ。(´・ω・`) とかは、置いといて、記事中に、こんなコード。 ap :: (Monad m) => m (a -> b) -> m a -> m b ap = liftM2 id lif…

モナドを理解しにくい理由

先日モナドを悟った、id:qtamakiです。(´・ω・`)Haskellの勉強を始めて、ほぼ一年が経ちました。最近になってようやっと、モナドが何なのか把握してきた気がするのですが、ここまで理解するのにだいぶ時間がかかってしまいました。 そこで、現時点での理解を…

モナドってなんだよ!?全然わからないんで分解して図解してみた(´・ω・`)

勉強会に行ったり、ブログや本を読んだりいろいろしたけど、モナドってなんなんすかね。(´・ω・`)状態だった僕ですが、分解して、図解してみたら少しわかった気がするので、エントリーしてみる。「プログラミングHaskell」のP106によると、IOモナドとは、以…