タグ

haskellに関するomochistのブックマーク (10)

  • Haskell Bowling

    omochist
    omochist 2006/11/09
    ボーリングの点数を計算する関数.実装が美しい.
  • 第3回 mapからモナドを理解する

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

    第3回 mapからモナドを理解する
  • 高橋メソッドなプレゼンツール on wxHaskell - 趣味的にっき

    wxHaskellを使って、高橋メソッドなプレゼンツールを作ってみました。Haskellでプレゼンツールってあんまりないですよね? ダウンロード: Windows用実行形式 + ソースコード チュートリアル: アーカイブ中のsample.batを実行してください。サンプルのプレゼンテーションが始まります。 プレゼンテーションの書き方については、sample.txtを参考にしてください。 操作方法: テキストファイルをwxtm.exeにドラッグ & ドロップします。 お好みに応じて画面を最大化します。 キーボードを使ってページをめくります。キーバインドはlessです。以上。 BUGS: マウスは使えません。 フォントのサイズの計算アルゴリズムがいまいちで、描画が遅れる場合があります。高橋メソッドはテンポ命なのに… 参照: 高橋メソッド 以下、ソースです。相変らずIOの山です。うーむ。GUI

    高橋メソッドなプレゼンツール on wxHaskell - 趣味的にっき
    omochist
    omochist 2006/09/24
    すげー根気が必要なんだろうな,こんだけ書こうと思ったら…
  • 関数プログラミングの素晴しさ - 趣味的にっき

    最近、関数プログラミングの素晴しさがわかってきたように思います。 Haskellは、コンパイルさえ通ってしまえば、自分の思った通りに動いてくれます。Rubyよりも。関数プログラミングを推奨している人はよく言っていることなんですが、最初は僕も「ホントかよ〜」って疑ってかかってました。ようやくこれが体感できるようになってきたような気がします。サトリってやつでしょうか?(←まだ早いって!!) ただRubyでプログラム書いているようなお気楽感はあんまり感じませんし(Haskellはストイックです)、さっと書くだけだったらRubyで書く方が10倍くらい早く書けるのですけどね。何ていうかな、Haskellでプログラム書いてるとパズル解いてるような楽しさがあります。まとめるとこんな感じ。 「オレってばスゲー」 ← Ruby 「パズル解けたー」← Haskell 参考: How To Become A H

    関数プログラミングの素晴しさ - 趣味的にっき
    omochist
    omochist 2006/09/23
    ホントかよー(笑)もう一度ちゃんとすべきなのか.悟りたい…!
  • 第1回 関数型プログラミングの世界へようこそ - 本物のプログラマはHaskellを使う:ITpro

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

    第1回 関数型プログラミングの世界へようこそ - 本物のプログラマはHaskellを使う:ITpro
  • Easy Monad

    8. Monad この文書では Monad について述べます。Monad は成功しないかも知れない 計算を組み合わせる手法で、探索、IO、構文解析 などに使われます。 Monad は実はそれほど難しい概念ではありません。 "Haskell は Monad を使って参照透明性をおかすことなく IO を実現している。" といううたい文句や、"Monad を理解するのは難しいかもしれない" などという脅し を気にしないで、Haskell 98 にある定義を見れば分かりやすいと思います。 上級 Haskeller は Monad を駆使して難しいことをやりますが、 それは Monad が難しいのではなく、彼らのやっていることが難しいだけです。 つまり、Monad を使うと難しいことが出来るが、Monad そのものが難しいわけではない ということです。 1. Monad は class Haskel

    omochist
    omochist 2006/06/21
    モナド
  • A Gentle Introduction to Haskell: Numbers

    やさしい Haskell 入門 back next top 10  数 Haskell にはさまざまな数値型があります。これらは Scheme [7] の数値型をもとにしており、 Scheme は Common Lisp [8] をもとにしていま す。(しかし、これらの言語は動的な型付けをおこないます。) 標準の型には、 固定長および任意倍長の整数、それぞれの整数で構成された比(分数)、単精度お よび倍精度の実数、複素数の浮動小数が含まれています。ここでは数値クラス構 造の基的性格の概略を説明します。詳細についてはレポートの §6.3 節を参照してください。 10.1  数値クラスの構造 数値型クラス(クラス Num とその下にあるクラス)は Haskell の標準 クラスの多くを考慮しています。Num は Eq のサブクラスで すが、Ord のサブクラスではないこを注意しておきます。こ

    omochist
    omochist 2006/06/02
    数字の型
  • Yet Another Haskell Tutorial PDF

    omochist
    omochist 2006/06/01
    Haskellのチュートリアル(英文)
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

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

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    omochist
    omochist 2006/05/31
    色んな階乗の計算
  • 『ふつうの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 は @ に置き換え) までお願いします。 書誌情報 書名

  • 1