タグ

haskellに関するfaerieのブックマーク (22)

  • 代数的データ型と初等代数学 - ryota-ka's blog

    この記事は以下のページに移転しました. blog.ryota-ka.me 「関数プログラミングとはなんですか?」と問われたときには「デ,データファースト……(震え声)」と答えることが多いのだが,実際 Haskell や OCaml などの言語を特徴付けるものとして,代数的データ型 (Algebraic Data Type; ADT) の存在は無視できないだろう.その有用性ゆえに,近年では新たな言語の策定の際にその概念が輸出され,RustSwift などの言語にも採用されている. 「代数的データ型とはなんですか?」と問われたときには―問われたことがないのでわからないのだが―おもむろに ghci か utop を立ち上げて,解説を始めるのではないかと思う.ひとしきり解説をした後,「つまり直積の直和なんですよ〜🙌✨」と言って話を締めくくるだろう. int 型や float 型など,「メモ

    代数的データ型と初等代数学 - ryota-ka's blog
  • 本物のプログラマはHaskellを使う:ITpro

    筆者 shelarcy Haskellは,関数型プログラミングというジャンルに属する言語です。Haskellや関数型プログラミングを題材に物事を見ていくことで,今まで思いもよらなかったような未知の世界を知ることができるでしょう。 プログラミング言語を学ぶという行為には, 言語の基的な文法や考え方を理解する 言語の文化圏で広く使われている考え方に親しんでその言語らしい書き方を習得する 単に言語を使ってできること以上の知恵を学ぶ の3段階があります。この連載では,三つ目の段階を目標に,Haskellプログラミングの世界を一つひとつ丁寧に紹介していきます。 更新は毎月第1水曜日(1月のみ第2水曜日)

    本物のプログラマはHaskellを使う:ITpro
  • Haskellの神話 - あどけない話

    Haskell の優雅さを示すためによく使われるコードは、優雅さと分かりやすさだけに特化しており、現実的には遅いことが多い。書き手は他に効率のよい実装があることを知っているのだけれど、読み手はそうではないから、後で効率が悪いと気づいて愕然とするみたいだ。 この記事では、神話になっている例を3つ取り上げ、効率のよい実装と合わせて紹介する。その 3 つの例とは、以下の通り。 フィボナッチ数 素数生成 ソート フィボナッチ数 遅延評価を活かした優雅なフィボナッチ数の実装は、以下の通り。 fib n = fibs !! n fibs = 0 : 1 : zipWith (+) fibs (tail fibs) Haskellの「fib = 1:1:zipWith (+) fib (tail fib)」はとても遅いにも書かれているように、この実装は遅い。 その理由は、(+) の計算が遅延し、その待機

    Haskellの神話 - あどけない話
  • 素数判定 - あどけない話

    要約:素数判定に使われるミラーラビン法を解説しながら、Haskell で実装してみる。 フェルマーテスト 大きな数を確実に素数だと判定するには、大変時間がかかるので、実用的には「ほぼ素数だ」と確率的に判定する。確率的な素数判定の代表格がフェルマーテストである。 フェルマーテストには、以下に示すフェルマーの小定理を利用する。 a^p ≡ a (mod p) a は任意の整数。p は素数である。法 p の下で a を p 乗したものは、a と合同であると言う意味だ。a には制限はないが、特に a を p より小さい整数、0 ≦ a ≦ p - 1 とすれば、a を p 乗して、p で割ると a に戻るとも解釈できる。 最初に見たときは、だからどうしたと思われるかもしれない。しかし、有名なフェルマーの大定理が実用上何の役にも立たないのに対し、フェルマーの小定理はいろんな場面で活躍する。 実際に計

    素数判定 - あどけない話
  • グローバル変数が欲しい理由?

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

    faerie
    faerie 2009/02/23
    2/5ほど読んだ。
  • Haskellチュートリアル - あどけない話

    先週、僭越ながら Haskell チュートリアルをやりました。その資料を公開します。 Haskell プログラミング 〜 純粋関数型言語への誘い〜

    Haskellチュートリアル - あどけない話
  • 栄光のグラスゴーHaskellコンパイルシステム利用の手引き バージョン7.8.2

    栄光のグラスゴーHaskellコンパイルシステム利用の手引き バージョン7.8.2 The GHC Team 目次 The Glasgow Haskell Compiler License 1. 参考訳 1. GHCの紹介 1.1. GHCを入手する 1.2. メタ情報: ウェブサイト、メーリングリストなど 1.3. GHCのバグを報告する 1.4. GHCのバージョン番号付け規則 1.5. Release notes for version 7.8.1 1.5.1. Highlights 1.5.2. Full details 1.5.2.1. Language 1.5.2.2. Compiler 1.5.2.3. GHCi 1.5.2.4. Template Haskell 1.5.2.5. Runtime system 1.5.2.6. Build system 1.5.3. Lib

  • はじめての Haskell - あどけない話

    昨日、友達にこんなことを話しました。 Haskell でプログラミングするときは、とりあえず効率のことは忘れる。 メモリーは無限にあると考え、コンパイラーと遅延評価が頑張ってくれると信じる。 Haskell では what を記述する。 効率を考えている時点で、how である。 what と how は、同一視されがちであり、区別するには訓練が必要。 変数は初期化できるが、再代入できない。 だから、インデックスが必要な for はない。 繰り返しが質なら、再帰で書く。 単にリストを走査したいなら map を使う。 リスト処理が得意なので、なんでもリストに落とし込む。 もう一度言うけれど、メモリーは無限にあると考えるから、リストが大きくても気にしない。 行を数えてみる ファイルの行数を数えるプログラムを考えるとします。命令型の頭で考えると、一行ずつ読み込みながらファイルの終わりまでループを

    はじめての Haskell - あどけない話
  • http://www.city5.org/rhg_200605/

  • d.y.d. 再帰関数の意味とは不動点である!

    02:12 05/09/03 反応リンク集 fixの話 … Perl版、 Perl版、 C++版、 C++版、 Scheme版、 Concurrent Clean版。 (9/4追記: Ruby版、 Erlang版、 Squeak版、 D版。 Sukuna版。 Erlangのprocessを使ったメモ化の例は見てみたいかも。)。 で、 メモ化の話 … Python版、 Python版 (9/4追記: ET版、 Erlang版、 Java版、 PostScript版。 )。 decoratorは流石かっこいいですね。C++版は…うーん、個人的には、このくらいなら Boost に頼らないで直球ストレートで書いてあげたいところです。 彼はやればできる子なんです。 template<int (*G)(int(*)(int),int)> int fix(int x) { return G( fix<G

  • http://user.ecc.u-tokyo.ac.jp/~kk56907/wiki.cgi?p=%B7%EE%B5%AD%2F2005-5-15

    faerie
    faerie 2006/04/18
    Haskell で赤黒木。
  • http://wiki.ocaml.jp/index.php?%B4%D8%BF%F4%B7%BF%B8%C0%B8%EC%A4%CE%C8%E6%B3%D3

  • Haskellで一番難しいのは : 404 Blog Not Found

    2006年04月08日14:28 カテゴリ書評/画評/品評Lightweight Languages Haskellで一番難しいのは 門に入ることではないか。なにせこの門はモナドで出来ているのだから(苦笑) 入門Haskell 向井 淳 これは「難しそうな」モノであれば難だってそうなのだが、特にHaskellの場合はそれが言える。それだけに、入門書は重要であり、日語によるそれが出たのをまずは讃えたい。 しかし、入門書は、ある意味最も難しい。「難しい事を簡単に」という事が最も強く求められるからだ。しかも、それだけではまだ入門書として充分ではない。そもそも門の中に入ってこさせる気を読者に起こさせなければならないからだ。難しいことを簡単、かつ楽しくやらないと駄目なのだ。 その意味で、書の入門書としての出来なのだが、K&Rやリャマや「楽しいRuby」あたりと比較すると、やはりものすごく見劣り

    Haskellで一番難しいのは : 404 Blog Not Found
  • Programming:WayToHaskeller

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

    faerie
    faerie 2006/04/06
    Haskeller への道
  • はてなブログ | 無料ブログを作成しよう

    ハリイカの焼売と中華炒め ハリイカをよく、見かけるようになりましたよ。生け簀で、泳いでいたものを一杯購入しました 立派な大きな墨袋や肝は冷凍保存して 柔らかな身は季節のお豆、お野菜と合わせて中華の炒めものに。新鮮なにんにくの茎は刻み、香り高く欲そそられますね 下足はミンチにし…

    はてなブログ | 無料ブログを作成しよう
    faerie
    faerie 2006/04/05
    らへん。
  • 人力検索 - 関数型言語(プログラミング言語Scheme, Haskellなど)を勉強しようと思っています。 関数型言語の勉強方法

    関数型言語(プログラミング言語Scheme, Haskellなど)を勉強しようと思っています。 初心者にも関数型言語のメリットや考えかたがスラスラ分かる勉強の材料を教えてください。 言語の習得よりも、関数型言語の考え方の習得に重きを置いています。 例えば - このを読め - このサイトを読め のように、入門から実用レベルまできちんと筋の通ったものをお願いします。 ちなみに 以前Schemeを勉強しましたが末尾再起辺りでなんとなくうやむやになってしまいました。 あと「計算機プログラムの構造と解釈」は僕には難しすぎでした。

    faerie
    faerie 2006/04/04
    ひげぽんが読めと言っていた。
  • Haskell Link

    型推論による静的な型付け、純粋な参照透明性を特徴とする関数型言語 リソース リファレンス The Haskell Home Page [en] Haskell Wiki [en] Programming in Haskell [ja] 処理系 Haskell Compilers and Interpreters [en] Hugs [en] GHC [en] nhc98 [en] Helium [en] Implementing functional languages: a tutorial チュートリアル やさしい Haskell 入門 [ja] Yet Another Haskell Tutorial [en] プログラム工学VI 授業関連資料 [ja] <- こっちの方がやさしい Haskeller への道 [ja] モナド All About Monads [en] <- 決定版

  • Haskell とは

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • Monadius - a scientist's toy box

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    faerie
    faerie 2006/03/31
    モナーじゃなくてモナド。
  • プログラム・プロムナード

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