タグ

haskellに関するhideokiのブックマーク (9)

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

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

    檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」
    hideoki
    hideoki 2006/04/19
    モナドの解説、ちょっとだけ解ったかも
  • 遅延評価と末尾再帰 - こども(てれび)

    そういうことで、問題1.11 の反復的なものを Haskell で書くときはこの前書いた f n = iter 2 1 0 n where iter a b c count | count == 0 = c | otherwise = iter (a + 2 * b + 3 * c) a b (count - 1)では固定スペースで実行できなくて、こうやらないといけない。 f n = iter 2 1 0 n where iter a b c count | count == 0 = c | otherwise = (iter $! (a + 2 * b + 3 * c)) a b (count - 1)これだと反復ごとに (a + 2 * b + 3 * c) を計算してくれるわけです。ほんとかな。確かめ方がわからない。 あと、数列を無限リストで表現するとこう fs = 0:1:2:zi

    遅延評価と末尾再帰 - こども(てれび)
    hideoki
    hideoki 2006/04/19
    末尾再帰が難しいっぽい→$! で遅延評価じゃなくて引数を先に評価する
  • たらいを回すならHaskell : 404 Blog Not Found

    2006年04月07日22:09 カテゴリLightweight Languages たらいを回すならHaskell たらい回し関数、またはtakと呼ばれる有名な関数が存在する。 C言語による最新アルゴリズム事典 奥村晴彦 同書をお持ちの方は、185ページに乗っている。 実はこれ、Haskellの売り込みには最高の関数なのだ。 ちなみに、これ最後にyを返すバージョンとzを返すバージョンがあるようで、それぞれtakyとtakzと呼ばれている模様。ここではtakyの方を採用。 まずは、私のnative tongueとも言えるperl。 tak.pl #!/usr/bin/perl use strict; use warnings; sub tak{ my ($x, $y, $z) = @_; ($x <= $y) ? $y : tak(tak($x-1, $y, $z), tak($y-1,

    たらいを回すならHaskell : 404 Blog Not Found
  • やっと入門Haskellが届いた - sumiiのブログ

    http://d.hatena.ne.jp/sumii/20060405/1144216643 ので30分ぐらいパラパラとめくってみる(当はのんびりと熟読したいのですが)。うーむ、すばらしい。こういう「プログラマによる、プログラマのための」が出てくれば、関数型言語ひいてはプログラミング言語基礎研究の先も明るいかも。ちなみに最近の私は、プログラマではないと言われても仕方がないぐらい、コードを書いていません… (どうでも良い細かい話:201頁の「substitute」は「assign」だったりはしないのでしょうか? 僕もそんなに自信はないのですが。(^^; あと、用語に英語を併記するときって、品詞の選択が大変ですよね…) (どうでも良い細かい話2:同じページで、Computer Language Shootoutについて、さすがにCPU時間だけの合計でHaskellが1位になったことはない

    やっと入門Haskellが届いた - sumiiのブログ
    hideoki
    hideoki 2006/04/13
    やはりいい本らしい。
  • プログラム・プロムナード

    会誌「情報処理」連載の「プログラム・プロムナード」(2002年4月〜2005年3月掲載)と「Haskellプログラミング」(2005年4月〜2006年3月掲載)はどなたでもご覧になれます。ファイルはすべてPDF形式です。 「Haskellプログラミング」に掲載されたプログラムは http://www.sampou.org/haskell/ipsj/ から取ることができます.

  • Programming:WayToHaskeller

    Haskeller への道 寝がえり勉強よりまず処理系のインストールど・れ・に・し・よ・う・か・なPreludeってなんぞや?ヘルプEmacs を使いたい【ちょっとひとやすみ】「非正格」って? はいはいHello, World! プログラム実行ファイルにしてみようrunhugsやはりブラックボックスなのか?さらに echo.lhs とかねdo しましょあっちゃの世界の引数とこっちゃの世界の引数モナドを遠目に見るcat.lhs とかもみとく【ちょっとひとやすみ】ピュアな怠け者 つかまり立ちリストもモナド?main は関数じゃねーのか?IO a の a と [a] の athunk はどう書くのか?型宣言をみてみよー!型推論より厳しい型宣言の必要性たらいまわし関数続たらいまわしデバッグの手段を知ろう【ちょっとひとやすみ】メイビー? よちよち歩き自分で型をる、るる、類(kind)って?MyEqク

  • Programming in Haskell

    Programming in Haskell ページへようこそ このサイトについて このサイトは、Haskell でプログラミングを楽しむためのサイトです。 現在のところ、WiLiKi というWiKiシステムで運用されています。WiLiKiの使い方は、 WiLiKi:WiLiKi:リファレンスマニュアルを参照してください。 メイリングリスト 「Haskellプログラミングを楽しむための」メーリングリストがあります. MailingListのページをご覧ください. チャット 「Haskellプログラミングを楽しむための」チャット・ルームがいくつか存在します. ChatRoomのページをご覧ください. サイトマップ Introduction Haskell とは Definition 仕様と標準ライブラリ Tutorial チュートリアル やさしいHaskell入門 モナドのすべて なぜ関数プ

    hideoki
    hideoki 2006/04/07
    haskellの解説
  • Programming:玉手箱

    ちょっとしたお題やパズル,クイズなどを集めたものです. リストの長さの比較pos+連続した n 要素のリストのリストGraph の統合木の統合集合の統合xzipリストをグループ化するn 番飛ばし毎にグループに分けるn 個ずつグループ化する 組合せ論的な生成関数リストの二分割の生成順列の生成重複順列の生成組合せの生成重複組合せの生成順列の生成 素因数分解既約分数拡張ユークリッドの互除法 コメントの除去コメント対応read正規表現置換words4ApacheLog文字列の先頭から等しい文字列を抜き出すお約束の末尾再帰版文字列から一致する部分文字列を抽出するCSV自分自身のソースコードをプリントするプログラム文字列 C が文字列 A, B から構成されているか 関数型表上向きにも辿れる木平衡木赤黒木AVL 木データタイプから再帰を分離探索深さ優先探索幅優先探索Graphical Sequence

    hideoki
    hideoki 2006/04/07
    重い
  • The Haskell 98 Language Report

    Simon Peyton Jones [editor], Microsoft Research, Cambridge Lennart Augustsson, Sandburst Corporation Dave Barton, Intermetrics Brian Boutel, Victoria University of Wellington Warren Burton, Simon Fraser University Joseph Fasel, Los Alamos National Laboratory Kevin Hammond, University of St. Andrews Ralf Hinze, University of Bonn Paul Hudak, Yale University John Hughes, Chalmers University of Techn

  • 1