タグ

haskellに関するkdaibaのブックマーク (32)

  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
    kdaiba
    kdaiba 2006/08/31
    erlangとどっちがいいんだろう
  • 第1回 関数型プログラミングの世界へようこそ - 本物のプログラマはHaskellを使う:ITpro

    Haskellというプログラミング言語を知っていますか? 全く聞いたことがないという人が多いかもしれません。そういう名前の言語があるのは知っているけど,どんな言語かは知らないという人もいるかもしれませんね。でも最近では,一部の先進的なソフトウエア開発者の間で,一種のブームと言えるほど熱狂的に受け入れられています。 なぜならば,Haskellは様々な優れた特徴を持っているからです。最初に,他の言語にはあまり見られない際だった特長を一つだけ紹介してみましょう。「遅延評価(lazy evaluation,怠惰評価ともいう)」です。 遅延評価とは,与えられた値を必要になるまで評価(計算)しないということです。この性質により,不必要な計算が行われる無駄をなくすことができます。また,「潜在的に無限の大きさを持つデータ構造」といった通常のプログラミング言語では扱いの難しいものを直接扱えるため,より直接的

    第1回 関数型プログラミングの世界へようこそ - 本物のプログラマはHaskellを使う:ITpro
    kdaiba
    kdaiba 2006/08/02
    いやぁ~,本物になりたいっすね?
  • Intel MacでHaskellプログラミング - Accept Things

    ついに、Intel MacでHaskellプログラミングができる環境が手に入りました。 今まで、GHCが正式にIntel Macに対応していないこともあって、MacBook ProでHaskellプログラミングを楽しむのを諦めていました。一応、Dan Kogaiさんのblogで説明されていた、GHCをIntel Macで動作させるトリックを以前試してみたのですが、なぜか僕の環境ではうまくいきませんでした。 404 Blog Not Found:haskell - GHC on Intel Mac それで、あれから進展がないかどうか調べていると、良いものが見つかりました。 X86OSXGhc - GHC - Trac このページにあるAudreyTangさんによる改良版GHCをインストールすると、Intel Macで無事にGHCが使えるようになりました! 以下のコマンドで一瞬でインストールで

    Intel MacでHaskellプログラミング - Accept Things
    kdaiba
    kdaiba 2006/07/09
    始める時間を作らなきゃ
  • Linspire's OS team standardizes on Haskell.

    saw that too, interesting, although i often consider it a danger sign when developers rewrite existing code just to employ a different language, particularly when they already employ a language (ocaml) that can deliver on many of the same promises of haskell. also audrey, please report on your experience with ubuntu on the mac core duo unit when you get a chance. i am using ubuntu on an older powe

    kdaiba
    kdaiba 2006/05/17
    要勉強ってことですよ
  • 檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」

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

    檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」
    kdaiba
    kdaiba 2006/04/20
    う〜ん
  • Haskell: Readerモナドの実験 - Accept Things

    Readerモナドで定義されているlocal関数とasks関数の実験をしてみた。 local関数とasks関数を使うと、環境(データを記憶する領域のようなもの)を局所的に操作できることがわかった。 これらの関数をうまく利用すれば、プログラミング言語でおなじみの「スコープ」の概念を綺麗に表現できるようになると思われる。 Haskellでインタプリタを実装したい開発者にとっては嬉しい話に違いない。 コードは以下の通り。ReaderTでReaderモナドとIOモナドをレイヤー化している(多分)。こうしておけば、liftIO関数とputStr関数を組み合わせて、IOも同時にできてしまうようだ。(実はまだあんまりよくわかっていない) つまり、昔ながらのprintデバッグが可能になる。 % vim reader.hs import Control.Monad.Reader data Env = Env

    Haskell: Readerモナドの実験 - Accept Things
    kdaiba
    kdaiba 2006/04/12
    IO
  • 思いて学ばざれば則ち殆うし - sumiiのブログ

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

    思いて学ばざれば則ち殆うし - sumiiのブログ
    kdaiba
    kdaiba 2006/04/11
    本文よりコメント欄が重要
  • Haskell入門 / 唐鳳 @ YAPC::Asia 2006

    NEW: Perl 6 'Diwali' 6.d Language Specification Released! The Perl 6 Programming Language Hi, my name is Camelia. I'm the spokesbug for Perl 6, the plucky little sister of Perl 5. Like her world-famous big sister, Perl 6 intends to carry forward the high ideals of the Perl community. Perl 6 is currently being developed by a team of dedicated and enthusiastic volunteers. You can help too. The only

    kdaiba
    kdaiba 2006/04/08
    Audryによる解説
  • Haskell: RubyインタプリタをHaskellで実装したRType - Accept Things

    RType。 オープンソースマガジン2006年04月号の「ハッカー養成塾」で知りました。 RubyインタプリタをHaskellで実装されている方がおられるようです。 凄いです。 パーサにはPugsで使われているParsecではなく、Happyと呼ばれるまた違ったものを利用されているみたいです。 Haskellのパワーを試すため(!)に実験的に作られているようですが、今後が非常に楽しみです。

    Haskell: RubyインタプリタをHaskellで実装したRType - Accept Things
    kdaiba
    kdaiba 2006/04/04
    erlangよりユーザ数多いなやっぱり
  • YAPC::Asia 2006 Tokyo: Learning Haskell by Audrey Tang - Accept Things

    YAPC::Asia 2006 Tokyoの2日目の午後からAudrey Tangさんの「Learning Haskell」のプレゼンテーションがありました。 はてなから音声ファイルが公開されています。スライドも見られるようになりました。ありがとうございます。 Learning Haskell by Audrey Tang 話の内容が高度なだけに、理解するのが中々難しいです。予めHaskellの予習をしておいたので、前半は何を伝えようとされていたのかおおよそわかりました。 個人的には、後半の Monad Transformers QuickCheck Parsec Software Transactional Memory Foreign Function Interface の話題が興味深かったです。断片的ですが、今後のヒントが得られたような気がします。 間違いはあると思いますが、何かの

    YAPC::Asia 2006 Tokyo: Learning Haskell by Audrey Tang - Accept Things
    kdaiba
    kdaiba 2006/04/03
    Learning Haskellの概略
  • 川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
    kdaiba
    kdaiba 2006/04/01
    これは便利ですな
  • Harroth

    Pugsの勉強をしようと考えている方は、以下のリソースを読むと面白いかもしれません。 Harrothチュートリアル ソースコード Harrothチュートリアルでは、Forthというプログラミング言語のパーサをHaskellで実装しながら、パーサについての理解が深められるように書かれています。しかし残念な点が2点あります。第一に、説明で出てくるコードと実際のソースコードに若干の違いがあり、読者の理解を妨げていることです。*1第二に、パーサの核になる部分のコードが欠落していることです。よく書けているチュートリアルなだけに、当に残念でした。 あと少しのピースがあれば、完成しそうだったので、代わりにそのピースを作ってみました。何回も試行錯誤してパーサが完成した時は、当に感動しました。 そのパーサのコードは以下の通りです。 % vim MyForth.hs {- MyForth - An Imp

    Harroth
    kdaiba
    kdaiba 2006/03/27
    いやはやまったくすごいなぁ
  • Haskell: ミニコンパイラの解体 - Accept Things

    前のエントリで、Haskellで実装したミニコンパイラを紹介しました。今回はこのミニコンパイラの字句解析のパーツだけを取り出して動かしてみます。必要最小限なコードを切り出して動作させてみたかったので、今回対応する計算式は「自然数の足し算」のみです。ミニコンパイラから、そのような興味のあるコードだけを抜き出してみると、以下のようになりました。 % vim calc.hs import Char data Token = NUM Int | PLUS instance Show Token where showsPrec p (NUM num) = showString "NUM " . shows num showsPrec p (PLUS) = showString "PLUS" tokenise :: [Char] -> [Token] tokenise [] = [] tokenise

    Haskell: ミニコンパイラの解体 - Accept Things
    kdaiba
    kdaiba 2006/03/24
    字句解析部
  • Haskell: ミニコンパイラを試す - Accept Things

    Haskellで実装された勉強用のコンパイラがないか探していたらありました。Haskellでコンパイラを書きたいと思っている方や、Pugsの実装に興味のある方は、今回紹介するミニコンパイラに興味を持ってもらえると思います。 Simple compiler example このコンパイラは、計算式を架空のスタックマシンのコードに変換するというものです。私たちが普段使っているPentiumマシンに搭載されているFPUもスタックマシンの一種ですね。(参考) 例えば、「1+2-3」をこの架空のスタックマシンのコードに変換すると、以下のようなコードに変換されます。 PushConst 1 PushConst 2 PushConst 3 SubToS AddToSでは、ソースをゲットして、ghciで実際に試してみましょう。 % wget http://www.doc.ic.ac.uk/~phjk/Co

    Haskell: ミニコンパイラを試す - Accept Things
    kdaiba
    kdaiba 2006/03/24
    講義用スライドあり
  • Haskell: 再帰とI/O - Accept Things

    Haskellの勉強をはじめて1ヶ月ほど経ちました(実際勉強したのは1週間くらいです)。途中までは順調でしたが、モナドがやっぱり難しい。mapとかfilterのような高階関数は割とすんなり理解できたのですが。。 今日は久しぶりにHaskellをさわってみました。再帰とちょっとしたI/Oをするプログラムを作ってみました。 import System -- getArgs crazy :: String -> IO () crazy s = putStr s >> crazy s main = do [arg] <- getArgs crazy argコンパイルと実行は以下のようにします。(コンパイルにはGlasgow Haskell Compilerを使っています) 実行すると、プログラムの引数に渡した文字列(foo)が標準出力に繰り返し出力されます。終了条件が書かれていないので、ずっと出力

    Haskell: 再帰とI/O - Accept Things
    kdaiba
    kdaiba 2006/03/22
    なぜ,壊れないの?
  • MYCOM BOOKS - 入門Haskell〜はじめて学ぶ関数型言語〜

    ■内容紹介 「実際にHaskellを利用し、プログラムを組む。」 他のプログラミング言語にも多大な影響をあたえる関数型言語。 書では純粋関数型と言われるプログラミング言語Haskell(ハスケル)について、「宣言的」とはどういうことか、またパターンマッチング、再帰的定義、モナド、静的な型付け、型クラスとインスタンス宣言などの重要な概念について、プログラムを組んでいきながら、実践的な解説を試みます。 Haskellは、それをモノにした悟り体験のために勉強をしましょう。この体験は、その後のよりよいプログラマー人生での手助けとなるはずです。 Happy Hacking with Haskell! 表紙の鳥:ケリ(チドリ目チドリ科) ●の中身を見てみる

    kdaiba
    kdaiba 2006/03/07
    3月末なんだ
  • フロントページ - DarcsWiki

    with cabal: cabal install darcs with stack: stack install darcs Darcs binaries for many platforms (not up to date though) current release source tarball Darcs is a free and open source, cross-platform version control system, like git, mercurial or svn but with a very different approach: focus on changes rather than snapshots. Darcs offers a freer way of working, and a simpler user interface. Darcs

    kdaiba
    kdaiba 2006/01/17
    バージョンコントロールシステム
  • Journal of Stevan (6065)

    kdaiba
    kdaiba 2005/12/16
    勉強しなきゃね
  • ふつうの Haskell プログラミング

    kdaiba
    kdaiba 2005/11/30
    年度内発売予定
  • IPSJ: Haskell Programming

    「連載: Haskellプログラミング」のプログラム $Date: 2006/06/09 15:06:12 $ 記事は情報処理学会のページ http://www.ipsj.or.jp/magazine/promenade.html で見ることができます.

    kdaiba
    kdaiba 2005/11/29
    回答編