タグ

ブックマーク / tanakh.jp (10)

  • foldlを直す - 純粋関数空間

    http://www.well-typed.com/blog/90/ foldlに関するこの記事(英文)が面白かったので、勝手翻訳しました。 foldlなんとかなるといいですね。 foldlを直す foldl 関数は壊れている。壊れているとみんなが知っている。 四半世紀近く壊れたままだ。ついにこれを修正する時が来た! 今日、私はPrelude.foldlをData.List.foldl'として知られる実装で再定義することを提案する。 foldlは壊れている! 既にご存知だとは思うが、念のため… Haskellerが必ずfoldlではなく、foldrやfoldl'を使うように勧めてくることにお気づきだろうか? 例えばReal World Haskellでは次のように言っている。 `foldl`のサンクの挙動のため、実アプリではこの関数を使わないようにするのが望ましい。 特に問題がない場合でも

    sirocco
    sirocco 2014/04/07
     Haskell の foldl、foldl' の単純そうではあるけれど深い深い話。
  • エラー処理を書いてはいけない

    エラー処理を書いてはいけない田中英行 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 鋭意翻訳中 (春頃発売予定) エラー処理を書いてはいけない日の概要エラー処理を抽象化しようというお話です 現在のエラー処理の抱える問題どのように解決するのか実際の例エラーは処理しなければならない エラー処理を書いてはいけな

    sirocco
    sirocco 2014/03/05
    エラーを包括的に扱うフレームワーク。failure / control-monad-failure→エラー表現を統一的に扱うためのインターフェース monad-control→リフトされたモナドをリフト元のモナドで使えるようにするためのインターフェース
  • 最近のWindowsの開発環境のセットアップ - 純粋関数空間

    周囲にWindowsユーザがめっきり減ってきた昨今ですが、 Windowsユーザの皆様はいかがお過ごしでしょうか。 Windows8は使えないだの、 シェルがしょぼいからあれだのと言われることも多いですが、 圧倒的にたくさんのPCで安心して動かせるOSとして、 私個人としてはとても便利に使っています。 Let’snoteのCF-S10Dという2年ほど前の機種を使っているのですが、 ようやくPanasonicのWindows8サポートがこの機種までやってきたので、 Windows8に入れ替えることにしました。 実は発売当初にもWindows8を入れていたのですが、 Let’snoteを快適に使うには必須の、「くるくるホイール」が使えなかったり、 謎の認識されないデバイスがあったりだったので、 Windows7に戻していました。 というわけで、セットアップついでにそのときの記録を書いておこうと

    sirocco
    sirocco 2013/05/23
    環境変数をいじるソフトなど。
  • http://tanakh.jp/pub/fp-tudoi-2012/tudoi.html

    sirocco
    sirocco 2012/09/07
    「すごいHaskellたのしく学ぼう!」("Learn You a Haskell for Great Good!") の紹介。超特急のモナド紹介でもあるけれど本を読んで理解してからでないとたぶん意味不明。
  • Beautiful Error Handling

    Beautiful Error Handling 田中英行 <tanakh@preferred.jp> 2012年夏のプログラミング・シンポジウム 自己紹介 田中英行 (@tanakh , http://tanakh.jp ) (株)Preferred Infrastructure勤務のプログラマ Haskell 愛好家 BASIC(20年), C++(15年), Haskell(10年) 「すごいHaskellたのしく学ぼう!」 (Learn You a Haskell for Great Good! の和訳) 好評発売中!! 概要 エラー処理に美しさを! エラー処理の抽象化 Haskellでのアプローチ エラー処理に美しさを! 背景 エラー処理は醜くなりがち なんで汚くなるのか? これまで適切な抽象化が行われて来なかったから なぜそういう状況になっているのか? 大きな原因の一つはプログ

    sirocco
    sirocco 2012/08/25
    2012年夏のプログラミング・シンポジウム、田中さんの発表資料「Beautiful Error Handling」。
  • "Learn You a Haskell for Great Good!" を翻訳しました - 純粋関数空間

    [@nushio](https://twitter.com/#!/nushio)こと村主さんと Learn You a Haskell for Great Good! を翻訳しました。 「すごいHaskellたのしく学ぼう!」というタイトルで、 5月22日、オーム社様より発売予定です! 詳しい情報は http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=978-4-274-06885-0 こちら。 入門書としての出来の良さに惚れ込んで原著者の Miran Lipovača さんに 翻訳したい旨を伝えたのが発端でした。ちょうど去年の夏頃でしたか。 そうこうしているうちに、オーム社の鹿野さんから出版のお話を頂いて、 トントン拍子で進んで行きました。 翻訳作業の方はトントン拍子とはいかず、 関係者の皆様にはご迷惑をお掛けしました。 ともあれ、完成しました。5

    sirocco
    sirocco 2012/05/02
     「Haskellはおもしろい。以上!」
  • Haskellで円周率1億桁を計算する、あるいは円周率計算にHaskellの多倍長整数の改良を見る - 純粋関数空間

    きっかけ http://d.hatena.ne.jp/itchyny/20120304 この記事を見て、私も昔円周率を計算したことがあるのを思い出しました。 http://d.hatena.ne.jp/tanakh/20070506#p1 公式は同じくチュドノフスキーを使用、GHCのIntegerをそのまま用いて円周率を計算、 当時(5年前)のマシン(おそらくCore2あたり)で1億桁が15分ほどだったようです。 SPOJというサイトのコンテスト向けに、 $\sqrt{2}$ 200万桁計算の高速化 をCで書くとこから始めて、 ナイーブ乗算、カラツバ法、そしてFFT乗算の実装にいたり、円周率へ。 最初AGMを実装し、 古くて新しい方法、Arctan系の公式の実装を経て Binary Splitting Methodを知り、 チュドノフスキーの公式へ至りました。 さらにHaskellでの実装

  • 私と競技プログラミング。あるいは普通のプログラマがICPC世界大会に出場するまでとその後 - 純粋関数空間

    この記事は Competitive Programming Advent Calendar の18日目の記事です。 はじめに アルゴリズムやその他の何らかのダイレクトに役に立つコンテンツは、 おそらく他の多くの方によって充実していることであろうかと思いますので、 私は大して役に立たないことを取り留めもなく書き綴ることにします。 なぜ私のような普通のプログラマが、 当時競技プログラミングの世界のトップに立つことになったのか。 競技プログラミングを考える 「競技プログラミング」という単語がにわかにWeb界隈を賑わせはじめたのは 私が知るかぎりではそんなに歴史のあるものではないと思います。 おそらく「競技プログラマ」という単語及びそれが指し示す人たちの出現と同時期に 適切な語を探す形で生まれたのでしょう。 しかし、プログラミングの技能を競うという試みは新しいものではありません。 それはICPC

    sirocco
    sirocco 2011/12/20
    次はプログラムの複雑さと戦う話をお願いします。
  • Windowsで最高のターミナルを構築する方法 - 純粋関数空間

    皆さん、Windowsでコマンドライン使ってますか? まともなターミナルエミュレータすらないと思っている方もいらっしゃるかもしれませんが、案外何とかなるものです。 これが完成図です。1週間ほどいろいろ試した結果、動作、見た目、フォントレンダリング、どれもおおむね満足行く結果になりました。 Terminal Emulator選び Windowsをお使いの皆様ならご存じかとは思いますが、デフォルトのTerminal Emulatorである cmd.exe が良くないです。 挙動、フォント云々の話をするまでもなく、横幅が80文字固定なのがどうしようもありません。 プロパティのレイアウトのところから幅の変更ができるようでした。ご指摘ありがとうございます。 この辺を見てWindowsで動作するものを一通り試してみたのですが、動作がおかしいか、フォントが気に入らないか、プロプライエタリかで、どれもよく

    sirocco
    sirocco 2011/11/15
    mingw-get が入ってない・・・Orz まず、 mingw-get をなんとかしなくちゃ。
  • HakyllとpandocとMighttpdでサイトを作った話 - 純粋関数空間

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

  • 1