タグ

haskellに関するjazzanovaのブックマーク (14)

  • 第3回 mapからモナドを理解する

    今回は「モナド(monad)」について説明します。モナドはHaskellの重要な特徴の一つなので,名前くらいは聞いたことがある人が多いでしょう。ただ,「モナドは難しい」という声もよく聞きます。 モナドとは一体なんでしょうか。前回,「HaskellはIOを取り扱うためにモナドと呼ばれる特別な仕組みを使用することで有名です」と書きました。Haskellは遅延評価を行うため,プログラマが処理の順番を確実に指定することができず,そのままでは入出力の処理には不向きです。モナドを使えば制御構造を導入できるため,この問題を解決できます。前回でいえば,(IO a -> IO a)にマッチする関数――finallyやprintThenAdd――を定義している部分がモナドに相当します。また,GHCiのプロンプトにもモナドが使われています。このように入出力操作を行うモナドの代表格が「IOモナド」です。ライブラリ

    第3回 mapからモナドを理解する
  • 最速インターフェース研究会 :: Haskell風にJavaScriptを書く

    ていうのをだいぶ前に作ったんだけど、コードがごちゃごちゃで何やってるか自分でもよくわかってなかったのでちょっと整理して公開。フィボナッチ数列を求めるのに大変便利です。 http://la.ma.la/misc/js/haskell/ 関数の定義を記述すると、再帰処理でごにょごにょやって求めてくれる関数を生成します。メモ化もします。色々いじってたらなんとなく出来た。あんまり細かいツッコミされても困る。 実際のところJavaScriptは再帰処理をたくさんさせるとすぐにスタックオーバーフローで止まってしまうので使い物になりません。数を大きくすると即死したりするので注意が必要です。タイマーを使って再帰処理させるとかトリッキーなことをすれば回避することもできるのだけれど面倒くさい。 遅延評価っぽくなっていて、 // 代入はできる test = ack(100,100); // アッカーマン関数(1

  • hawklab.jp

    このドメインを購入する。 hawklab.jp 2019 Copyright. All Rights Reserved. The Sponsored Listings displayed above are served automatically by a third party. Neither the service provider nor the domain owner maintain any relationship with the advertisers. In case of trademark issues please contact the domain owner directly (contact information can be found in whois). Privacy Policy

  • ふつうくさく、汗臭くないHaskell本 : 404 Blog Not Found

    2006年06月01日01:00 カテゴリ書評/画評/品評Lightweight Languages ふつうくさく、汗臭くないHaskell タイトルは日拙宅にて行われた「素人くさいSICP読書会」からインスパイヤされたもの。 ふつうのHaskellプログラミング 青木 峰郎 実はこの読書会のメンバー、「素人くさい」が素人と呼ぶにはあまりにGeekくさい人々ばかりなのだ。 書の「ふつう」は、そんな「ふつう」だ。 もし「入門Haskell」が日におけるHaskellの元祖なら、こちらは家ともいえるかもしれない。その期待の高さは、発売前にしてサポートページがこれほどはてブされていることからもわかる。 確かに、期待に背かない、素晴らしい出来だった。 まずHaskellの鬼門ともいえる入出力のスタイルに習うより慣れ、Haskellへの恐怖心が和らいだところから徐々にHaskellの確信

    ふつうくさく、汗臭くないHaskell本 : 404 Blog Not Found
  • HaskellのMonadをJavaScriptで実装するとしたら

    論理面も怪しいし、利用してるAPIも適当なんでアレで動くものじゃないですが、大枠だけ書いてみるテスト。 参考はParsecですが、状態管理はだいぶ省略してます(特にエラー情報)。 http://www.cs.uu.nl/people/daan/download/parsec/parsec.html http://www.lab2.kuis.kyoto-u.ac.jp/~hanatani/tmp/Parsec.html あと以下のPPTは、関数型なパーザーがどういう仕組みかわかりやすいかもしれない Programming in Haskellの8章: http://www.cs.nott.ac.uk/~gmh/chapter8.ppt (function (){ var PState = { source: ""; index: 0; result: null; }; var Parser

    HaskellのMonadをJavaScriptで実装するとしたら
  • 『ふつうのHaskellプログラミング』サポートページ

    $Id: index.html,v 1.9 2006/06/01 16:35:13 aamine Exp $ [ 正誤表 | 書誌情報 | 詳細目次 ] [ SBCr | Amazon ] リスト処理・文字列処理の基礎からモナド、パーサコンビネータまで。 ふつうのプログラマに贈る関数型言語入門。 サポート情報 正誤表 GHC 6.4.2 のダウンロード [www.haskell.org] LazyLines のダウンロードとインストール サンプルコード (オンライン) サンプルコードのダウンロード (.zip) サンプルコードのダウンロード (.tar.gz) リファレンスマニュアル検索ツール href 質問や間違いの指摘などはメールで aamine AT loveruby.net (AT は @ に置き換え) までお願いします。 書誌情報 書名

  • 檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」

    気まぐれと偶然となりゆきで、ここ2,3回はモナドを話題にしました。googleで「モナド」を引いてザッと眺めると、「モナドはむずかしいー」とか「モナドで挫折した」みたいな雰囲気が感じられて、説明芸人の血が少し騒ぎましたね。「なら、予備知識ゼロでモナドの説明をしてやろうじゃねーか」と。 タイトルはだいぶ煽っちゃった…… けど、ハッタリじゃないつもり…… けど、実際はどうかな? ※印刷のときはサイドバーが消えます。 内容: とりあえず、あたりさわりなくモナドの来歴を紹介する こんな課題を考えてみよう:副作用付き計算 カウントアップする関数達 カウントアップしたい意志を戻り値で伝える それでは、いったい誰がカウントアップをするのだ 関数の引数の型をCountup型にまで拡張する そして、これがモナドだ とりあえず、あたりさわりなくモナドの来歴を紹介する 今からここで説明する「モナド(monad)

    檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」
  • 思いて学ばざれば則ち殆うし - sumiiのブログ

    あるところに同じようなことを(ほとんど成り行きで)書いたのですが、重要な問題のような気がしてきたので、こっちにも書いてみる。 一般に、関数型言語やプログラミング言語(および計算機科学、ないし任意の専門)についての情報は、 一般書・一般誌、Webやメーリングリストやブログ 教科書・専門書 論文 口頭での議論(学会発表や質疑応答、グループのミーティング、部屋での会話) などで交換されます。 で、一般に情報の「ディープさ」は上から下へ行くほど濃くなると思うのです(少なくとも僕の専門分野ではそう)。そのごく一部である1.だけ(しかも日語onlyで)「勉強」していろいろと議論するのは、(何もしないよりは良いのかもしれませんが)非常に危険です。その危険をちゃんと意識していればno problemですが。「高速道路」の話と同じことかも。 たとえば、日のネット(?)では今になって妙に持ち上げられている

    思いて学ばざれば則ち殆うし - sumiiのブログ
  • 人力検索 - 関数型言語(プログラミング言語Scheme, Haskellなど)を勉強しようと思っています。 関数型言語の勉強方法

    関数型言語(プログラミング言語Scheme, Haskellなど)を勉強しようと思っています。 初心者にも関数型言語のメリットや考えかたがスラスラ分かる勉強の材料を教えてください。 言語の習得よりも、関数型言語の考え方の習得に重きを置いています。 例えば - このを読め - このサイトを読め のように、入門から実用レベルまできちんと筋の通ったものをお願いします。 ちなみに 以前Schemeを勉強しましたが末尾再起辺りでなんとなくうやむやになってしまいました。 あと「計算機プログラムの構造と解釈」は僕には難しすぎでした。

  • 関数型言語の勉強方法について - higepon blog

    id:higepon:20060330:1143714380で関数型言語の勉強方法について人力検索で質問しました。 その結果、たくさんの回答(コメント欄での回答や、飲み会でのアドバイスも含む)をいただきました。ありがとうございます。 質問自体は単純で、逆に回答する立場からすると範囲が広すぎてとても答えづらいものだったと思います。 その中でも特に印象に残り、質がとても高いと感じた回答の一部を引用したいと思います。 id:practicalschemeさんによる回答です。(全文はhttp://q.hatena.ne.jp/1143714236#a507995)。 なかなか難しい質問です。一冊あるいは一サイト、決定版と言えるようなものは思い当たりません。しかし関数型言語やそのアプローチについては最近関心が高まりつつあるようで、ギャップを埋める入門書が徐々に出てくると思われます 略 [とっかかり]

    関数型言語の勉強方法について - higepon blog
  • Pugsを読む。:未来のいつか/hyoshiokの日記

    Haskellを勉強するためにPugsのソースを読むというのは、Cの勉強をするためにUnixのカーネルの読むようなものだ。いいねいいね、この主客転倒ぶり。*1 Pugsのホームページから、Downloadをクリックして、http://search.cpan.org/dist/Perl6-Pugs/へ。最新コードは下記の最初に公開されたコードに比べてかなり複雑化している。最初に公開された昔のコードは随分シンプルだ。で、10ファイルしかない。 抽象構文木あたりから行くのがいいのではないだろうか?特に根拠はないけど。 Haskellの文法書(翻訳)。入門書などを参考にする。 *1:Lionsの(Lions’ Commentary on UNIX (Ascii books))はCのいい教科書でもある。 Cでどのように表現するかという勉強になるしね。

    Pugsを読む。:未来のいつか/hyoshiokの日記
  • 『入門ハスケル』これはなんか売れそうなきがしりんぐ - in between days

    YAPCの会場でひっそりと話題沸騰。先を越された版元多し。 入門Haskell―はじめて学ぶ関数型言語 作者: 向井淳出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03メディア: 単行購入: 3人 クリック: 94回この商品を含むブログ (138件) を見る ところでYAPCはガイジンのスピーカーもみんな一枚のシートあたりの文字数が少なくて 「高橋メソッドの浸透ぶりに驚異した。」 とmixiに書いたらオライリージャパンの某氏に 「訳したのを入れ込みやすいようにとかねw」 と返された。 なるほど。 同時通訳を諦めてPPTに日語字幕付けたのは正解だと思った。 英語がわかんなくてもなんとなくなんの話をしてるかはわかるもんな。 あと日人はほとんど資料が英語で発表は日語でやってた。 ということでどちらにしても文字数少なくて高橋メソッドだらけだった。 しかしそれでもやはり

    『入門ハスケル』これはなんか売れそうなきがしりんぐ - in between days
    jazzanova
    jazzanova 2006/04/01
    私は速攻買っちゃいましたからね。。。
  • A Haskell bookshelf

    My favourite scheme implementation is scheme48, which takes its name from its being initially implemented in 48 hours by Richard Kelsey and Jonathan Rees in August 1986. They used Common Lisp on a Symbolics 3600 and Maclisp on a PDP-10. Now, thanks to Jonathan Tang’s tutorial, you can write yourself a scheme in 48 hours, but using Haskell instead of Lisp. The tutorial is intended as an introductio

    A Haskell bookshelf
  • 川o・-・)<2nd life - Haskell の日本語リファレンスマニュアル引きツール href

    http://i.loveruby.net/w/href.html 入門HaskellやYAPC::Asia の Audrey のセッション、Learning Haskellで LL 界隈でも熱くなり始めた Haskell。かくいう自分も少しづつ勉強中です。 で、最初勉強するのに必至なドキュメントの一つがリファレンスマニュアルです。href はコマンドラインから日語のリファレンスを引くことができる便利ツール。用例も載ってるのもありがたいですね。使用方法は簡単( ReFe と同じ )で href コマンドの引数に調べたい関数を書いて実行するだけ! $ href reverse Data.List.reverse reverse :: [a] -> [a] PRELUDE reverse xs リスト xs を逆順にしたリストを返す。 reverse [1,2,3] = [3,2,1] re

    川o・-・)<2nd life - Haskell の日本語リファレンスマニュアル引きツール href
  • 1