タグ

haskellに関するblanketskyのブックマーク (38)

  • Inemuri nezumi diary(2009-05-03)

    いけがみを召喚するには、出現予定を参考にしてください。三週間前までにメールをくだされば、日程を追加するなどしてスケジュールに組み込むことができるかもしれません。勉強会や個人的な会合、中途採用面接などに応じます。 _ Haskell のまなびかた(2009-05-03版) わたしがはじめて Haskell の処理系を触ったのは 2004 年の春ですから、もうかれこれ 5 年の歳月がたったことになります。はやいものだなあ。当時に比べて書籍もサイトも充実してきたので、学びやすくなったとは思います。 しかし、GHC がデファクトスタンダードになりましたが、GHC の変化が著しいこと、GHC が *nix 以外のプラットフォーム(つまり WindowsMacOSX など)でバグが多いこと、ライブラリが爆発的に増えた一方でその依存性を解決する方法がまだ確立していないことなど、現在でも Haske

  • type-level

    This library permits performing computations on the type-level. Type-level functions are implemented using functional dependencies of multi parameter type classes. To date, Booleans and Numerals (Naturals and Positives) are supported. With regard to Numerals, there is support for common arithmetic operations (addition, substraction, multiplication, division, exponientation, logarithm, maximum, com

  • グローバル変数が欲しい理由?

    グローバル変数が欲しい理由? グローバル変数が欲しい理由っていうエントリを見まして,忙しかったのでズイブン遅くなっちゃったけど,ちょっと考えてみます. 実はコメントしているnobsunが話をした同僚ってのは私です. で,nobsunは完成したプログラムを公開してこうすればいいんじゃない的なブログを書いてますけど, これでは多分相手はナットクしないんじゃねーかなーと思うわけ. だってグローバル変数を避けて実装すりゃ,そらそうでしょうよって思うだけだもの. そうじゃなくてnobsunをはじめとしてHaskellerがグローバル変数を欲しくならないのか, それとも禁欲的に自分に制約をかけてるだけなのかを示さなきゃならんと思うわけですよ. 確かにグローバル変数が欲しいとか引数に持ち回らなきゃいけないのってイマイチとか, どっかで聞いたようなセリフだよなぁ.(^^;) いや,言いましたよワタシも.

  • Inemuri nezumi diary(2009-01-19)

    _ 論文ファイブが書けない言い訳(skipはご自由に) 職場でも居室でも論文は読むのだが、分量が違いすぎる。職場で読むほうが圧倒的に多いのである。一日あたりをいうと、少ないときは0(ここは笑う場面です)、多いときはこれは例外的でちょうど70読んだ。 70ってのはおかしすぎで、実際読んだだけで一日を終えた。これは、詳しくはいえないが、「対象についていけがみがよくわかっていない論文」の査読を依頼されたときである。しかし、著者の主張の解決策は理解できたし、私が詳細に確かめるのも悪くはないかと感じたのだった。そこで、編集者に「私、その対象については、門外漢ですが、査読にあたって最大の努力はしますよ、それで不都合があれば査読者を下ろしてください」というようなやりとりがなされたあとで、査読した(実際、差読者は複数いて、対象の専門の方も査読をなさるということだった)。 で、査読論文の1次参考文献、2

    blanketsky
    blanketsky 2009/01/20
    著名な研究者の紹介
  • Inemuri nezumi diary(2009-01-08) - _ unsafePerformIO の使用は限定されています。ご利用は計画的に。

    _ unsafePerformIO の使用は限定されています。ご利用は計画的に。 いたるところで、 unsafePerformIO を見かけるようになったのでひとこと言うといたるわ。「Unsafe やって書いてある」やろ。おっと、地が出てしもた。 unsafePeformIO はもともと Haskell の規格 Haskell98 にはありません。初めて現れたのは、 "The Haskell 98 Foreign Function Interface 1.0 An Addendum to the Haskell 98 Report" の 5節 Marshalling についての、5.1 節 Foreign モジュールが提供するインターフェースについてです。 unsafePerformIO :: IO a -> a Return the value resulting from execut

  • らくがきえんじん

    リンク切れ記事の多くは http://d.hatena.ne.jp/keigoi/ に移動しています. たとえば http://d.hatena.ne.jp/syd_syd/20080302#p1 の記事は http://d.hatena.ne.jp/keigoi/20080302#p1 にあります.

  • らくがきえんじん

    リンク切れ記事の多くは http://d.hatena.ne.jp/keigoi/ に移動しています. たとえば http://d.hatena.ne.jp/syd_syd/20080302#p1 の記事は http://d.hatena.ne.jp/keigoi/20080302#p1 にあります.

  • Haskell programming tips- 他人のHaskell日記 - haskell

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    Haskell programming tips- 他人のHaskell日記 - haskell
  • 実践的な Haskell の本 - あどけない話

    Perl6 は何年経っても正式にリリースされません。そんな Perl6 を Audrey Tang さんは、たったの数ヶ月で作りました。その実装は Pugs と呼ばれています。短期間の開発を可能にした秘密兵器は Haskell です。 その Audrey さんが、2006年に日で Haskell について説明してくれました(資料)。残念ながら、そのころの僕は Haskell に興味がなかったのでチュートリアルは受けていませんが、その概要にはこう書かれています。 コーナーケースを探すのにユニットテストを書くのに疲れた? QuickCheck を使ってコンピュータに書かせちゃいましょう。正規表現ベースのパーサはメンテナンスしにくいのに気づいた? Parsec を使って 15分で Perl6 の完全なパーサを書く方法を勉強しましょう。デッドロックやレースコンディションはもううんざり? STM

    実践的な Haskell の本 - あどけない話
  • Reddit - Dive into anything

    The Haskell programming language community. Daily news and info about all things Haskell related: practical stuff, theory, types, libraries, jobs, patches, releases, events and conferences and more...

  • モナド則三度 - あどけない話

    「モナド則再び」で書いた「モナド則1」は何の訳に立つのかという問題ですが、"Monads for functional programming" に答えが載っていました。 以下のような加算機を考えます。 data Term = Con Int | Add Term Term data M a = M a deriving Show instance Monad M where return x = M x M x >>= f = f x eval :: Term -> M Int eval (Con a) = return a eval (Add t u) = do a <- eval t b <- eval u return (a + b) 論文には、M の実装が載っていないので、適当に作りました。Maybe でもいいでしょう。 こういう風に動きます。 式1: eval (Add (Co

    モナド則三度 - あどけない話
    blanketsky
    blanketsky 2008/12/04
    「複数段のモナドは、一段に変更できる」
  • Prime numbers - HaskellWiki

    In mathematics, amongst the natural numbers greater than 1, a prime number (or a prime) is such that has no divisors other than itself (and 1). This means that it cannot be represented as a product of any two of such numbers. Prime Number Resources At Wikipedia: Prime Numbers Sieve of Eratosthenes HackageDB packages: arithmoi: Various basic number theoretic functions; efficient array-based sieves,

  • Index of /SoC/ghc.debugger.paper

  • Photo Tourism: Microsoft Research, Interactive Visual Media Group

    Photo Tourism: Microsoft Research, Interactive Visual Media Group
  • モナディック・パーサー - あどけない話

    「ふつうのHaskellプログラミング」や 「構文解析結合子」の元ネタは、どうやら「Monadic parsing in Haskell」のようです。(さらに元ネタは Parsec ですかね。) このオリジナルは、MonadPlus の部分などが古くさいのですが、分りやすいです。というわけで、例題を Parsec 風にアレンジしつつ、勉強してみました。 四則演算式のパーサーを実現することを目標にします。 おまじない 最終的に以下のモジュールが必要になるので、import しておきます。 import Monad import Data.Char Parser の定義 Parser 型の定義はこうなります。 data Parser a = Parser (String -> [(a,String)]) 状態を表すために関数を使っている 関数を使うと状態が表現できることが分らない人は、先に「状

    モナディック・パーサー - あどけない話
  • 状態モナド遊び - あどけない話

    状態をモナドで実現する方法を考えます。 リスト 例は簡単な方がいいので、データ構造として Lisp 風のリストを定義しましょう。 data List a = Nil | Cons a (List a) deriving Show リストは、こんな風に表せます。 Cons "c" (Cons "b" (Cons "a" Nil)) Lisp 風の cons も定義してみましょう。 cons :: a -> List a -> List a cons x xs = Cons x xs cons "c" $ cons "b" $ cons "a" Nil → Cons "c" (Cons "b" (Cons "a" Nil)) 状態を持つリスト さて、この Lisp 風のリストに、要素の数を覚えさせておきたいとしましょう。もちろん、数えれば分りますが、数えなくても一瞬で分るようにしたいのです。

    状態モナド遊び - あどけない話
  • mad日記 - 2007-09-03 Template Haskell

    計算を静的に表す手段としてArrowが使えるという事をid:MaD:20070816で書いたわけですが、もっと強烈な手段としてTemplate Haskellがあります。 以前作ったOpというArrowでは(>>>)演算によって繋がれたArrowを一旦構文木としてデータ化し、最適化をした後に関数を合成するということをしました。 一方、Template Haskellを使うとHaskellのコード片から直接Haskellの内部表現を得られます。Template Haskellについてはhttp://haskell.org/haskellwiki/Template_Haskellのチュートリアルがとてもわかりやすいです。 % ghci -fth Prelude> :m +Language.Haskell.TH Prelude Language.Haskell.TH> runQ [| 1 + 2

    mad日記 - 2007-09-03 Template Haskell
  • Arrowの心 - 2007-08-16 - mad日記

    昨日の続きです。記法がよいとかMonadみたいに副作用が扱えるとか言ったメリットをはるかに越えたArrowの素晴らしさについて紹介します。 reverse.reverse == id か? 自分が最初にArrowってすごいと気づいた問題がこれです。大学で同級生と話している時に気づきました。大して役に立つ例では無いですが、Arrowの新しい側面が見えてくる例です。 標準入力に対してreverse,reverse,headを順に実行して結果を出力するコードは以下のようになります。後の比較の為に敢えてArrowで書いています。 import Control.Arrow main :: IO () main = getContents >>= print. (reverse >>> reverse >>> head) リストを2回ひっくり返したら元に戻るだけなので、そのheadをとるという計算は一

    Arrowの心 - 2007-08-16 - mad日記
  • Haskell で日本語表示 - utf8-string を利用して

    ghcで日語を正しく扱うには,いまのところ入出力の際に UTF8 <-> 内部コードという変換をする必要があります.…,今は Hackage DB に登録されています.(...) (どう書く?org 3513 nobsun: ghcで日語を正しく扱うには,いまのと...(文字列の反転(括弧の対応を保存)) - 投稿の詳細 より ) utf8-string パッケージをインストール 以下、上記のサイトの説明に沿ってインストールを行なった。 (GHC 6.8.3, Windows XP) HackageDB: utf8-string-0.3.1 にアクセスし、Downloads より utf8-string-0.3.1.tar.gz をダウンロードし、解凍。 コマンドラインより、utf8-string-0.3.1 ディレクトリで以下を実行。 runhaskell Setup.lhs con

  • 2.5. GHCiデバッガ

    GHCiは単純な命令的スタイルのデバッガを搭載していて、実行中の計算を停めて変数の値を確かめることができる。このデバッガはGHCiに統合されており、デフォルトで有効になっている。デバッグ機能を使うのにフラグは必要ない。一つ、重要な制限があって、ブレークポイントとステップ実行は解釈実行されているモジュールでしか使えない。コンパイル済みコードはデバッガからは見えない[5]。 このデバッガは以下のものを提供する。 プログラム中の関数定義や式にブレークポイントを設定する能力。その関数が呼ばれたとき、あるいはその式が評価されたとき、GHCiは実行を中断してプロンプトに戻る。そこで、実行を続ける前に、局所変数の値を調べることができる。 ステップ実行ができる。評価器は、簡約をだいたい一回行うごとに実行を一時停止し、局所変数を調べることができるようにする。これはプログラムのあらゆる地点にブレークポイントを